Menerbitkan modul ke registri privat

Selesai

Anda sekarang memahami apa itu registri Bicep, dan caranya dapat membantu keitka Anda berbagi modul di organisasi Anda. Di unit ini, Anda akan mempelajari cara menerbitkan modul ke registri privat.

Jalur modul

Ketika Anda sebelumnya sudah pernah bekerja dengan modul, Anda mungkin pernah menggunakan jalur file modul untuk merujuknya ke template Anda. Saat Anda bekerja dengan modul dan registri pribadi, Anda perlu menggunakan jalur modul yang berbeda sehingga Bicep tahu cara menemukan modul di registri Anda.

Berikut adalah contoh jalur untuk modul di registri kontainer Azure pribadi:

Diagram that shows the syntax for a module path.

Jalur berisi empat segmen:

  • Skema: Bicep mendukung beberapa jenis modul, yang disebut skema. Saat Anda bekerja dengan registri Bicep, skemanya adalah br.
  • Registri: Nama registri yang berisi modul yang ingin Anda gunakan. Dalam contoh sebelumnya, nama registri adalah toycompany.azurecr.io, yang merupakan nama registri kontainer.
  • Pengidentifikasi modul: Jalur lengkap ke modul di dalam registri.
  • Tag: Tag biasanya mewakili versi modul, karena satu modul dapat memiliki beberapa versi yang diterbitkan. Anda mempelajari selengkapnya tentang tag dan versi di bagian berikutnya.

Saat Anda memublikasikan pengidentifikasi modul Anda sendiri, gunakan pengidentifikasi bermakna yang menunjukkan tujuan modul. Secara opsional, Anda dapat menggunakan namespace, tempat Anda menggunakan garis miring (/) untuk membedakan antara bagian nama. Namun, Azure Container Registry dan Bicep tidak memahami hierarki. Keduanya memperlakukan pengidentifikasi modul sebagai nilai tunggal.

Tag dan versi

Tag mewakili versi modul. Satu modul dalam registri dapat memiliki beberapa versi. Semua versi saling berbagi pengidentifikasi modul, tetapi mereka memiliki tag yang berbeda. Saat menggunakan modul, Anda perlu menggunakan tag untuk menentukan versi yang ingin Anda gunakan, sehingga Bicep mengetahui file modul mana yang akan diambil.

Sebaiknya rencanakan dengan cermat bagaimana Anda akan membuat versi modul Anda. Dua keputusan utama yang perlu Anda buat adalah skema penerapan versi dan kebijakan penerapan versi untuk digunakan.

Skema penerapan versi

Skema penerapan versi Anda menentukan cara Anda menghasilkan nomor versi. Skema penerapan versi umum meliputi:

  • Bilangan bulat dasar dapat digunakan sebagai nomor versi. Misalnya, versi pertama Anda mungkin disebut 1, versi kedua Anda 2, dan sebagainya. Atau, Anda dapat menambahkan awalan ke setiap nomor versi, seperti v1 dan v2.
  • Tanggal juga membuat nomor versi yang baik. Misalnya, jika Anda menerbitkan versi pertama modul pada 16 Januari 2022, Anda dapat memberi nama versi tersebut 2022-01-16 (menggunakan format yyyy-mm-dd). Ketika Anda menerbitkan versi lain pada 3 Maret, Anda bisa menamainya 2022-03-03.
  • Penerapan versi semantik adalah sistem penerapan versi yang sering digunakan dalam perangkat lunak, di mana nomor versi tunggal berisi beberapa bagian. Setiap bagian menandakan informasi yang berbeda tentang sifat perubahan.

Meskipun Anda dapat menggunakan skema penerapan versi apa pun yang Anda suka, ada baiknya memilih sesuatu yang dapat diurutkan ke dalam urutan yang bermakna. Angka dan tanggal sering kali merupakan pilihan yang baik.

Catatan

Azure Container Registry menyimpan tanggal pembuatan tag. Meskipun Anda tidak menggunakan penerapan versi berbasis tanggal, Anda masih dapat melihat informasi ini.

Kebijakan penerapan versi

Modul memberi Anda fleksibilitas untuk memilih kapan harus membuat versi baru atau memperbarui versi yang sudah ada. Misalnya, Anda dapat secara efektif memilih untuk tidak membuat versi dengan membuat dan menerbitkan satu versi bernama latest. Setiap kali Anda perlu mengubah modul Anda, Anda cukup memperbarui versi tersebut. Meskipun kebijakan ini bekerja, itu bukan praktik yang baik.

Sebaliknya, jika Anda membuat perubahan kecil pada modul yang sudah ada yang tidak memengaruhi cara penggunaannya, membuat versi baru mungkin bukan ide yang baik. Anda perlu mengomunikasikan nomor versi baru kepada siapa saja yang menggunakan modul.

Berikut adalah kebijakan penerapan versi yang sering bekerja dengan baik:

  • Setiap kali Anda membuat perubahan yang signifikan pada modul, buat versi baru. Perubahan signifikan mencakup apa pun yang mungkin membuat perbedaan bagi seseorang yang menggunakan modul Anda. Contohnya termasuk menambahkan sumber daya lain ke modul atau mengubah properti sumber daya.
  • Setiap kali Anda membuat perubahan kecil pada modul, yang terkadang disebut perbaikan terbaru, perbarui versi modul yang ada.
  • Hapus versi lama saat tidak lagi relevan atau saat Anda tidak ingin siapa pun menggunakannya.

Tip

Pertimbangkan pengguna modul Anda, dan pastikan untuk memikirkan hal yang pengguna harapkan akan terjadi. Jika seseorang menggunakan modul Anda beberapa kali dan mendapatkan satu hasil, lalu menggunakannya lagi setelah perbaikan terbaru dan mendapatkan hasil yang berbeda, orang tersebut mungkin akan terkejut. Cobalah untuk tidak mengejutkan pengguna Anda.

Menerbitkan modul Anda

Saat Anda membuat modul Bicep yang ingin Anda bagikan, Anda membuat file Bicep seperti biasa. Anda kemudian menerbitkan file ke registri dengan menggunakan perintah bicep publish. Saat Anda menerbitkan, Anda perlu menentukan jalur modul untuk menyimpan modul ke:

az bicep publish \
   --file module.bicep \
   --target 'br:toycompany.azurecr.io/mymodules/modulename:moduleversion'
bicep publish module.bicep `
   --target 'br:toycompany.azurecr.io/mymodules/modulename:moduleversion'

Operasi publikasi melakukan langkah validasi yang sama yang terjadi saat Anda membuat atau menyebarkan file Bicep. Langkah ini mencakup:

  • Memeriksa apakah kode Anda tidak memiliki kesalahan sintaksis.
  • Memverifikasi bahwa Anda menentukan definisi sumber daya yang valid.
  • Menjalankan linter Bicep untuk memverifikasi bahwa kode Anda melewati serangkaian pemeriksaan kualitas.

Jika langkah validasi berhasil, modul akan dipublikasikan ke registri Anda.