환경 변수 관리

리소스를 프로비전하고 Azure에 배포하는 방법에 영향을 주도록 환경 변수를 구성할 수 있습니다. 이는 CI/CD 워크플로 시나리오에서 azd를 실행할 때 특히 유용합니다.

입력 매개 변수 대체

환경 변수는 프로비전의 일부로 매개 변수 파일(*.parameters.json Bicep, *.tfvars.json Terraform의 경우)에서 참조할 수 있습니다. 환경 변수 대체 구문이 발견 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 호스팅 리소스를 참조할 수 있습니다. 이러한 출력을 보려면 JSON 출력을 실행하거나 azd env get-values --output json 실행azd env get-values합니다.

제공된 환경 변수 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

사용자가 제공한 환경 변수

사용자 제공 변수는 인프라 출력 매개 변수(자동으로 저장 .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 서비스 배포 aks 에 필요한 속성입니다containerapp.
SERVICE_<service>_ENDPOINTS 특정 서비스에 대한 엔드포인트입니다. 형식 array (bicep) / list-equivalent (terraform). ['endpoint1', 'endpoint2'] azd에서 표시할 특정 서비스에 대한 퍼블릭 엔드포인트를 설정합니다. 기본적으로 azd는 지정된 호스트에 대해 자동으로 할당된 호스트 이름(예: *.azurewebsites.netappservice)을 검색합니다.