Kebijakan pembersihan Artifact Registry menentukan kriteria untuk menghapus versi artefak yang tidak lagi Anda perlukan secara otomatis atau menyimpan artefak yang ingin Anda simpan tanpa batas waktu.
Kebijakan pembersihan berguna jika Anda menyimpan banyak versi artefak, tetapi hanya perlu menyimpan versi tertentu yang Anda rilis ke produksi. Anda dapat menentukan kebijakan penghapusan dengan kriteria untuk menghapus artefak dan kebijakan penyimpanan dengan kriteria untuk mempertahankan artefak.
Jika versi artefak cocok dengan kriteria dalam kebijakan penghapusan dan kebijakan simpan, Artifact Registry akan menerapkan kebijakan simpan.
Penghapusan yang dipicu oleh kebijakan penghapusan akan mengurangi kuota permintaan penghapusan per project Artifact Registry Anda dan dibatasi hingga 300.000 penghapusan per repositori, per hari.
Jadwal penerapan kebijakan
Artifact Registry menghapus dan mempertahankan artefak yang cocok dengan kebijakan pembersihan Anda menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Jumlah maksimum kebijakan pembersihan per repositori
Anda dapat menerapkan maksimal 10 kebijakan pembersihan ke repositori.
Format yang didukung
Anda dapat menetapkan kebijakan pembersihan di repositori standar dan jarak jauh untuk semua format repositori.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menerapkan atau menghapus kebijakan pembersihan,
minta administrator untuk memberi Anda
peran IAM Artifact Registry Administrator (roles/artifactregistry.admin
) di project repositori.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menerapkan atau menghapus kebijakan pembersihan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menerapkan atau menghapus kebijakan pembersihan:
-
artifactregistry.repositories.update
-
Untuk menghapus artefak yang memenuhi kriteria dalam kebijakan pembersihan:
artifactregistry.versions.delete
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Peran default untuk Agen Layanan Artifact Registry
menyertakan izin artifactregistry.versions.delete
, yang
diperlukan untuk menghapus image yang memenuhi kriteria dalam kebijakan pembersihan.
Membuat file kebijakan
File kebijakan adalah file JSON yang menentukan kebijakan penghapusan dan penyimpanan Anda. Anda dapat membuat file kebijakan dengan membuat dan mengedit file JSON, lalu menggunakan Google Cloud CLI untuk menerapkan kebijakan, atau menggunakan konsol Google Cloud. Kebijakan penghapusan menentukan kondisi untuk menghapus artefak. Kebijakan simpan menentukan kondisi untuk mempertahankan artefak, atau sejumlah versi terbaru yang akan disimpan. Anda tidak dapat menggunakan kondisi dan versi terbaru dalam kebijakan penyimpanan yang sama.
Membuat kebijakan penghapusan
Kebijakan penghapusan memungkinkan Anda menentukan usia minimum atau maksimum untuk penghapusan artefak dan kriteria pemfilteran tambahan untuk membatasi kebijakan ke artefak tertentu.
Jika Anda memiliki artefak tertentu yang tidak ingin dihapus karena alasan apa pun, buat kebijakan simpan bersyarat, atau kebijakan simpan versi terbaru serta kebijakan hapus. Jika artefak cocok dengan kriteria dalam kebijakan penghapusan dan kebijakan penyimpanan, artefak akan disimpan.
console
Anda dapat membuat kebijakan penghapusan untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan penghapusan ke repositori yang ada:
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Cleanup policies, pilih Dry run untuk menguji kebijakan baru Anda sebelum menghapus artefak apa pun. Untuk mengetahui informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah Anda yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori lagi, dan pilih Delete artifacts untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Tambahkan kebijakan pembersihan dan tambahkan hal berikut:
- Nama: Beri nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
- Jenis kebijakan: Pilih Hapus bersyarat.
Status tag: menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau mengambil image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep penampung.
- Status tag apa pun: mengabaikan status tag dan berlaku untuk artefak bertag dan tanpa tag.
- Diberi tag: hanya berlaku untuk artefak yang diberi tag.
- Tidak diberi tag: hanya berlaku untuk artefak yang tidak diberi tag.
Format yang tidak mendukung tag akan diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.Untuk mengetahui informasi selengkapnya tentang status tag yang berlaku untuk kebijakan pembersihan, lihat Referensi TagState.
Berikut adalah cara opsional untuk menentukan kebijakan penghapusan:
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
test
, danstaging
akan cocok dengan gambar dengan tagtestenv
danstaging-1.5
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag. - Awal versi: - adalah daftar awalan versi artefak yang dipisahkan koma. Misalnya,
v1
,v2
akan cocok dengan versiv1.5
,v2.0alpha
, danv10.2
. - Awalan paket: adalah daftar awalan nama artefak. Anda dapat memasukkan beberapa awalan dengan menekan
Enter
atau,
di antara awalan. Misalnya,red, blue
akan membuat dua awalan,red
danblue
, serta akan cocok dengan nama artefakred-team
,redis
, danbluebird
. - Lebih lama dari: adalah waktu minimum sejak versi artefak
dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
. - Lebih baru dari: adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari.
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
Anda dapat menambahkan kebijakan pembersihan lainnya dengan mengklik Tambahkan kebijakan pembersihan.
Klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda. Anda dapat melihat kebijakan pembersihan di bagian Repository details dengan mengklik Show more.
JSON
{
"name": "DELETE_POLICY_NAME",
"action": {"type": "Delete"},
"condition": {
"tagState": "TAG_STATUS",
"tagPrefixes": ["TAG_PREFIXES"],
"versionNamePrefixes": ["VERSION_PREFIXES"],
"packageNamePrefixes": ["PACKAGE_PREFIXES"],
"olderThan": "OLDER_THAN_DURATION",
"newerThan": "NEWER_THAN_DURATION"
}
}
Kebijakan penghapusan harus menyertakan nama, tindakan, dan minimal satu kondisi.
name
- Dalam cuplikan kebijakan penghapusan, DELETE_POLICY_NAME adalah nama kebijakan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
action
- Untuk kebijakan penghapusan, nilainya adalah
{"type": "Delete"}
. condition
- Tentukan satu atau beberapa kondisi berikut:
tagState
: TAG_STATUS menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau mengambil image ke atau dari repositori. Nilai yang didukung adalah:tagged
: hanya berlaku untuk artefak yang diberi tag.untagged
: hanya berlaku untuk artefak yang tidak diberi tag.any
: mengabaikan status tag dan berlaku untuk artefak bertag dan tidak bertag.
Format yang tidak mendukung tag akan diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep penampung.
tagPrefixes
: TAG_PREFIXES adalah daftar prefiks tag yang dipisahkan koma. Misalnya,"test", "staging"
akan cocok dengan gambar dengan tag"testenv"
dan"staging-1.5"
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag.versionNamePrefixes
: VERSION_PREFIXES adalah daftar awalan versi artefak yang dipisahkan koma. Misalnya,"v1", "v2"
akan cocok dengan versi"v1.5"
,"v2.0alpha"
, dan"v10.2"
.packageNamePrefixes
: PACKAGE_PREFIXES adalah daftar awalan nama artefak yang dipisahkan koma. Misalnya,"red", "blue"
akan cocok dengan nama artefak"red-team"
,"redis"
, dan"bluebird"
.olderThan
: OLDER_THAN_DURATION adalah waktu minimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
.newerThan
: NEWER_THAN_DURATION adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari.
Membuat kebijakan simpan bersyarat
Kebijakan penyimpanan bersyarat menentukan kriteria untuk mempertahankan artefak. Kebijakan simpan berfungsi dengan kebijakan penghapusan untuk menyimpan artefak yang akan dihapus sesuai dengan spesifikasi kebijakan penghapusan Anda, tetapi yang ingin Anda simpan. Jika artefak cocok dengan kriteria untuk kebijakan penghapusan dan kebijakan penyimpanan, artefak akan disimpan.
console
Anda dapat membuat kebijakan penyimpanan untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan simpan ke repositori yang ada:
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Cleanup policies, pilih Dry run untuk menguji kebijakan baru Anda sebelum menghapus artefak apa pun. Anda harus menetapkan setidaknya satu kebijakan penghapusan untuk melihat hasil kebijakan simpan. Untuk informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah Anda yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori lagi, dan pilih Delete artifacts untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Tambahkan kebijakan pembersihan dan tambahkan hal berikut:
- Nama: Beri nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
- Jenis kebijakan: Pilih Conditional keep.
Status tag: menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau mengambil image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep penampung.
- Status tag apa pun: mengabaikan status tag dan berlaku untuk artefak yang diberi tag dan tidak diberi tag.
- Diberi tag: hanya berlaku untuk artefak yang diberi tag.
- Tidak diberi tag: hanya berlaku untuk artefak yang tidak diberi tag.
Format yang tidak mendukung tag akan diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus. Untuk mengetahui informasi selengkapnya tentang status tag yang berlaku untuk kebijakan pembersihan, lihat Referensi TagState.
Berikut adalah cara opsional untuk menentukan kebijakan penyimpanan:
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
test
, danstaging
akan cocok dengan gambar dengan tagtestenv
danstaging-1.5
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag. - Awal versi: - adalah daftar awalan versi artefak yang dipisahkan koma. Misalnya,
v1
,v2
akan cocok dengan versiv1.5
,v2.0alpha
, danv10.2
. - Awalan paket: adalah daftar awalan nama artefak yang dipisahkan koma.
Misalnya,
red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.
- Lebih lama dari: adalah waktu minimum sejak versi artefak
dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
. - Lebih baru dari: adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi.
Misalnya,
30d
adalah 30 hari.
- Awalan tag: adalah daftar awalan tag yang dipisahkan koma. Misalnya, awalan
Anda dapat menambahkan kebijakan pembersihan lainnya dengan mengklik Tambahkan kebijakan pembersihan.
Klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda.
JSON
Formatnya mirip dengan kebijakan penghapusan. Untuk kebijakan simpan, nilai untuk action
adalah {"type": "Keep"}
.
{
"name": "KEEP_POLICY_NAME",
"action": {"type": "Keep"},
"condition": {
"tagState": "TAG_STATUS",
"tagPrefixes": ["TAG_PREFIXES"],
"versionNamePrefixes": ["VERSION_PREFIXES"],
"packageNamePrefixes": ["PACKAGE_PREFIXES"],
"olderThan": "OLDER_THAN_DURATION",
"newerThan": "NEWER_THAN_DURATION"
}
}
Ganti kode berikut:
KEEP_POLICY_NAME
dengan nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.TAG_STATUS
dengan status tag, yang menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mendorong atau menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep penampung.Opsi yang tersedia adalah:
tagged
: hanya berlaku untuk artefak yang diberi tag.untagged
: hanya berlaku untuk artefak yang tidak diberi tag.any
: berlaku untuk semua versi
Format yang tidak mendukung tag akan diperlakukan sebagai
untagged
. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus. Untuk mengetahui informasi selengkapnya tentang status tag yang berlaku untuk kebijakan pembersihan, lihat Referensi TagState.TAG_PREFIXES
dengan daftar awalan tag yang dipisahkan koma. Misalnya, awalantest
, danstaging
akan cocok dengan gambar dengan tagtestenv
danstaging-1.5
.tagState
harus ditetapkan keTAGGED
untuk menggunakan awalan tag.VERSION_PREFIXES
dengan daftar awalan versi artefak yang dipisahkan koma. Misalnya,v1, v2
akan cocok dengan versiv1.5
,v2.0alpha
, danv10.2
.PACKAGE_PREFIXES
dengan daftar awalan nama artefak yang dipisahkan koma. Misalnya,red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.
OLDER_THAN_DURATION
dengan waktu minimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
.NEWER_THAN_DURATION
dengan waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari.
Membuat kebijakan penyimpanan untuk versi terbaru
Anda dapat membuat kebijakan penyimpanan untuk menyimpan sejumlah versi tertentu. Anda tidak dapat menggunakan kriteria Simpan bersyarat dan Simpan versi terbaru dalam kebijakan simpan yang sama.
Kebijakan simpan berfungsi dengan kebijakan penghapusan untuk menyimpan artefak yang akan dihapus sesuai dengan spesifikasi kebijakan penghapusan Anda, tetapi yang ingin Anda simpan. Jika artefak cocok dengan kriteria untuk kebijakan penghapusan dan kebijakan penyimpanan, artefak akan disimpan.
console
Anda dapat membuat kebijakan simpan versi terbaru untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan simpan versi terbaru ke repositori yang ada:
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Cleanup policies, pilih Dry run untuk menguji kebijakan baru Anda sebelum menghapus artefak apa pun. Anda harus menetapkan setidaknya satu kebijakan penghapusan untuk melihat hasil kebijakan simpan. Untuk informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah Anda yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori lagi, dan pilih Delete artifacts untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Tambahkan kebijakan pembersihan dan tambahkan hal berikut:
- Nama: Beri nama kebijakan pembersihan. Nama harus unik dalam grup kebijakan yang Anda terapkan ke repositori.
- Jenis kebijakan: Pilih Simpan versi terbaru.
Di kolom Keep count, masukkan jumlah versi artefak yang akan disimpan di repositori Anda.
Opsional: pilih Package prefixes untuk menentukan awalan paket yang akan menerapkan kebijakan simpan. Misalnya,
red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.Anda dapat menambahkan kebijakan pembersihan lainnya dengan mengklik Tambahkan kebijakan pembersihan.
Klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda. Anda dapat melihat kebijakan pembersihan di bagian Repository details dengan mengklik Show more.
JSON
Formatnya mirip dengan kebijakan penghapusan. Untuk kebijakan simpan, nilai untuk action
adalah {"type": "Keep"}
.
Kebijakan penyimpanan untuk mempertahankan jumlah versi tertentu memiliki bagian mostRecentVersions
, bukan bagian condition
.
{
"name": "KEEP_POLICY_NAME",
"action": {"type": "Keep"},
"mostRecentVersions": {
"packageNamePrefixes": ["PACKAGE_PREFIXES"],
"keepCount": MINIMUM_NUMBER
}
}
Ganti kode berikut:
KEEP_POLICY_NAME
dengan nama untuk kebijakan penyimpanan Anda. Nama tersebut harus unik dalam grup kebijakan yang Anda terapkan ke repositori.PACKAGE_PREFIXES
dengan awalan paket opsional untuk menerapkan kebijakan penyimpanan. Misalnya,red, blue
akan cocok dengan nama artefakred-team
,redis
, danbluebird
.
MINIMUM_NUMBER
dengan jumlah versi artefak yang akan disimpan di repositori Anda.
Untuk menerapkan kebijakan keep ke semua paket di repositori Anda, hapus
kondisi packageNamePrefixes
. Jumlah versi terbaru yang ditentukan dari setiap paket di repositori Anda akan disimpan.
Contoh file kebijakan
Contoh file kebijakan berikut memiliki satu kebijakan penghapusan dan dua kebijakan penyimpanan.
- Kebijakan
delete-prerelease
menghapus versi artefak 30 hari setelah upload jika artefak dimulai dengan stringalpha
atauv0
. - Kebijakan
keep-tagged-release
mempertahankan artefak yang diberi tag dengan awalanrelease
yang memiliki nama file yang diawali denganwebapp
ataumobile
. - Kebijakan
keep-minimum-versions
mempertahankan lima versi artefak terbaru yang memiliki nama file yang dimulai denganwebapp
,mobile
, atausandbox
.
[
{
"name": "delete-prerelease",
"action": {"type": "Delete"},
"condition": {
"tagState": "tagged",
"tagPrefixes": ["alpha", "v0"],
"olderThan": "30d"
}
},
{
"name": "keep-tagged-release",
"action": {"type": "Keep"},
"condition": {
"tagState": "tagged",
"tagPrefixes": ["release"],
"packageNamePrefixes": ["webapp", "mobile"]
}
},
{
"name": "keep-minimum-versions",
"action": {"type": "Keep"},
"mostRecentVersions": {
"packageNamePrefixes": ["webapp", "mobile", "sandbox"],
"keepCount": 5
}
}
]
Menguji kebijakan dengan uji coba
Untuk menguji kebijakan pembersihan, Anda dapat menetapkan kebijakan pembersihan ke dry run di konsol, atau menjalankan perintah gcloud artifacts set-cleanup-policies
dengan flag --dry-run
.
Untuk menganalisis efek kebijakan pembersihan, Anda dapat melihat log audit Akses Data Artifact Registry. Untuk menerima log audit Akses Data untuk kebijakan pembersihan, Anda harus mengaktifkan jenis log audit akses data penulisan data secara eksplisit untuk layanan Artifact Registry. Untuk mengaktifkan log audit akses data, lihat Mengaktifkan log audit.
console
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Kebijakan pembersihan, pilih Pengujian coba.
Klik Tambahkan kebijakan pembersihan dan konfigurasikan opsi untuk kebijakan Hapus bersyarat, Simpan bersyarat, atau Simpan versi terbaru.
Klik Perbarui.
Jika kebijakan penghapusan menghasilkan tindakan BatchDeleteVersions
, parameter
validateOnly
akan dievaluasi menjadi "true"
.
Untuk membuat kueri log audit guna menjalankan uji coba kebijakan pembersihan, jalankan perintah berikut:
gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent:"projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY" AND protoPayload.request.validateOnly=true' \
--resource-names="projects/PROJECT_ID" \
--project=PROJECT_ID
Outputnya akan terlihat seperti berikut:
insertId: qwe123ty3
logName: projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access
operation:
first: true
id: projects/my-project/locations/us-west1/operations/12345abc-fb9b-4b6f-b02c-9a397ee807d4
producer: artifactregistry.googleapis.com
protoPayload:
'@type': type.googleapis.com/google.cloud.audit.AuditLog
authenticationInfo:
principalEmail: service-774919394028@gcp-sa-staging-artreg.iam.gserviceaccount.com
authorizationInfo:
- granted: true
permission: artifactregistry.versions.delete
resource: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
resourceAttributes: {}
methodName: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
request:
'@type': type.googleapis.com/google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
names:
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:4bb3756e4e75dfbc3ced87521ed62b26d16fb4e17993ae6877165f2b6551fb55
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:e8185538b50df953529b300be4963b2c21158808becac7aa0d610f61de8ba701
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:7f7fb0a9453da49f831fe92eb8b1751be13acefe1bbd44cc3f0d63d41c422246
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:84ac871a34560b39dd7bde57b4d333f18a7e8c1b61c8d350c1fefeb1fcd2b3ac
parent: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
validateOnly: true
requestMetadata:
callerIp: private
callerSuppliedUserAgent: stubby_client
destinationAttributes: {}
requestAttributes:
auth: {}
time: '2023-05-26T04:31:21.909465579Z'
resourceName: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
serviceName: artifactregistry.googleapis.com
receiveTimestamp: '2023-05-26T04:31:22.641338594Z'
resource:
labels:
method: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
project_id: my-project
service: artifactregistry.googleapis.com
type: audited_resource
severity: INFO
timestamp: '2023-05-26T04:31:21.909004200Z'
gcloud
Untuk melakukan uji coba dengan kebijakan pembersihan, jalankan perintah berikut:
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--dry-run
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional.
Jika kebijakan penghapusan menghasilkan tindakan BatchDeleteVersions
, parameter
validateOnly
akan dievaluasi menjadi "true"
.
Untuk membuat kueri log audit guna menjalankan uji coba kebijakan pembersihan, jalankan perintah berikut:
gcloud logging read 'protoPayload.serviceName="artifactregistry.googleapis.com" AND protoPayload.request.parent:"projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY" AND protoPayload.request.validateOnly=true' \
--resource-names="projects/PROJECT_ID" \
--project=PROJECT_ID
Outputnya akan terlihat seperti berikut:
insertId: qwe123ty3
logName: projects/my-project/logs/cloudaudit.googleapis.com%2Fdata_access
operation:
first: true
id: projects/my-project/locations/us-west1/operations/12345abc-fb9b-4b6f-b02c-9a397ee807d4
producer: artifactregistry.googleapis.com
protoPayload:
'@type': type.googleapis.com/google.cloud.audit.AuditLog
authenticationInfo:
principalEmail: service-774919394028@gcp-sa-staging-artreg.iam.gserviceaccount.com
authorizationInfo:
- granted: true
permission: artifactregistry.versions.delete
resource: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
resourceAttributes: {}
methodName: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
request:
'@type': type.googleapis.com/google.devtools.artifactregistry.v1.BatchDeleteVersionsRequest
names:
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:4bb3756e4e75dfbc3ced87521ed62b26d16fb4e17993ae6877165f2b6551fb55
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:e8185538b50df953529b300be4963b2c21158808becac7aa0d610f61de8ba701
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:7f7fb0a9453da49f831fe92eb8b1751be13acefe1bbd44cc3f0d63d41c422246
- projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/docker-load-thursday/versions/sha256:84ac871a34560b39dd7bde57b4d333f18a7e8c1b61c8d350c1fefeb1fcd2b3ac
parent: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
validateOnly: true
requestMetadata:
callerIp: private
callerSuppliedUserAgent: stubby_client
destinationAttributes: {}
requestAttributes:
auth: {}
time: '2023-05-26T04:31:21.909465579Z'
resourceName: projects/my-project/locations/us-west1/repositories/docker-test-dryrun/packages/-
serviceName: artifactregistry.googleapis.com
receiveTimestamp: '2023-05-26T04:31:22.641338594Z'
resource:
labels:
method: google.devtools.artifactregistry.v1.ArtifactRegistry.BatchDeleteVersions
project_id: my-project
service: artifactregistry.googleapis.com
type: audited_resource
severity: INFO
timestamp: '2023-05-26T04:31:21.909004200Z'
Menerapkan kebijakan ke repositori
Untuk menggunakan kebijakan pembersihan yang ditentukan dalam file JSON lokal, terapkan kebijakan tersebut ke repositori tempat Anda ingin Artifact Registry menangani penghapusan otomatis versi artefak menggunakan gcloud CLI.
Untuk menerapkan kebijakan pembersihan yang ditetapkan ke Pengujian coba di konsol, tetapkan kebijakan ke Hapus artefak.
Anda hanya dapat menerapkan kebijakan pembersihan ke repositori standar. Anda tidak dapat menerapkan kebijakan pembersihan ke:
- Project Google Cloud .
console
Untuk menerapkan kebijakan pembersihan:
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Kebijakan pembersihan, pilih Hapus artefak.
Artifact Registry menghapus dan mempertahankan artefak yang cocok dengan kebijakan Anda menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
gcloud
Untuk menerapkan kebijakan pembersihan, jalankan perintah berikut di direktori dengan file kebijakan pembersihan Anda.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional. POLICY_FILE
adalah nama file dengan kebijakan pembersihan.
Flag --no-dry-run
menonaktifkan fungsi dry run untuk
repositori.
Misalnya, perintah berikut menerapkan kebijakan di policy.json
ke repositori my-repo
di region us-west1
dalam project my-project
.
gcloud artifacts repositories set-cleanup-policies my-repo \
--project=my-project \
--location=us-west1 \
--policy=policy.json
Artifact Registry menghapus dan mempertahankan artefak yang cocok dengan kebijakan Anda menggunakan tugas latar belakang yang berjalan secara berkala. Perubahan akan diterapkan dalam waktu sekitar satu hari.
Memperbarui kebijakan
console
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Cleanup policies, klik nama kebijakan yang ingin Anda ubah.
Edit kebijakan pembersihan, lalu klik Perbarui.
Kebijakan pembersihan Anda diterapkan ke repositori Anda.
gcloud
Untuk memperbarui kebijakan yang ada, edit setelan di file kebijakan, lalu jalankan perintah berikut untuk menerapkan kebijakan lagi.
gcloud artifacts repositories set-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION \
--policy=POLICY_FILE \
--no-dry-run
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional. POLICY_FILE
adalah nama file dengan kebijakan pembersihan.
Flag --no-dry-run
menonaktifkan fungsi dry run untuk
repositori.
Mencantumkan kebijakan pembersihan repositori
Anda dapat melihat kebijakan pembersihan yang terkait dengan repositori.
console
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori yang ingin Anda lihat.
Di bagian Repository details, klik Show more.
Nama kebijakan pembersihan akan ditampilkan.
Untuk melihat atau mengedit detail kebijakan pembersihan repositori, klik Edit Repositori.
Detail kebijakan pembersihan yang ada tercantum di bagian Kebijakan pembersihan.
gcloud
Jalankan perintah berikut:
gcloud artifacts repositories list-cleanup-policies REPOSITORY \
--project=PROJECT_ID \
--location=LOCATION
Ganti kode berikut:
REPOSITORY
dengan nama repositori.PROJECT_ID
dengan ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional.
Menghapus kebijakan dari repositori
Hapus kebijakan pembersihan dari repositori jika Anda tidak ingin lagi Artifact Registry menghapus versi artefak secara otomatis.
console
Buka halaman Repositories di konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repositori.
Di bagian Kebijakan pembersihan, arahkan kursor ke nama kebijakan yang ingin Anda hapus.
Klik ikon Hapus.
Klik Perbarui.
Kebijakan pembersihan dihapus.
gcloud
Jalankan perintah berikut:
gcloud artifacts repositories delete-cleanup-policies REPOSITORY \
--policynames=POLICY_NAMES \
--project=PROJECT_ID \
--location=LOCATION
Ganti kode berikut:
REPOSITORY
adalah nama repositori.PROJECT_ID
adalah ID project Google Cloud Anda.-
LOCATION
adalah lokasi repositori regional atau multi-regional. POLICY_NAMES
adalah daftar nama kebijakan yang dipisahkan koma untuk kebijakan yang ingin Anda hapus.
Misalnya, perintah berikut akan menghapus kebijakan bernama delete-test
dari
repositori my-repo
di region us-west1
dalam project my-project
:
gcloud artifacts repositories delete-cleanup-policies my-repo \
--policynames=delete-test \
--project=my-project \
--location=us-west1
Entri log audit untuk kebijakan pembersihan
Untuk melihat entri log kebijakan pembersihan di Cloud Logging, Anda harus mengaktifkan logging DATA_WRITE
.
Saat Anda menetapkan kebijakan pembersihan di repositori, operasi akan dicatat ke dalam log sebagai
update ke repositori (operasi UpdateRepository
).
Saat menghapus versi artefak, Artifact Registry akan mencatat peristiwa tersebut
dalam log Akses Data Cloud Logging. Entri log menunjukkan bahwa akun layanan Artifact Registry melakukan penghapusan. ID akun layanan Artifact Registry dalam format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
Alat lainnya
Untuk image container, Anda juga dapat menggunakan alat berikut untuk pengelolaan siklus proses gambar:
- gcrane: Alat untuk registry penampung yang dapat Anda gunakan untuk menyalin image di antara repositori.
- gcr-cleaner: Alat untuk menghapus image penampung berdasarkan kriteria yang ditentukan.
Alat gcrane
dan gcr-cleaner
bukan produk resmi Google.