環境変数を管理する。

環境変数は、リソースのプロビジョニング方法と Azure へのデプロイ方法に影響を与えます。 これは、CI/CD ワークフロー シナリオで azd を実行する場合に特に便利です。

入力パラメーターの置換

環境変数は、プロビジョニングの一環としてパラメーター ファイル (Bicep 用は *.parameters.json、Terraform 用は *.tfvars.json) で参照できます。 環境変数置換構文が見つかると、azd は参照を実際の環境変数値セットに自動的に置き換えます。 置換は、azure.yaml での特定の構成設定 (「環境変数の置換をサポートする」に記載されているプロパティ) と、aks 用デプロイ マニフェストなどのデプロイ構成ファイルでも発生します。

入力パラメーターの置換例 (Bicep)

環境変数 AZURE_LOCATION が設定されたとします。

export AZURE_LOCATION=westus3
$env:AZURE_LOCATION='westus3'

main.parameters.json ファイルで、次の構文を使用して AZURE_LOCATION を参照し、環境の置換を許可することができます。

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "value": "${AZURE_LOCATION}"
    }
  }
}

環境固有の .env ファイル

インフラストラクチャ プロビジョニングの出力は、.azure/<environment name>/.env の下にある .env ファイルに環境変数として自動的に格納されます。 このセットアップにより、ローカル アプリケーションまたはデプロイ スクリプトで、.env ファイルに格納されている変数を使用して、必要に応じて Azure でホストされるリソースを参照できます。 これらの出力を表示するには、azd env get-values を実行するか、JSON 出力には azd env get-values --output json を実行します。

azd によって提供される環境変数

以下は、azd によって自動的に提供される変数です。

名前 説明 使用可能な場合
AZURE_ENV_NAME 使用中の環境の名前。 todo-app-dev 環境が作成されたとき (azd init や azd env new などを実行した後)。
AZURE_LOCATION 使用中の環境の場所。 eastus2 環境が初めてプロビジョニングされる直前。
AZURE_PRINCIPAL_ID 実行中のユーザー/サービス プリンシパル。 925cff12-ffff-4e9f-9580-8c06239dcaa4 プロビジョニング中に自動的に決定されます (エフェメラル)。
AZURE_SUBSCRIPTION_ID 対象となるサブスクリプション。 925cff12-ffff-4e9f-9580-8c06239dcaa4 環境が初めてプロビジョニングされる直前。
SERVICE_<service>_IMAGE_NAME コンテナー アプリ サービス用に Azure Container Registry に発行されたコンテナー イメージの完全な名前。 todoapp/web-dev:azdev-deploy-1664988805 containerapp イメージの発行が成功した後

ユーザー指定の環境変数

ユーザー指定変数は、main.bicep ファイル内のインフラストラクチャ出力パラメーター (.env に自動的に格納されます) として宣言することも、ユーザーが環境内で直接設定することもできます (azd env set <key> <value>)。 azd は、これらの値を構成として読み取り、異なる動作をします。

名前 説明 エフェクト
AZURE_AKS_CLUSTER_NAME 対象とする Azure Kubernetes Service クラスターの名前。 aks-my-cluster aks サービスのデプロイに必要なプロパティ。
AZURE_RESOURCE_GROUP 対象とする特定のリソース グループ。 型指定文字列。 rg-todo-dev azd はリソース グループの検出を実行せず、代わりにこのリソース グループを参照します。 azd はまた、作成された IaC 構成ファイルを制御しないので、IaC ファイルへの変更が必要になる場合があります。
AZURE_CONTAINER_REGISTRY_ENDPOINT Docker イメージを発行するための Azure Container Registry。 型指定文字列。 myexampleacr.azurecr.io containerapp または aks サービスのデプロイに必要なプロパティ。
SERVICE_<service>_ENDPOINTS 特定のサービスのエンドポイント。 型指定 array (bicep) / list-equivalent (terraform)。 ['endpoint1', 'endpoint2'] 特定のサービスのパブリック エンドポイントが azd によって表示に使用されるように設定します。 既定では、azd は特定のホストに対して自動的に割り当てられたホスト名を検出します (appservice*.azurewebsites.net など)。

デモ モードを有効にする

azd には、コンソール出力でサブスクリプション ID を非表示にするデモ モードが含まれています。 この機能は、パブリック設定でazd コマンドをデモまたは表示するシナリオに役立ちます。

デモ モードでは、次のような環境変数が導入されます。AZD_DEMO_MODE デモ モードを有効にするには、次のコマンドを実行します。

export AZD_DEMO_MODE true

再起動後もデモ モードを保持する場合は、次のコマンドを実行することもできます。

setx AZD_DEMO_MODE true

または PowerShell 内:

$env:AZD_DEMO_MODE="true"