Memperluas templat azd dengan menambahkan layanan Azure

Setelah Anda membangun templat Azure Developer CLI (azd) baru atau mulai dari yang sudah ada, Anda dapat memperluas dan mengembangkan aplikasi dan infrastrukturnya saat persyaratan Anda berubah. Tutorial ini menunjukkan cara menambahkan layanan Azure baru ke templat tanpa mengandalkan modul yang sudah disediakan templat.

Anda akan memulai dengan hello-azd template, membuat modul Bicep yang mendefinisikan sumber daya Azure Translator, mereferensikan modul tersebut dari titik masuk infrastruktur template, dan mengekspos outputnya sebagai nilai lingkungan azd. Tutorial ini berfokus pada perluasan infrastruktur dan tidak mengubah kode aplikasi.

Note

Anda dapat membuat perubahan berikut secara langsung atau dengan bantuan dari asisten pengodian AI. Terlepas dari metode penulisan, tinjau file yang dihasilkan dan validasi templat sebelum penyebaran.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan:

  • Azure Developer CLI terinstal.
  • Sebuah langganan Azure.
  • Izin untuk membuat sumber daya Azure dalam langganan.
  • Direktori kosong untuk templat yang diinisialisasi.

Menginisialisasi templat

Buka terminal di direktori kosong, lalu inisialisasi templat di direktori tersebut hello-azd :

azd init --template hello-azd .

Templat mencakup:

  • Aplikasi C# di-deploy ke Azure Container Apps sebagai layanan aca di azure.yaml.
  • Identitas terkelola yang ditetapkan pengguna untuk aplikasi.
  • Akun Azure Storage dengan kontainer dan tabel blob.
  • Azure Container Registry dan lingkungan Azure Container Apps.
  • Modul Bicep yang dapat dipakai ulang di bawah infra/core.

Untuk panduan tentang memilih dan meninjau templat sebelum inisialisasi, lihat Mulai dari templat yang sudah ada.

Membuat modul Penerjemah

Buat file bernama infra/translator.bicep, baik secara manual atau dengan bantuan dari asisten pengodian AI. Modul baru ini mandiri dan tidak bergantung pada modul dari templat awal:

@description('Name of the Azure Translator resource.')
param name string

@description('Azure region for the resource.')
param location string

@description('Tags to apply to the resource.')
param tags object = {}

@description('Pricing tier for Azure Translator.')
@allowed([
  'F0'
  'S1'
])
param sku string = 'F0'

resource translator 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
  name: name
  location: location
  kind: 'TextTranslation'
  sku: {
    name: sku
  }
  properties: {
    customSubDomainName: name
    disableLocalAuth: true
    publicNetworkAccess: 'Enabled'
  }
  tags: tags
}

output name string = translator.name
output endpoint string = translator.properties.endpoint

Modul menggunakan TextTranslation jenis sumber daya dan menonaktifkan autentikasi kunci lokal. Tingkat F0 ini berguna untuk evaluasi tetapi hanya memungkinkan satu sumber daya Penerjemah gratis per langganan. Gunakan S1 jika langganan sudah berisi F0 sumber daya atau jika proyek memerlukan tingkat berbayar.

Penting

Contoh pengantar ini memungkinkan titik akhir publik sehingga Anda dapat menyediakan sumber daya tanpa menambahkan infrastruktur jaringan. Sebelum Anda menggunakan pola ini dalam produksi, evaluasi titik akhir privat, kontrol akses jaringan, pemantauan, dan persyaratan keamanan organisasi Anda.

Rujuk modul dari main.bicep

Templat hello-azd mendefinisikan nilai grup sumber daya rg, location, tags, dan resourceToken di infra/main.bicep. Anda dapat mengedit ini dengan tangan atau meminta asisten AI untuk menambahkannya. Tambahkan modul berikut setelah rg deklarasi sumber daya:

module translator './translator.bicep' = {
  name: 'translator'
  scope: rg
  params: {
    name: 'translator-${resourceToken}'
    location: location
    tags: tags
  }
}

Properti scope menyebarkan modul ke dalam grup sumber daya yang dibuat templat. Nilai yang resourceToken ada membuat nama sumber daya Penerjemah berbeda untuk setiap lingkungan.

Ekspor hasil Translator

Tambahkan output berikut di akhir infra/main.bicep:

output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint

Setelah provisioning, azd mencatat output nonrahasia ini di lingkungan yang aktif. Perubahan kode aplikasi yang lebih baru dapat menggunakan nilai-nilai ini untuk menemukan sumber daya Penerjemah.

Memprovisikan dan memverifikasi infrastruktur

Provisikan infrastruktur templat tanpa menyebarkan kode aplikasinya:

azd provision

Jalankan azd env get-values dan konfirmasikan bahwa output mencakup AZURE_TRANSLATOR_NAME dan AZURE_TRANSLATOR_ENDPOINT. Di portal Azure, verifikasi bahwa grup sumber daya berisi sumber daya Azure Translator.

Pada titik ini, templat menyediakan layanan AI tetapi tidak menghubungkan aplikasi sampel ke dalamnya. Untuk menyelesaikan integrasi tersebut, konfigurasikan akses dengan hak minimum untuk identitas terkelola aplikasi, teruskan endpoint ke aplikasi, dan tambahkan klien Translator ke kode aplikasi. Untuk informasi selengkapnya, lihat dokumentasi Azure Translator.

Membersihkan sumber daya

Saat Anda tidak lagi memerlukan sumber daya, hapus sumber daya tersebut untuk menghindari biaya berkelanjutan:

azd down --purge

Minta bantuan

Untuk informasi tentang cara mengajukan bug, meminta bantuan, atau mengusulkan fitur baru untuk Azure Developer CLI, silakan kunjungi halaman troubleshooting dan dukungan.