Gambaran umum templat Azure Developer CLI

Templat Azure Developer CLI (azd) adalah repositori kode yang mengikuti azd konvensi. Ini menggabungkan konfigurasi proyek, infrastruktur sebagai kode, dan sumber aplikasi opsional sehingga Anda dapat membuat lingkungan dan penyebaran Azure yang dapat diulang.

Templat dapat mendukung berbagai jenis proyek, termasuk:

  • Aplikasi lengkap dengan satu atau beberapa layanan yang dapat disebarkan.
  • Solusi khusus infrastruktur tanpa kode aplikasi.
  • Titik awal yang dapat digunakan kembali yang dapat diinisialisasi dan diperluas oleh pengembang lain.
  • Proyek yang ada yang Anda siapkan untuk provisi dan penyebaran dengan azd.

Artikel ini menjelaskan struktur templat dan bagaimana azd perintah menggunakan filenya.

Mengapa menggunakan templat?

Templat mencakup keputusan yang diperlukan untuk menjalankan proyek di Azure. Tergantung pada proyek, proyek dapat menentukan:

  • Azure sumber daya dan konfigurasinya.
  • Layanan aplikasi dan instruksi pengemasan yang dapat disebarkan.
  • Koneksi antara layanan aplikasi dan sumber daya Azure.
  • Parameter dan output khusus lingkungan.
  • Pengembangan lokal, integrasi berkelanjutan, dan konfigurasi pengiriman berkelanjutan.

Karena konfigurasi disimpan dengan proyek, tim dapat meninjau perubahan dalam kontrol sumber dan membuat lingkungan pengembangan, pengujian, dan produksi yang konsisten.

Cara azd menggunakan templat

File dalam templat mendukung berbagai tahap azd alur kerja:

  • azd init menginisialisasi proyek dan membuat azd lingkungan. Ini juga dapat menggunakan GitHub Copilot untuk menghasilkan templat awal atau menyalin templat yang ada.
  • azd provisionmengevaluasi definisi infrastruktur dan membuat atau memperbarui sumber daya Azure.
  • azd package menyiapkan layanan aplikasi yang dapat disebarkan sesuai dengan azure.yaml.
  • azd deploymengaitkan setiap layanan dengan host Azure dan menyebarkan paket aplikasi.
  • azd up menjalankan tahap provisi, pengemasan, dan penyebaran sebagai alur kerja gabungan.

File templat tetap menjadi file sumber reguler sepanjang proses ini. Anda dapat meninjau, mengedit, dan membuat versi untuk item tersebut bersama bagian lain dari proyek.

Menjelajahi struktur templat Azure Developer CLI

azd templat adalah repositori kode standar dengan konfigurasi tambahan dan aset infrastruktur. Sebagian besar templat menggunakan struktur berikut:

  • azure.yaml file - Menentukan proyek dan memetakan direktori sumber yang dapat disebarkan ke sumber daya Azure.
  • infra folder - Berisi file infrastruktur sebagai kode Bicep atau Terraform yang membuat sumber daya Azure.
  • src folder - Umumnya berisi kode sumber aplikasi yang dapat disebarkan. Templat khusus infrastruktur dapat menghilangkan sumber aplikasi, dan templat aplikasi dapat menggunakan nama direktori sumber lainnya.
  • .azure folder - Berisi lingkungan dan nilai lokal yang dibuat oleh azd. Folder ini adalah status proyek lokal dan biasanya tidak dibagikan sebagai bagian dari templat yang dapat digunakan kembali.

Misalnya, templat umum azd mungkin cocok dengan struktur folder berikut:

contoso-project/
├── azure.yaml                 # azd project and service configuration
├── infra/
│   ├── main.bicep            # Infrastructure entry point
│   └── main.parameters.json  # Maps azd values to Bicep parameters
├── src/                      # Optional application source
│   ├── api/
│   └── web/
├── .github/workflows/        # Optional GitHub Actions pipelines
└── .azure/                   # Local environment state; don't distribute

azd templat juga secara opsional menyertakan satu atau beberapa folder berikut:

  • .github folder - Menyimpan file alur kerja CI/CD untuk GitHub Actions.
  • .azdo folder - Jika Anda memutuskan untuk menggunakan Azure Pipelines untuk CI/CD, tentukan file konfigurasi alur kerja di folder ini.
  • .devcontainer folder - Menentukan lingkungan kontainer pengembangan untuk proyek.

Diagram berikut menunjukkan cara kerja aset templat utama bersama-sama:

flowchart LR
AZ[azure.yaml] -->|Defines services| SRC[Application source]
AZ -->|Selects provider and path| INFRA[Infrastructure as code]
INFRA -->|Provisions| RES[Azure resources]
INFRA -->|Exports values| ENV[azd environment]
ENV -->|Configures| SRC
AZ -->|Maps services to| RES

Aset yang diperlukan dan opsional

Struktur yang tepat bervariasi menurut proyek, tetapi sebagian besar templat menggunakan aset berikut.

azure.yaml

File azure.yaml adalah file konfigurasi proyek utama. Ini mendefinisikan nama proyek dan dapat menentukan layanan yang dapat disebarkan, penyedia infrastruktur, kait, alur kerja, dan perilaku lainnya azd .

Untuk layanan aplikasi, azure.yaml umumnya mengidentifikasi:

  • Jalur ke sumber aplikasi.
  • Bahasa pemrograman atau strategi pengemasan.
  • Layanan Azure yang menghosting aplikasi.
  • Pengaturan Build, Deployment, Container, atau Kubernetes.

Templat khusus infrastruktur dapat menghilangkan layanan aplikasi. Untuk model konfigurasi lengkap, lihat azure.yaml skema.

Contoh berikut mendefinisikan dua layanan aplikasi. Nama layanan, jalur sumber, bahasa, dan target hosting memberi tahu azd apa yang harus di kemas dan tempat untuk menyebarkannya:

name: store
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
  web:
    project: ./src/web
    language: js
    host: staticwebapp

Infrastruktur sebagai kode

Sebagian besar templat berisi direktori infra dengan berkas Bicep atau Terraform. File-file ini menentukan sumber daya Azure, penetapan peran, jaringan, pengaturan aplikasi, dan output penyebaran yang diperlukan oleh proyek.

Untuk penyedia Bicep bawaan, azd biasanya menggunakan infra/main.bicep sebagai titik entri penyebaran dan infra/main.parameters.json untuk memetakan nilai lingkungan azd ke parameter Bicep. Templat Terraform umumnya menggunakan infra/main.tf dan file Terraform terkait.

Misalnya, file parameter Bicep dapat meneruskan nilai yang dipilih oleh azd ke dalam penyebaran infrastruktur:

{
  "parameters": {
    "environmentName": { "value": "${AZURE_ENV_NAME}" },
    "location": { "value": "${AZURE_LOCATION}" }
  }
}

Saat provisi Bicep selesai, azd menyimpan output dari titik masuk sebagai nilai lingkungan. Layanan aplikasi dan kait dapat menggunakan nilai-nilai ini untuk titik akhir sumber daya, nama, dan konfigurasi runtime lainnya.

output API_ENDPOINT string = api.outputs.uri

Sumber aplikasi

Sumber aplikasi bersifat opsional. Saat templat berisi layanan yang dapat disebarkan, setiap definisi layanan di azure.yaml menunjuk ke direktori sumbernya. Templat dapat mengatur layanan di bawah src, menggunakan direktori di tempat lain di repositori, atau mengarahkan layanan ke akar repositori.

Nama folder itu sendiri tidak signifikan. Nilai project di azure.yaml menentukan tempat azd menemukan setiap layanan.

Konfigurasi lingkungan

.azure Direktori berisi status lingkungan lokal dan nilai yang dibuat oleh azd. Ini dapat berisi langganan, lokasi, nama sumber daya, titik akhir, dan nilai output penyebaran untuk beberapa lingkungan.

Perlakukan direktori ini sebagai status lokal daripada aset templat yang dapat digunakan kembali. Jangan meng-commit file environment yang berisi rahasia atau nilai khusus untuk environment tertentu.

Aset pendukung

Templat juga dapat berisi:

  • definisi GitHub Actions atau Azure Pipelines.
  • Dockerfiles dan konfigurasi kontainer.
  • Konfigurasi kontainer pengembangan.
  • Kait perintah dan layanan.
  • Pengujian, skrip, dan dokumentasi proyek.

Aset ini bersifat opsional dan harus disertakan hanya ketika mereka mendukung pengalaman templat yang dimaksudkan.

Asosiasi layanan dan sumber daya

Untuk menyebarkan layanan aplikasi, azd harus mengaitkan definisinya dengan azure.yaml sumber daya Azure yang disediakan. Secara default, azd menemukan sumber daya yang tagnya azd-service-name cocok dengan nama layanan.

Misalnya, layanan bernama api memetakan ke sumber daya yang ditandai dengan azd-service-name: api. Anda dapat menggunakan resourceName properti layanan untuk mengidentifikasi target penyebaran secara eksplisit.

Ekspresi Bicep berikut menambahkan tag penemuan ke tag sumber daya yang sudah ada:

tags: union(tags, {
  'azd-service-name': 'api'
})

Jaga agar nama layanan, pengaturan penemuan sumber daya, output infrastruktur, dan variabel lingkungan aplikasi selaras saat Anda mengedit templat.

Membangun atau mengadaptasi templat

Pengalaman penulisan yang direkomendasikan adalah menjalankan azd init dan memilih Siapkan dengan GitHub Copilot (Pratinjau). Sesi agen Copilot khusus dapat menganalisis file yang ada, membantu merencanakan proyek baru, menghasilkan aset templat, dan memvalidasi hasilnya. Untuk alur kerja ini dan metode penulisan lainnya, lihat Mulai dengan templat baru.

File yang dihasilkan tidak terkait dengan Copilot. Anda dapat menjelajahi dan mengedit file templat langsung setelah inisialisasi. Anda juga dapat membuat file yang sama secara manual atau dengan agen pengkodian AI lain.

Jika templat dari Microsoft, organisasi Anda, atau komunitas pengembang sudah menyediakan arsitektur yang berguna, mulai dari templat yang ada dan sesuaikan untuk proyek Anda. Telusuri templat yang tersedia di galeri templat.

Panduan penggunaan templat

Setiap templat dilisensikan oleh pemiliknya berdasarkan perjanjian yang menyertai templat. Tentukan lisensi mana yang berlaku sebelum Anda menggunakan atau mendistribusikan templat.

Microsoft tidak bertanggung jawab atas templat non-Microsoft dan tidak menyaringnya untuk masalah keamanan, privasi, kompatibilitas, atau performa. Templat, termasuk templat yang disediakan Microsoft, tidak didukung oleh program atau layanan dukungan Microsoft dan disediakan apa adanya tanpa jaminan.

Tinjau semua file templat sebelum memprovisikan. Secara khusus, evaluasi penetapan peran, paparan jaringan, metode autentikasi, tingkat layanan, lokasi sumber daya, dan biaya yang diharapkan.

Langkah selanjutnya