LoginSignup
0
0

More than 3 years have passed since last update.

複数サブスクリプションがある場合の Azure Functions App Settings を取得する方法

Last updated at Posted at 2020-07-19

はじめに

ちょっとだけ詰まったので、備忘録代わりに残しておきます。

今回, Azure Functions のローカル実行をするために App Settings が必要になったため こちらの記事 を参考に App Settings を Azure Functions 上から取得しようと試みたのですが、いくつかの箇所で引っ掛かってしまいました。

そこでその引っ掛かった箇所について情報を共有しておきたいと思います。

手順

Azure CLI

そもそも論ですが, 今回の作業を行うにあたっては Azure CLI が必須です。
そのため Powershell 用の Azure CLI ツールを導入する必要があります。

powershell
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi

Mac の場合は こちらの方法 を参考に導入可能です。

zsh
brew update && brew install azure-cli

Azure Functions Core Tools

まず 2020/07/19 現在, azure-functions-cli は deprecated となっているためインストールすることができません。
その代わりに azure-functions-core-tools がリリースされているので, こちらをインストールするようにします。

今回は v3 をインストールしました。

powershell
npm i -g azure-functions-core-tools@3 --unsafe-perm true

これで晴れて funcコマンド が利用できるようになります。

az login / az account set

上記を導入した状態ですぐに func コマンドを実行してもエラーが発生してしまい, 正常に動作しません。
これは当たり前と言えば当たり前なのですが, Azure にログインしていない状態でリソースにアクセスしようとしているため発生しています。

そのため, まずは何はともあれログインをしなければなりません。
以下のコマンドを実行し, ログインダイアログに従ってログインを済ませてください。

powershell
az login

また, サブスクリプションが複数ある場合には利用するサブスクリプションを選択しなければなりません。
利用するサブスクリプションを選択していない状態で func コマンドを実行すると以下のようなエラーが発生してしまいます。

Can't find app with name "AZURE_FUNCTION_NAME"

そのため az account set コマンドを利用してサブスクリプションを設定します。
参考: 複数の Azure サブスクリプションの使用

powershell
# 以下のコマンドで選択できるサブスクリプションの一覧を表示できます
az account list --output table
# 以下のコマンドで利用するサブスクリプションを設定します
az account set --subscription "FOO_SUBSCRIPTION"

これでようやく funcコマンド を正常動作させることができるようになります。

func azure functionapp

このコマンドを利用するには Azure Functions プロジェクトのルートディレクトリに移動する必要があるので注意が必要です。
プロジェクトのルートディレクトリへ移動したのちに以下のコマンドを実行することで, local.settings.json がリモートの Azure Functions 上の設定に書き換わります。

powershell
func azure functionapp fetch-app-settings "AZURE_FUNCTION_NAME"

おわりに

Azure は日々サービスが更新されており, なおかつ周辺ツールも日々追加・更新・削除されています。
そのためこの情報もすぐに現実にそぐわないもとのなってしまうと思いますが, それまでの間に誰かの助力となればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0