중요합니다
이 문서에서 미리 보기로 표시된 항목은 현재 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며 Microsoft 프로덕션 워크로드에 권장하지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
Azure 개발자 CLI(azd)는 선언된 azure.yaml서비스에서 Bicep 또는 Terraform 인프라를 생성할 수 있습니다.
azd ai agent init --infra=terraform와 함께 Terraform을 선택하거나, --infra=bicep와 함께 Bicep을 선택하세요. 실행 azd provision 하면 선택한 인프라가 적용됩니다.
인프라 프로비저닝 및 에이전트 배포는 별개입니다. Terraform 또는 Bicep은 Azure 지원 리소스를 관리하고, azd deploy호스팅된 에이전트 데이터 평면 버전을 만듭니다. azd 대신 Terraform을 사용하여 에이전트 자체를 관리하려면 Terraform을 사용하여 호스트된 에이전트 배포를 참조하세요.
프로비전되는 항목
기본적으로 azd ai agent init 코드로서의 인프라 파일은 만들지 않습니다. Bicep 인프라를 추가하려면 --infra 또는 --infra=bicep을 사용하세요.
--infra=terraform를 사용하여 Terraform 인프라를 추가하고 infra.provider: terraform를 설정합니다.
Bicep 인프라를 추가할 때 템플릿은 azd-ai-starter-basic 리포지토리를 기반으로 하며 다음 Azure 리소스를 만듭니다.
| Resource | 목적 |
|---|---|
| 리소스 그룹 | 모든 리소스를 구성합니다.
rg-<agent-name>이라고 명명됨 |
| AI 서비스 계정 | Microsoft Foundry 계정입니다. |
| 파운드리 프로젝트 | 에이전트 및 AI 기능을 호스트합니다. |
| 모델 배포 | 에이전트에서 사용하는 모델(예 gpt-4.1-mini: .) |
| Azure Container Registry (애저 컨테이너 레지스트리) | 에이전트 컨테이너 이미지를 저장합니다. |
| Application Insights | 에이전트 성능 모니터링 및 원격 분석. |
| Log Analytics 작업 영역 | 중앙 집중식 로그 컬렉션입니다. |
| 관리형 아이덴티티 | 에이전트 ID 청사진을 Microsoft Entra ID에 인증하고 플랫폼 역할 할당을 보유한 프로젝트의 시스템 할당 ID. |
템플릿은 다음에 선언된 서비스 및 종속성에 따라 조건부로 더 많은 리소스를 만듭니다 azure.yaml.
- 에이전트 기능 설정 - 에이전트 상태, 벡터 데이터 및 파일을 포함하는 Azure 리소스를 선언합니다. 소유한 스토리지를 사용하기 위해 에이전트가 필요할 때 설정합니다.
- Grounding with Bing 또는 Grounding with Bing Custom Search -- 웹 검색 도구용
- Azure AI 검색 -- 검색 근거용.
- 파일 작업용 Azure Storage.
프로젝트 구조
Bicep 경우 생성된 프로젝트에는 다음과 같은 구조가 있습니다.
infra/
|-- main.bicep # Main deployment template (subscription-scoped)
|-- main.parameters.json # Parameter bindings to azd environment variables
|-- abbreviations.json # Naming convention abbreviations
\-- core/
|-- ai/ # Foundry account, project, and connections
|-- host/ # Container registry
|-- monitor/ # Application Insights and Log Analytics
|-- search/ # Azure AI Search (conditional)
\-- storage/ # Azure Storage (conditional)
매개 변수 흐름 방법
Bicep의 경우 main.parameters.json 파일은 azd 환경 변수를 매개변수에 매핑합니다:
{
"environmentName": { "value": "${AZURE_ENV_NAME}" },
"location": { "value": "${AZURE_LOCATION}" },
"aiFoundryResourceName": { "value": "${AZURE_AI_ACCOUNT_NAME}" },
"aiProjectDeploymentsJson": { "value": "${AI_PROJECT_DEPLOYMENTS=[]}" }
}
azd provision 동안 azd는 환경(${VAR})에서 이러한 .azure/<env>/.env 참조를 확인하여 Bicep 배포에 전달합니다. Foundry 프로젝트 엔드포인트, 모델 배포 이름, 컨테이너 레지스트리 엔드포인트와 같은 배포 출력값은 azd deploy, azd ai agent run 및 azd ai 리소스 명령에서 사용하기 위해 환경에 다시 기록됩니다.
Terraform 기반 인프라
새 프로젝트의 azd ai agent init --infra=terraform 경우 다음과 같은 파일을 생성합니다.
infra/
|-- main.tf
|-- provider.tf
|-- variables.tf
|-- outputs.tf
|-- main.tfvars.json
\-- .azd-foundry
컨테이너 기반 서비스에서도 생성 container-registry.tf할 수 있습니다. 기존 프로젝트는 인프라를 유지하고 아래 infra/foundry/별도의 Foundry 계층을 받을 수 있습니다. 레이어 간에 파일을 이동하는 대신 실제 생성된 레이아웃을 사용합니다.
Terraform 구성은 선택한 서비스에 필요한 Foundry 계정, 프로젝트, 모델 배포 및 관련 리소스를 프로비전합니다. 컨테이너 레지스트리 만들기는 배포 모드 및 이미지 구성에 따라 달라집니다.
main.tfvars.json 는 인프라 입력을 azd 환경 값에 바인딩합니다.
outputs.tf 프로비전 후 Foundry 프로젝트 엔드포인트와 같은 값을 azd에 노출합니다. 이러한 바인딩은 azd 워크플로의 일부입니다. 생성된 매개 변수 파일이 독립 실행형 terraform apply으로 변경되지 않고 작동한다고 가정하지 마세요.
Terraform 인프라를 사용자 지정하려면 생성된 .tf 파일을 편집하고, 에이전트 서비스에 필요한 출력값을 유지한 다음 azd provision을 실행합니다. 인프라 변경 내용을 적용하기 전에 Terraform 계획을 검토합니다.
Terraform 상태 및 CI/CD
생성된 파일은 원격 상태 백 엔드를 부트스트랩하지 않습니다. 팀 배포의 경우 CI/CD를 구성하기 전에 Azure Storage 지원되는 상태, 각 환경에 대한 별도의 상태 키 및 필요한 백 엔드 권한을 구성합니다.
배포 흐름에 대해 Terraform을 사용하여 CI/CD 설정 및 백 엔드 구성을 위해 azd와 함께 Terraform 사용을 참조하세요.
Terraform 제거 제한 사항
Terraform 배출 경로는 현재 Foundry 에이전트 확장의 서비스 network: 구성을 지원하지 않습니다. 인프라가 이미 있는 프로젝트를 꺼내기 전에 기존 리소스 제약 조건을 검토합니다. Ejection은 일반적인 Bicep-Terraform 상태 마이그레이션이 아니며 프로덕션 리소스 삭제는 Terraform을 채택하기 위한 필수 구성 요소가 아닙니다.
기존 리소스
Bicep 템플릿은 새 리소스를 만드는 대신 기존 Azure 리소스에 대한 연결을 지원합니다. 이는 팀에 이미 공유 인프라가 있는 경우에 유용합니다.
| 기존 리소스 | 설정할 환경 변수 |
|---|---|
| AI 서비스 계정 | AZURE_AI_ACCOUNT_NAME |
| Container Registry |
AZURE_CONTAINER_REGISTRY_RESOURCE_ID 및 AZURE_CONTAINER_REGISTRY_ENDPOINT |
| Application Insights |
APPLICATIONINSIGHTS_CONNECTION_STRING 및 APPLICATIONINSIGHTS_RESOURCE_ID |
azd env set을 실행하기 전에 azd provision으로 이 변수들을 설정하세요.
인프라 사용자 지정
infra/ 디렉터리가 표준 azd 인프라입니다. Bicep 리소스를 추가하거나 변경하려면 다음을 수행합니다.
-
infra/main.bicep을 편집하거나infra/core/아래에 새 모듈을 추가합니다. -
main.parameters.json바인딩을 사용하여${VAR}에 새 매개변수를 추가합니다. - 를 사용하여 해당
azd환경 변수를azd env set설정합니다. -
azd provision를 실행하여 변경 내용을 적용합니다.
Bicep 파일의 변경 내용은 배포 간에 유지됩니다.
지역 제한 사항
main.bicep 템플릿은 호스팅된 에이전트가 지원되는 지역으로만 location 제한됩니다. 허용 목록에 없는 지역에 배포해야 하는 경우 @allowed의 main.bicep 데코레이터를 업데이트하세요.