이 문서에서는 환경 변수 및 Azure 개발자 CLI(azd)를 사용하는 방법에 대한 질문과 대답을 제공합니다.
팁 (조언)
Azure 개발자 CLI에서 환경을 만들고 관리하는 방법에 대한 포괄적인 가이드는 Azure Developer CLI의 환경 작업을 참조하세요.
환경 변수와 시스템 환경 변수의 azd 차이점은 무엇인가요?
azd환경 변수는 프로젝트의 디렉터리에 있는 .env 파일에 저장 .azure/<environment name> 되며 시스템/OS 환경 변수와는 별개입니다.
azd 환경 변수는 템플릿 프로비저닝 및 배포 작업을 구성하고 같은 azd envazd env get-values명령을 사용하여 액세스할 수 있습니다.
시스템 환경 변수는 명령을 통해 azd 직접 액세스할 수 없으며 일반적으로 azd 사용하여 사용자 지정 셸 또는 PowerShell 스크립트로 관리해야 합니다.
명령이 시스템 환경 변수를 직접 읽고 쓸 수 있나요 azd ?
아니요, azd 명령은 시스템 환경 변수를 읽거나 쓸 수 없습니다.
azd env set 또는 azd env get-values 과 같은 명령은 특정 azd 환경에 대한 템플릿 .env 파일에 저장된 값으로 작동합니다.
azd 환경은 프로젝트 템플릿의 디렉터리에서 .azure/<environment name> 하위 폴더를 사용하여 관리되며, 이를 통해 템플릿이 여러 환경을 가질 수 있습니다. 환경 하위 폴더에는 환경을 설명하는 것과 같은 .env 구성 파일이 있습니다.
azd 있는 사용자 지정 셸 또는 PowerShell 스크립트를 사용하여 시스템 수준 환경 변수를 읽거나 씁니다.
파일 및 main.bicep 환경 변수에 azd 설정된 출력 변수 간의 관계는 무엇인가요?
파일에 설정된 main.bicep 출력 변수는 템플릿의 .envazd 파일에 자동으로 저장됩니다.
main.bicep 템플릿 인프라 파일에서 다음 출력 변수를 고려하십시오.
output API_BASE_URL string = api.outputs.SERVICE_API_URI
output REACT_APP_WEB_BASE_URL string = web.outputs.SERVICE_WEB_URI
성공적으로 azd up하거나 azd provision한 후에, azd는 프로젝트의 .azure/<environment name> 디렉터리에 있는 .env 파일에 이 두 변수를 작성합니다.
API_BASE_URL="<example-api-url>"
output REACT_APP_WEB_BASE_URL="<example-app-url>"
그런 다음
기본적으로 파일에 설정되는 환경 변수는 .env 무엇입니까?
기본적으로 다음 환경 변수는 .env 파일에 설정됩니다.
| 이름 | 설명 | 예제 값 | 사용 가능한 경우 |
|---|---|---|---|
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 환경 변수를 검색하는 권장 방법은 무엇인가요? 이 작업을 수행해야 하는 이유는 무엇인가요?
azd env get-values 명령을 사용하여 azd 환경 변수를 검색합니다.
azd env get-values
환경 변수에 액세스 azd 하는 일반적인 이유는 다음과 같습니다.
- 후크 스크립트에서 추가 구성을 수행합니다.
- 템플릿의
.env값을 애플리케이션 코드 프레임워크(예: Node.js 또는 .NET)에 노출합니다. -
.env시스템 환경 변수에 값을 씁니다.
팁 (조언)
시스템 환경 변수를 설정할 때는 동일한 환경 변수 이름을 공유하는 다른 템플릿과 충돌이 발생할 수 있으므로 주의해야 합니다.
새 azd 환경 변수를 수동으로 설정하려면 어떻게 해야 하나요?
명령을 사용하여 추가 azd 환경 변수를 azd env set 설정하여 변수의 키와 값을 제공합니다.
환경 변수를 설정하는 azd 일반적인 이유는 다음과 같습니다.
- 배포하는 동안 필요한 프로비전 중에 만든 Azure 리소스 정보에 액세스합니다.
- 기본
azd환경 변수 값을 재정의하거나 변경합니다. - 프로비저닝, 배포 또는 사용자 지정 스크립트에 사용할 추가 사용자 지정 구성 값을 제공합니다.
azd env set MY_KEY MyValue
환경 변수를 시스템 환경 변수로 복사하거나 작성 azd 하려면 어떻게 해야 하나요?
일부 시나리오에서는 언어 프레임워크에서 사용하기 위해 환경 변수를 다른 환경 파일 또는 시스템 환경에 복사 azd 할 수 있습니다. 예를 들어 프로비전된 Azure 서비스의 엔드포인트 URL을 사용하여 앱 코드에서 해당 서비스에 연결할 수 있습니다. 사용자 지정 스크립트를 사용하여 환경 변수를 검색 azd 한 다음 시스템 환경 변수로 설정합니다. 다음 예제와 같이 수명 주기 동안 azd 이러한 스크립트를 후크로 실행하는 것이 일반적입니다.
비고
환경 변수를 azd 로컬 시스템 또는 기타 운영 환경에 복사할 때는 주의해야 합니다. 이름이 일치하는 시스템 환경 변수는 azd에 의해 자동으로 선택되어 서로 다른 azd 템플릿이나 azd 환경 간에 충돌을 유발할 수 있습니다.
postprovision:
windows:
shell: pwsh
run: ./scripts/map-env-vars.ps1
interactive: false
continueOnError: false
posix:
shell: sh
run: ./scripts/map-env-vars.sh
interactive: false
continueOnError: false
Linux용 참조된 셸 스크립트는 환경 변수를 azd 검색하고 시스템 환경 변수로 내보냅니다.
echo "Loading azd .env file from current environment..."
while IFS='=' read -r key value; do
value=$(echo "$value" | sed 's/^"//' | sed 's/"$//')
export "$key=$value"
done <<EOF
$(azd env get-values)
EOF
Windows용 참조 PowerShell 스크립트는 환경 변수를 azd 검색하고 시스템 환경 변수로 내보냅니다.
Write-Host "Loading azd .env file from current environment"
foreach ($line in (& azd env get-values)) {
if ($line -match "([^=]+)=(.*)") {
$key = $matches[1]
$value = $matches[2] -replace '^"|"$'
[Environment]::SetEnvironmentVariable($key, $value)
}
}