Azure 개발자 CLI(azd
)는 다음을 포함하여 여러 IaC(Infrastructure as code) 공급자를 지원합니다.
기본적으로 azd
Bicep을 IaC 공급자로 가정합니다.
프로젝트에 가장 적합한 IaC 공급자를 결정하는 데 도움이 되도록 Terraform 및 Bicep 비교 문서를 참조하세요.
참고
Terraform은 여전히 베타 상태입니다. 기능 버전 관리 및 릴리스 전략 페이지에서 알파 및 베타 기능 지원에 대해 자세히 알아보세요.
필수 구성 요소
- Terraform 설치 및 구성
- Azure CLI 설치 및 로그인(v 2.38.0 이상)
- Node.js 또는 Python Terraform 템플릿에서 배포할 아키텍처 다이어그램 및 Azure 리소스를 검토합니다.
참고
Azure CLI 로그인을 사용하지는 않지만 azd
Terraform에는 Azure CLI가 필요합니다. Terraform의 공식 설명서에서 이 요구 사항에 대해 자세히 알아보세요.
Terraform을 IaC 공급자로 구성
azure.yaml
프로젝트의 루트에 있는 파일을 열고 기본값인 Bicep을 재정의할 다음 줄이 있는지 확인합니다.infra: provider: terraform
프로젝트의 루트에
.tf
있는 디렉터리에 모든infra
파일을 추가합니다.azd up
를 실행합니다.
참고
Terraform을 IaC 공급자 로 사용하는 두 개의 azd 템플릿인 Node.js 및 Terraform 과 Python 및 Terraform을 확인합니다.
azd pipeline config
Terraform의 경우
Terraform은 관리되는 인프라 및 구성에 대한 상태를 저장합니다. 이 상태 파일 때문에 GitHub에서 배포 파이프라인을 설정하기 위해 실행 하기 전에azd pipeline config
사용하도록 설정해야 합니다.
기본적으로 azd
로컬 상태 파일의 사용을 가정합니다. 원격 상태를 사용하도록 설정하기 전에 azd up
을 실행했다면, azd down
을 실행하고 원격 상태 파일로 전환해야 합니다.
로컬 및 원격 상태
Terraform은 지속형 상태 데이터를 사용하여 관리하는 리소스를 추적합니다.
원격 상태를 사용하도록 설정하는 시나리오:
- 상태 데이터에 대한 공유 액세스를 허용하고 여러 사람이 해당 인프라 리소스 컬렉션에서 함께 작업할 수 있도록 허용하려면
- 상태 파일에 포함된 중요한 정보가 노출되는 것을 방지하려면
- 상태를 로컬로 저장하여 실수로 삭제할 가능성을 줄이려면
원격 상태 사용
원격 상태 스토리지 계정을 구성해야 합니다.
provider.conf.json
폴더에infra
라는 새 파일을 추가합니다.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
provider.tf
폴더에서 찾은infra
업데이트를 사용하여 백엔드를 원격으로 설정하십시오.# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
실행하여
azd env set <key> <value>
파일.env
에 구성을 추가합니다. 예시:azd env set RS_STORAGE_ACCOUNT your_storage_account_name azd env set RS_CONTAINER_NAME your_terraform_container_name azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
일반적인 워크플로에 따라 다음
azd
명령을 실행합니다. 원격 상태가 검색되면azd
구성된 백 엔드 구성을 사용하여 Terraform을 초기화합니다.팀 동료와 환경을 공유하려면, 그들이 로컬 시스템에서
azd env refresh -e <environmentName>
을 실행하여 환경 설정을 새로 고치도록 하고,.env
파일에 구성을 추가하기 위해 4단계를 수행해야 합니다.
참고하세요
- Azure CLI에 대한 Terraform의 종속성에 대해 자세히 알아봅니다.
- 원격 상태에 대한 자세한 내용은 Azure Storage의 Terraform 상태 저장을 참조 하세요.
- 템플릿: Azure에서 Node.js API 및 MongoDB(Terraform)를 사용하는 React Web App