管理 Azure 容器應用程式上的環境變數
在 Azure 容器應用程式中,您可以設定執行階段環境變數。 這些變數可以設定為手動項目,或設定為秘密 (部分機器翻譯) 的參考。
這些環境變數會在執行階段期間載入至您的容器應用程式。
您可以在建立容器應用程式時設定環境變數,或在之後透過建立新的修訂來設定環境變數。
注意
為了避免造成混淆,不建議您重複環境變數。 當多個環境變數具有相同名稱時,清單中的最後一個環境變數會生效。
您可以使用 az containerapp create 命令,使用 az containerapp create 命令建立容器應用程式,方法是使用 --env-vars
參數將環境變數當做以空格分隔的 'key=value' 專案傳遞。
az containerapp create -n my-containerapp -g MyResourceGroup \
--image my-app:v1.0 --environment MyContainerappEnv \
--secrets mysecret=secretvalue1 anothersecret="secret value 2" \
--env-vars GREETING="Hello, world" ANOTHERENV=anotherenv
如果您想要參考秘密,您必須確定您已建立所要參考的秘密,請參閱管理秘密 (部分機器翻譯)。 您可以使用秘密名稱,並將其傳遞至值欄位,但以 secretref:
開頭
az containerapp update \
-n <APP NAME>
-g <RESOURCE_GROUP_NAME>
--set-env-vars <VAR_NAME>=secretref:<SECRET_NAME>
如果您想要使用 PowerShell,則必須先使用 New-AzContainerAppEnvironmentVarObject PowerShell Cmdlet 建立名為 EnvironmentVar 的記憶體內部物件。
若要使用此 Cmdlet,您必須分別使用 -Name
參數傳遞環境變數的名稱,以及使用 -Value
參數來傳遞環境變數的值。
$envVar = New-AzContainerAppEnvironmentVarObject -Name "envVarName" -Value "envVarvalue"
如果您想要參考秘密,您必須確定您已建立所要參考的秘密,請參閱管理秘密 (部分機器翻譯)。 您可以使用秘密名稱,並將其傳遞至 -SecretRef
參數:
$envVar = New-AzContainerAppEnvironmentVarObject -Name "envVarName" -SecretRef "secretName"
然後,您必須使用 New-AzContainerAppTemplateObject (英文) PowerShell Cmdlet 建立另一個名為 Container (英文) 的記憶體內部物件。
在此 Cmdlet 上,您必須使用 -Name
參數傳遞容器映像 (而非容器應用程式!) 的名稱、使用 -Image
參數傳遞完整映像名稱,並參考您先前在變數 $envVar
上定義的環境物件。
$containerTemplate = New-AzContainerAppTemplateObject -Name "container-app-name" -Image "repo/imagename:tag" -Env $envVar
最後,您可以根據使用 Update-AzContainerApp PowerShell Cmdlet 所建立的新範本物件來更新容器應用程式。
在這最後一個 Cmdlet 中,您只需要使用 -TemplateContainer
參數,傳遞您在上一個步驟於 $containerTemplate
變數上定義的範本物件。
Update-AzContainerApp -TemplateContainer $containerTemplate
在現有的容器應用程式上新增環境變數
在建立容器應用程式後,若要更新容器應用程式環境變數,唯一的方法是建立具有所需變更的新修訂。
在 Azure 入口網站中,搜尋「容器應用程式」,然後選取您的應用程式。
在應用程式的左側功能表中,選取 [修訂和複本] > [建立新修訂]
然後,您必須編輯目前現有的容器映像:
在 [環境變數] 區段中,您可以按一下 [新增] 來新增環境變數。
然後設定環境變數的名稱和來源 (其可以是秘密 (部分機器翻譯) 的參考)。
如果您將 [來源] 選取為手動,便可以手動輸入環境變數值。
您可以使用 az containerapp update (部分機器翻譯) 命令來更新容器應用程式。
此範例會建立具有手動值 (而非參考秘密) 的環境變數。 將 <PLACEHOLDERS> 取代為您的值。
az containerapp update \
-n <APP NAME>
-g <RESOURCE_GROUP_NAME>
--set-env-vars <VAR_NAME>=<VAR_VALUE>
如果您想要建立多個環境變數,則可以插入 'key=value' 格式的空格分隔值。
如果您想要參考秘密,您必須確定您已建立所要參考的秘密,請參閱管理秘密 (部分機器翻譯)。 您可以使用秘密名稱,並將其傳遞至值欄位,但以 secretref:
開頭,請參閱下列範例:
az containerapp update \
-n <APP NAME>
-g <RESOURCE_GROUP_NAME>
--set-env-vars <VAR_NAME>=secretref:<SECRET_NAME>
內建環境變數
Azure 容器應用程式會自動新增您的應用程式和作業可用來在執行階段取得平台中繼資料的環境變數。
應用程式
容器應用程式可以使用下列變數:
變數名稱 |
描述 |
範例值 |
CONTAINER_APP_NAME |
容器應用程式名稱。 |
my-containerapp |
CONTAINER_APP_REVISION |
容器應用程式修訂名稱。 |
my-containerapp--20mh1s9 |
CONTAINER_APP_HOSTNAME |
容器應用程式的修訂特定主機名稱。 |
my-containerapp--20mh1s9.<DEFAULT_HOSTNAME>.<REGION>.azurecontainerapps.io |
CONTAINER_APP_ENV_DNS_SUFFIX |
Container Apps 環境的 DNS 尾碼。 若要取得應用程式的完整網域名稱 (FQDN),請將應用程式名稱附加至 $CONTAINER_APP_NAME.$CONTAINER_APP_ENV_DNS_SUFFIX 格式的 DNS 尾碼。 |
<DEFAULT_HOSTNAME>.<REGION>.azurecontainerapps.io |
CONTAINER_APP_PORT |
容器應用程式的目標連接埠。 |
8080 |
CONTAINER_APP_REPLICA_NAME |
容器應用程式複本名稱。 |
my-containerapp--20mh1s9-86c8c4b497-zx9bq |
工作
容器應用程式作業可以使用下列變數:
變數名稱 |
描述 |
範例值 |
CONTAINER_APP_JOB_NAME |
作業的名稱。 |
my-job |
CONTAINER_APP_JOB_EXECUTION_NAME |
作業執行的名稱。 |
my-job-iwpi4il |
下一步