Infrastruktur agen yang dihosting dengan Azure Developer CLI

Important

Item yang ditandai sebagai pratinjau dalam artikel ini saat ini masih dalam pratinjau. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan Microsoft tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk informasi lebih lanjut, lihat Supplemental Terms of Use for Microsoft Azure Previews.

Azure Developer CLI (azd) dapat menghasilkan infrastruktur Bicep atau Terraform dari layanan yang dideklarasikan dalam azure.yaml. Pilih Terraform dengan azd ai agent init --infra=terraform, atau Bicep dengan --infra=bicep. Menjalankan azd provision akan menerapkan infrastruktur yang dipilih.

Provisi infrastruktur dan penyebaran agen terpisah. Terraform atau Bicep mengelola sumber daya pendukung Azure; azd deploy membuat versi bidang data untuk agen terhosting. Untuk mengelola agen itu sendiri dengan Terraform alih-alih azd, lihat Menyebarkan agen yang dihosting dengan Terraform.

Apa yang diprovisikan

Secara default, azd ai agent init tidak membuat file infrastruktur sebagai kode. Gunakan --infra atau --infra=bicep untuk menambahkan infrastruktur Bicep. Gunakan --infra=terraform untuk menambahkan infrastruktur Terraform dan mengatur infra.provider: terraform.

Saat Anda menambahkan infrastruktur Bicep, templat didasarkan pada repositori azd-ai-starter-basic dan membuat sumber daya Azure berikut:

Resource Kegunaan
grup Sumber Daya Mengatur semua sumber daya. Bernama rg-<agent-name>.
Akun Layanan AI Akun Microsoft Foundry.
Proyek "Foundry" Menjadi host bagi kemampuan agen dan AI.
Penyebaran model Model yang digunakan agen, misalnya gpt-4.1-mini.
Azure Container Registry Menyimpan gambar kontainer agen.
Application Insights Pemantauan performa agen dan telemetri.
Ruang Kerja Log Analytics Pengumpulan log terpusat.
Identitas yang dikelola Identitas yang ditetapkan sistem proyek yang mengautentikasi cetak biru identitas agen untuk Microsoft Entra ID dan menyimpan penetapan peran platform.

Templat membuat lebih banyak sumber daya secara kondisional, berdasarkan layanan dan dependensi yang dinyatakan dalam azure.yaml:

  • Pengaturan kemampuan agen -- mendeklarasikan sumber daya Azure yang menyimpan status agen, data vektor, dan file. Atur saat Anda memerlukan agen untuk menggunakan penyimpanan yang Anda miliki.
  • Landasan dengan Bing atau Landasan dengan Bing Custom Search -- untuk alat penelusuran web.
  • Pencarian Azure AI -- untuk grounding pencarian.
  • Azure Storage -- untuk operasi berkas.

Struktur proyek

Untuk Bicep, proyek yang dihasilkan memiliki struktur berikut:

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)

Bagaimana parameter mengalir

Untuk Bicep, file main.parameters.json tersebut memetakan variabel lingkungan azd ke dalam parameter:

{
  "environmentName": { "value": "${AZURE_ENV_NAME}" },
  "location": { "value": "${AZURE_LOCATION}" },
  "aiFoundryResourceName": { "value": "${AZURE_AI_ACCOUNT_NAME}" },
  "aiProjectDeploymentsJson": { "value": "${AI_PROJECT_DEPLOYMENTS=[]}" }
}

Selama azd provision, azd mengambil referensi ${VAR} ini dari lingkungan (.azure/<env>/.env) dan meneruskannya ke deployment Bicep. Output dari penyebaran, seperti titik akhir proyek Foundry, nama penyebaran model, dan titik akhir registri kontainer, ditulis kembali ke lingkungan untuk digunakan oleh azd deploy, azd ai agent run, dan azd ai perintah sumber daya.

Infrastruktur Terraform

Untuk proyek baru, azd ai agent init --infra=terraform menghasilkan file seperti berikut ini:

infra/
|-- main.tf
|-- provider.tf
|-- variables.tf
|-- outputs.tf
|-- main.tfvars.json
\-- .azd-foundry

Layanan berbasis kontainer juga dapat menghasilkan container-registry.tf. Proyek yang sudah ada dapat tetap menggunakan infrastruktur yang ada dan mendapatkan lapisan Foundry terpisah di bawah infra/foundry/. Gunakan tata letak yang dihasilkan aktual daripada memindahkan file antar lapisan.

Konfigurasi Terraform menyediakan akun Foundry, proyek, penyebaran model, dan sumber daya terkait yang diperlukan oleh layanan yang dipilih. Pembuatan registri kontainer tergantung pada mode penyebaran dan konfigurasi gambar.

main.tfvars.json mengikat input infrastruktur ke nilai lingkungan azd. outputs.tf mengekspos nilai seperti titik akhir proyek Foundry ke azd setelah provisi. Keterkaitan ini merupakan bagian dari alur kerja azd; jangan berasumsi bahwa file parameter yang dihasilkan dapat digunakan tanpa perubahan dengan terraform apply yang berdiri sendiri.

Untuk menyesuaikan infrastruktur Terraform, edit file yang dihasilkan .tf , pertahankan output yang diperlukan oleh layanan agen Anda, dan jalankan azd provision. Tinjau paket Terraform sebelum menerapkan perubahan infrastruktur.

Status terraform dan CI/CD

File yang dihasilkan tidak menginisialisasi backend state jarak jauh. Untuk penyebaran tim, konfigurasikan status yang didukung Azure Storage, kunci status terpisah untuk setiap lingkungan, dan izin backend yang diperlukan sebelum mengonfigurasi CI/CD.

Lihat Menyiapkan CI/CD dengan Terraform untuk alur penyebaran dan Menggunakan Terraform dengan azd untuk konfigurasi backend.

Batasan pengeluaran Terraform

Jalur ejeksi Terraform tidak mendukung konfigurasi layanan network: di ekstensi agen Foundry saat ini. Tinjau batasan sumber daya yang ada sebelum mengeluarkan proyek yang sudah memiliki infrastruktur. Ejeksi bukan migrasi status Bicep-ke-Terraform umum, dan menghapus sumber daya produksi bukanlah prasyarat untuk mengadopsi Terraform.

Sumber daya yang ada

Templat Bicep mendukung menyambungkan ke sumber daya Azure yang ada alih-alih membuat yang baru. Ini berguna ketika tim Anda sudah memiliki infrastruktur bersama.

Sumber daya yang ada Variabel lingkungan yang akan diatur
Akun Layanan AI AZURE_AI_ACCOUNT_NAME
Container Registry AZURE_CONTAINER_REGISTRY_RESOURCE_ID dan AZURE_CONTAINER_REGISTRY_ENDPOINT
Application Insights APPLICATIONINSIGHTS_CONNECTION_STRING dan APPLICATIONINSIGHTS_RESOURCE_ID

Atur variabel ini dengan azd env set sebelum Anda menjalankan azd provision.

Menyesuaikan infrastruktur

Direktori infra/ adalah infrastruktur azd standar. Untuk menambahkan atau mengubah sumber daya Bicep:

  1. Edit infra/main.bicep atau tambahkan modul baru di bawah infra/core/.
  2. Tambahkan parameter baru ke main.parameters.json dengan binding ${VAR}.
  3. Atur variabel lingkungan yang sesuai dengan azd menggunakan azd env set.
  4. Jalankan azd provision untuk menerapkan perubahan.

Perubahan pada file Bicep tetap ada pada setiap deployment.

Pembatasan wilayah

main.bicep Templat membatasi location ke wilayah tempat agen yang dihosting didukung. Jika Anda perlu menerapkan ke wilayah yang tidak ada di daftar yang diizinkan, perbarui dekorator @allowed di main.bicep.