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