Terbitkan kode Bicep dari alur kerja penyebaran

Selesai

Saat Anda mengotomatiskan proses penerbitan untuk spesifikasi templat atau modul Bicep, Anda perlu memastikan bahwa semua yang biasanya Anda lakukan sendiri dapat diotomatisasi dan dijalankan dalam alur kerja. Di unit ini, Anda akan mempelajari cara menerapkan beberapa prinsip yang telah Anda pelajari sebelumnya saat menerbitkan spesifikasi templat dan modul Bicep dari alur kerja penyebaran.

Spesifikasi dan modul templat

Bicep memungkinkan Anda untuk dengan mudah menggunakan kembali kode Anda. Dua pendekatan umum untuk menggunakan kembali kode Bicep Anda di seluruh penyebaran adalah:

  • Spesifikasi templat yang dioptimalkan untuk penerapan solusi yang lengkap. Misalnya, Anda telah menentukan sekumpulan sumber daya yang diperkuat keamanan untuk menyebarkan komputer virtual lengkap sesuai dengan spesifikasi perusahaan Anda. Anda dapat menerbitkan kode ini sebagai spesifikasi templat. Kolega Anda kemudian dapat menggunakan spesifikasi templat Anda untuk menyebarkan komputer virtual lengkap, bahkan dari portal Azure.
  • Modul, yang dirancang untuk menjadi bagian dari penyebaran lainnya. Misalnya, Anda telah membuat file Bicep yang membuat akun penyimpanan. Anda mungkin memerlukan akun penyimpanan di banyak penyebaran lain, sehingga Anda dapat menerbitkan file Bicep ke registri dan menggunakannya sebagai modul di seluruh penyebaran organisasi Anda.

Ketika Anda memutuskan antara spesifikasi templat dan modul Bicep, aturan praktis yang baik adalah: jika templat akan disebarkan seperti yang ada di seluruh organisasi Anda, spesifikasi templat mungkin cocok. Tetapi jika Anda cenderung menggunakan kembali templat ini dalam beberapa templat induk, modul Bicep mungkin melayani kebutuhan Anda dengan lebih baik.

Memvalidasi kode yang dapat digunakan kembali dalam alur kerja

Tidak seperti penyebaran Bicep biasa, saat Anda membuat spesifikasi templat atau modul, Anda tidak menyebarkan sumber daya langsung ke Azure. Sebagai gantinya, Anda menerbitkan spesifikasi atau modul templat. Kemudian Anda dapat menggunakan spesifikasi templat atau modul dalam penyebaran lain. Penyebaran tersebut akan menyebarkan sumber daya yang telah Anda tentukan. Karena perbedaan ini, cara Anda memvalidasi dan menguji spesifikasi templat dan modul Bicep mungkin berbeda dari proses yang Anda gunakan untuk penyebaran Bicep reguler.

Melakukan linting kode Bicep Anda adalah praktik yang baik. Linter mendeteksi masalah sintaksis, dan memperingatkan Anda jika Anda tidak mengikuti praktik yang direkomendasikan.

Di luar linting, Anda mungkin ingin mempertimbangkan untuk menguji spesifikasi dan modul templat Anda dengan menggunakan validasi preflight. Anda bahkan mungkin mempertimbangkan untuk menyebarkan spesifikasi dan modul templat Anda ke Azure dan menguji bahwa sumber daya yang mereka buat berperilaku seperti yang Anda harapkan. Namun, mungkin sulit untuk menjalankan jenis pengujian ini dari alur kerja penyebaran karena dua alasan:

  • Validasi dan penyebaran preflight memerlukan lingkungan Azure untuk menyebarkan sumber daya. Anda mungkin perlu mempertahankan langganan Azure atau grup sumber daya khusus untuk digunakan untuk menyebarkan dan menguji modul Anda.
  • Banyak spesifikasi dan modul templat mengharuskan Anda menentukan sekumpulan parameter. Anda mungkin perlu membuat serangkaian parameter pengujian untuk spesifikasi atau modul templat anda untuk digunakan saat disebarkan.

Anda harus memilih apakah akan menyertakan langkah-langkah alur kerja yang menyebarkan dan menguji spesifikasi dan modul templat Anda. Dalam modul pelatihan Microsoft Learn ini, kami lint kode Bicep tetapi tidak menyertakan bentuk pengujian lainnya. Jika Anda ingin menguji spesifikasi dan modul templat, pertimbangkan bagaimana Anda akan menyebarkannya ke Azure. Pertimbangkan juga apakah Anda akan menggunakan langganan khusus atau grup sumber daya untuk menyebarkan sumber daya.

Petunjuk / Saran

Kami menyarankan agar Anda meninjau Uji kode Bicep Anda dengan menggunakan GitHub Actions untuk informasi selengkapnya tentang cara menguji file Bicep Anda dalam alur kerja otomatis.

Autentikasi dan otorisasi

Saat Anda menerbitkan spesifikasi templat ke Azure sendiri, pengguna Microsoft Entra Anda perlu diberikan akses ke grup sumber daya yang berisi sumber daya spesifikasi templat. Demikian juga, saat Anda menerbitkan modul Bicep ke registri, pengguna Microsoft Entra Anda harus memiliki izin untuk menulis ke instans Azure Container Registry yang digunakan organisasi Anda untuk modul Bicep-nya.

Saat Anda bekerja dengan alur kerja penyebaran otomatis, prinsip yang sama berlaku. Namun, karena Anda bukan orang yang menjalankan penyebaran, Anda perlu memastikan bahwa identitas alur kerja Anda diberikan akses yang sesuai ke grup sumber daya untuk menerbitkan spesifikasi templat, atau ke registri kontainer untuk menerbitkan modul.

Petunjuk / Saran

Saat Anda memublikasikan modul ke registri, identitas beban kerja yang menjalankan penyebaran mungkin tidak memerlukan banyak izin. Saat registri Anda menggunakan otorisasi Microsoft Entra, identitas beban kerja hanya memerlukan izin AcrPush pada registri.

Pertimbangkan untuk menggunakan prinsip hak akses paling sedikit dalam keamanan . Berikan identitas alur kerja dengan akses hanya ke registri kontainer, dan bukan ke grup sumber daya atau langganan.

Menerbitkan spesifikasi dan modul templat dari alur kerja

Saat Anda menerbitkan spesifikasi templat dari komputer Anda sendiri dengan menggunakan Azure CLI, Anda menggunakan perintah seperti berikut ini:

az ts create \
  --name StorageWithoutSAS \
  --location westus3 \
  --display-name "Storage account with SAS disabled" \
  --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
  --version 1 \
  --template-file main.bicep

Anda dapat mengonversi perintah Azure CLI ini menjadi langkah GitHub Actions:

- name: Publish template spec
  uses: azure/cli@v1
  with:
    inlineScript: |
      az ts create \
        --name StorageWithoutSAS \
        --location westus3 \
        --display-name "Storage account with SAS disabled" \
        --description "This template spec creates a storage account, which is preconfigured to disable SAS authentication." \
        --version 1 \
        --template-file main.bicep

Alur kerja menggunakan proses yang sama untuk menerbitkan spesifikasi templat yang akan Anda gunakan sendiri.

Demikian pula, saat Anda menerbitkan modul Bicep dari komputer Anda sendiri dengan menggunakan Azure CLI, Anda menggunakan perintah seperti berikut ini:

az bicep publish \
   --file module.bicep \
   --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

Anda juga dapat mengonversi perintah Azure CLI ini menjadi langkah GitHub Actions:

- name: Publish Bicep module
  uses: azure/cli@v1
  with:
    inlineScript: |
      az bicep publish \
        --file module.bicep \
        --target 'br:toycompany.azurecr.io/mymodules/myqueue:2'

Petunjuk / Saran

Dalam contoh ini, nama host registri Bicep (toycompany.azurecr.io) disematkan dalam definisi langkah alur kerja. Hal ini bukanlah praktik yang baik. Anda dapat menggunakan variabel lingkungan untuk mengatur pengaturan konfigurasi seperti ini. Anda akan melihat cara kerjanya nanti dalam modul pelatihan Microsoft Learn ini.

Tak lama, Anda akan melihat bagaimana Anda dapat menerbitkan spesifikasi templat dari alur kerja dengan menggunakan langkah-langkah yang dijelaskan dalam unit ini.

Menggunakan modul atau spesifikasi templat

Dalam modul pelatihan Microsoft Learn sebelumnya, Anda mempelajari cara menyebarkan sumber daya yang ditentukan dalam spesifikasi templat, dan cara menggunakan modul Bicep yang disimpan dalam registri. Baik Anda menerbitkan spesifikasi dan modul templat secara manual atau dari alur kerja penyebaran, Anda menggunakan dan menyebarkannya dengan cara yang sama.

Misalnya, Anda menyebarkan spesifikasi templat atau file Bicep ke grup sumber daya dengan menggunakan perintah Azure CLI az deployment group create, atau cmdlet New-AzResourceGroupDeployment dengan Azure PowerShell.