Azure Container Apps에서 환경 변수 관리
Azure Container Apps에서는 런타임 환경 변수를 설정할 수 있습니다. 이러한 변수는 수동 항목으로 설정하거나 비밀에 대한 참조로 설정할 수 있습니다.
이러한 환경 변수는 런타임 중에 컨테이너 앱에 로드됩니다.
컨테이너 앱을 만드는 중이거나 그 이후에 새 수정 버전을 만들어 환경 변수를 구성할 수 있습니다.
참고 항목
혼동을 피하기 위해 환경 변수를 복제하지 않는 것이 좋습니다. 여러 환경 변수의 이름이 같은 경우, 목록의 마지막 변수가 적용됩니다.
Azure Portal을 통해 새 컨테이너 앱을 만드는 경우 컨테이너 섹션에서 환경 변수를 설정할 수 있습니다.
--env-vars
매개 변수를 사용하여 환경 변수를 공백으로 구분된 'key=value' 항목으로 전달함으로써 az Containerapp create 명령을 사용하여 환경 변수로 컨테이너 앱을 만들 수 있습니다.
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
기존 Container Apps에 환경 변수 추가
컨테이너 앱이 만들어진 후 컨테이너 앱 환경 변수를 업데이트하는 유일한 방법은 필요한 변경 내용이 포함된 새 수정 버전을 만드는 것입니다.
Azure Portal에서 Container Apps를 검색한 다음 앱을 선택합니다.
앱의 왼쪽 메뉴에서 수정 버전 및 복제본 > 새 수정 버전 만들기 선택
그런 다음 현재 기존 컨테이너 이미지를 편집해야 합니다.
환경 변수 섹션에서 추가를 클릭하여 새 환경 변수를 추가할 수 있습니다.
그런 다음 환경 변수의 이름과 원본을 설정합니다(비밀에 대한 참조일 수 있음).
원본을 수동으로 선택하면 환경 변수 값을 수동으로 입력할 수 있습니다.
az Containerapp update 명령을 사용하여 컨테이너 앱을 업데이트할 수 있습니다.
이 예에서는 수동 값(비밀 참조 아님)을 사용하여 환경 변수를 만듭니다. <자리 표시자>를 해당 값으로 바꿉니다.
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>
새 컨테이너 앱을 만들 때 수행해야 하는 작업과 마찬가지로 컨테이너 내에 포함된 EnvironmentVar라는 개체를 만들어야 합니다. 그런 다음 이 컨테이너는 New-AzContainerApp PowerShell cmdlet과 함께 사용됩니다.
이 cmdlet에서는 환경 변수 구성 섹션에 설명된 대로 이전에 정의한 템플릿 개체만 전달하면 됩니다.
Update-AzContainerApp -TemplateContainer $containerTemplate
기본 제공 환경 변수
Azure Container Apps는 앱과 작업이 런타임에 플랫폼 메타데이터를 가져오는 데 사용할 수 있는 환경 변수를 자동으로 추가합니다.
앱
컨테이너 앱에서 사용할 수 있는 변수는 다음과 같습니다.
변수 이름 |
설명 |
예제 값 |
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(정규화된 도메인 이름)을 가져오려면 DNS 접미사에 $CONTAINER_APP_NAME.$CONTAINER_APP_ENV_DNS_SUFFIX 형식으로 앱 이름을 추가합니다. |
<DEFAULT_HOSTNAME>.<REGION>.azurecontainerapps.io |
CONTAINER_APP_PORT |
컨테이너 앱의 대상 포트입니다. |
8080 |
CONTAINER_APP_REPLICA_NAME |
컨테이너 앱 복제본의 이름입니다. |
my-containerapp--20mh1s9-86c8c4b497-zx9bq |
작업
Container Apps 작업에 사용할 수 있는 변수는 다음과 같습니다.
변수 이름 |
설명 |
예제 값 |
CONTAINER_APP_JOB_NAME |
작업의 이름입니다. |
my-job |
CONTAINER_APP_JOB_EXECUTION_NAME |
작업 실행의 이름입니다. |
my-job-iwpi4il |
다음 단계