Azure Developer CLI를 위한 코드 도구로 Terraform을 인프라로 사용
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
프로젝트의 루트에
infra
있는 디렉터리에 모든.tf
파일을 추가합니다.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}" }
백 엔드를
infra
원격으로 설정하기 위한 업데이트provider.tf
가 폴더에 있습니다.# 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>
4단계를 수행하여 파일에 구성을.env
추가합니다.
참고 항목
- Azure CLI에 대한 Terraform의 종속성에 대해 자세히 알아봅니다.
- 원격 상태에 대한 자세한 내용은 Azure Storage의 Terraform 상태 저장을 참조 하세요.
- 템플릿: Azure에서 Node.js API 및 MongoDB(Terraform)를 사용하는 React Web App