Menetapkan kebijakan penyimpanan untuk manifes yang tidak diberi tag

Azure Container Registry memberi Anda opsi untuk menetapkan kebijakan penyimpanan untuk manifes citra tersimpan yang tidak memiliki tag terkait (manifes tidak diberi tag). Saat kebijakan penyimpanan diaktifkan, manifes yang tidak diberi tag di registri akan dihapus secara otomatis setelah beberapa hari yang Anda tetapkan. Fitur ini mencegah registri mengisi dengan artefak yang tidak diperlukan dan membantu Anda menghemat biaya penyimpanan.

Anda dapat menggunakan Azure Cloud Shell atau penginstalan lokal Azure CLI untuk menjalankan contoh perintah di artikel ini. Jika Anda ingin menggunakannya secara lokal, diperlukan versi 2.0.74 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang CLI Azure.

Kebijakan penyimpanan untuk manifes yang tagnya dihapus saat ini merupakan fitur pratinjau registri kontainer Premium. Untuk informasi tentang tingkat layanan registri, lihat tingkat layanan Azure Container Registry.

Peringatan

Tetapkan kebijakan penyimpanan dengan data citra yang dihapus dengan hati-hati tidak dapat dipulihkan. Jika Anda memiliki sistem yang menarik citra berdasarkan manifes digest (dibandingkan dengan nama citra), Anda tidak boleh menetapkan kebijakan penyimpanan untuk manifes yang tidak diberi tag. Menghapus citra yang tidak diberi tag akan mencegah sistem tersebut menarik citra dari registri Anda. Daripada menarik berdasarkan manifes, pertimbangkan untuk mengadopsi skema pemberian tag yang unik, praktik terbaik yang disarankan.

Tentang kebijakan penyimpanan

Azure Container Registry melakukan penghitungan referensi untuk manifes dalam registri. Ketika manifes tidak diberi tag, manifes memeriksa kebijakan penyimpanan. Jika kebijakan penyimpanan diaktifkan, operasi penghapusan manifes diantrekan, dengan tanggal tertentu, sesuai dengan jumlah hari yang ditetapkan dalam kebijakan.

Pekerjaan manajemen antrean terpisah terus-menerus memproses pesan, menskalakan sesuai kebutuhan. Sebagai contoh, misalkan Anda memiliki dua manifes yang tidak diberi tag, terpisah 1 jam, dalam registri dengan kebijakan penyimpanan 30 hari. Dua pesan akan diantrekan. Kemudian, 30 hari kemudian, sekitar 1 jam terpisah, pesan akan diambil dari antrean dan diproses, dengan asumsi kebijakan itu masih berlaku.

Jika atribut delete-enabled dari manifes yang tagnya dihapus diatur ke false, manifes dikunci dan tidak dihapus oleh kebijakan.

Penting

Kebijakan penyimpanan hanya berlaku untuk manifes yang tagnya dihapus dengan tanda waktu setelah kebijakan diaktifkan. Manifes yang tagnya dihapus di registri dengan tanda waktu awal tidak tunduk pada kebijakan. Untuk opsi lain menghapus data gambar, lihat contoh dalam Menghapus gambar kontainer di Azure Container Registry.

Menetapkan kebijakan penyimpanan - CLI

Contoh berikut menunjukkan cara menggunakan Azure CLI untuk menetapkan kebijakan penyimpanan untuk manifes yang tidak diberi tag dalam registri.

Mengaktifkan kebijakan penyimpanan

Secara default, tidak ada kebijakan penyimpanan yang ditetapkan dalam registri kontainer. Untuk menetapkan atau memperbarui kebijakan penyimpanan, jalankan perintah perbarui retensi konfigurasi az acr di Azure CLI. Anda dapat menentukan jumlah hari antara 0 dan 365 untuk mempertahankan manifes yang tidak diberi tag. Jika Anda tidak menentukan jumlah hari, perintah menetapkan default 7 hari. Setelah periode retensi, semua manifes yang tidak diberi tag di registri akan dihapus secara otomatis.

Contoh berikut menetapkan kebijakan penyimpanan 30 hari untuk manifes yang tidak diberi tag di registri myregistry:

az acr config retention update --registry myregistry --status enabled --days 30 --type UntaggedManifests

Contoh berikut menetapkan kebijakan untuk menghapus manifes apa pun di registri segera setelah tidak diberi tag. Buat kebijakan ini dengan menetapkan periode penyimpanan 0 hari.

az acr config retention update \
  --registry myregistry --status enabled \
  --days 0 --type UntaggedManifests

Memvalidasi kebijakan penyimpanan

Jika Anda mengaktifkan kebijakan sebelumnya dengan periode penyimpanan 0 hari, Anda dapat dengan cepat memverifikasi bahwa manifes yang tidak diberi tag akan dihapus:

  1. Dorong citra uji hello-world:latest ke registri Anda, atau ganti citra uji lain pilihan Anda.
  2. Hapus tag citra hello-world:latest, misalnya, menggunakan perintah hapus tag repositori az acr. Manifes yang tidak diberi tag tetap berada di registri.
    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. Dalam beberapa detik, manifes yang tidak diberi tag akan dihapus. Anda dapat memverifikasi penghapusan dengan mencantumkan manifes di repositori, misalnya, menggunakan perintah az acr manifest list-metadata. Jika citra uji adalah satu-satuya di repositori, repositori itu sendiri dihapus.

Mengelola kebijakan penyimpanan

Untuk melihat kebijakan penyimpanan yang ditetapkan dalam registri, jalankan perintah az acr config retention show:

az acr config retention show --registry myregistry

Untuk menonaktifkan kebijakan penyimpanan di registri, jalankan perintah perbarui retensi konfigurasi az acr dan set --status disabled:

az acr config retention update \
  --registry myregistry --status disabled \
  --type UntaggedManifests

Menetapkan kebijakan penyimpanan - portal

Anda juga dapat menetapkan kebijakan penyimpanan registri di portal Microsoft Azure.

Mengaktifkan kebijakan penyimpanan

  1. Navigasi ke registri kontainer Azure Anda. Di bawah Kebijakan, pilih Penyimpanan (Pratinjau).
  2. Dalam Status, pilih Diaktifkan.
  3. Pilih jumlah hari antara 0 dan 365 untuk mempertahankan manifes yang tidak diberi tag. Pilih Simpan.

Mengaktifkan kebijakan penyimpanan di portal Microsoft Azure

Menonaktifkan kebijakan penyimpanan

  1. Navigasi ke registri kontainer Azure Anda. Di bawah Kebijakan, pilih Penyimpanan (Pratinjau).
  2. Dalam Status, pilih Dinonaktifkan. Pilih Simpan.

Langkah berikutnya