【azurenv】ローカルの環境変数を Azure アプリへ同期させる CLI ツール
こんにちは、モモスケです。
今回は、ローカルの .env
ファイルから Azure App Service や Azure Functions 上の環境変数を一括で更新できる CLI ツール 「azurenv」 を開発したのでご紹介します。
azurenv とは?
azurenv は、Go 言語で実装された クロスプラットフォーム CLI ツール です。
手元の .env
ファイルをコピー&ペーストして Azure Portal に貼り付けるような作業を 1 コマンド で自動化できるのが大きな特徴です。
主な機能
- App Service や Azure Functions に既に登録されてる環境変数を取得し表示
- ローカル ファイルと Azure の環境変数を比較し、差分を表示
- ローカル ファイル(例:
.env
)を読み込み、Azure に環境変数を一括更新
背景
App Service や Azure Functions には、環境変数を設定することができます。
その際、ローカルで開発している際には .env
などのファイルに環境変数を記述し、それを Azure Portal にコピー&ペーストすることが一般的です。
- .env ファイルに環境変数を定義
- Azure Portal で「アプリケーション設定」を開いて、手動でコピペ or 手打ち
- 値が増減するたびに、また同じ作業を繰り返す…
とても煩雑で、キーを打ち間違えてしまうリスクも大きいです。
azurenv はこの手間をなくすことを目的に開発しました。
インストール方法
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/ry0y4n/azurenv/main/scripts/install.sh | sh
Windows
powershell -Command "Invoke-WebRequest -Uri https://raw.githubusercontent.com/ry0y4n/azurenv/main/scripts/install.ps1 -OutFile install.ps1; .\install.ps1"
詳細は以下の GitHub リポジトリを参照してください。
コマンド一覧と使い方
App Service 関連コマンド
azurenv webapp list-remote
1. App Service のアプリ設定を取得します。
azurenv webapp list-remote --name <WebAppName> --resource-group <ResourceGroupName>
azurenv webapp diff
2. ローカルの .env
と App Service のアプリ設定を比較し、変更差分を確認できます。
azurenv webapp diff --name <WebAppName> --resource-group <ResourceGroupName> --file <.env>
azurenv webapp apply
3. ローカルの .env
を App Service のアプリ設定に反映します。
azurenv webapp apply --name <WebAppName> --resource-group <ResourceGroupName> --file <.env>
Azure Functions 関連コマンド
azurenv function list-remote
1. Azure Functions のアプリ設定を取得します。
azurenv functionapp list-remote --name <FunctionAppName> --resource-group <ResourceGroupName>
azurenv function diff
2. ローカルの .env
と Azure Functions のアプリ設定を比較します。
azurenv functionapp diff --name <FunctionAppName> --resource-group <ResourceGroupName> --file <.env>
azurenv function apply
3. ローカルの .env
を Azure Functions に一括で反映します。
azurenv functionapp apply --name <FunctionAppName> --resource-group <ResourceGroupName> --file <.env>
その他のコマンド
-
azurenv version
: バージョン情報を表示します。 -
azurenv azcheck
: 現在ログインしている Azure CLI のアカウント情報を表示します。自分がどのサブスクリプションを使っているか手軽に確認出来て便利です。
補足
まとめ
-
azurenv を使うと、ローカルの
.env
を1 コマンドで App Service や Azure Functions に反映可能です。 - 手動コピペを繰り返す必要が無くなるため、ヒューマンエラーの軽減 & 作業効率の向上が期待できます。
- 事前に Azure CLI (
az
) が正しくインストール & ログインされているかを確認してください。 - Go 言語で実装されているため、クロスプラットフォームで依存関係無く動作するシングルバイナリとして配布されています。
バグや改善提案があれば、GitHub の Issue / PR でフィードバックをお寄せいただけると嬉しいです。
少しでも皆さんの Azure 環境変数管理 がラクになることを願っています!
Discussion