Kebijakan pembersihan Artifact Registry menentukan kriteria untuk menghapus otomatis versi artefak yang tidak lagi diperlukan atau menyimpan artefak yang ingin disimpan tanpa batas.
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 mempertahankan kebijakan dengan kriteria untuk mempertahankan artefak.
Jika versi artefak cocok dengan kriteria dalam kebijakan hapus dan kebijakan simpan, Artifact Registry akan menerapkan kebijakan penyimpanan.
Penghapusan yang dipicu oleh kebijakan penghapusan akan mengurangi kuota permintaan penghapusan project Artifact Registry dan dibatasi hingga 300.000 penghapusan per repositori, per hari.
Jadwal penerapan kebijakan
Artifact Registry menghapus dan mempertahankan artefak yang cocok dengan kebijakan pembersihan 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 maksimum 10 kebijakan pembersihan ke repositori.
Format yang didukung
Selama Pratinjau, Anda dapat menetapkan kebijakan pembersihan pada repositori standar untuk semua format repositori kecuali Apt dan Yum.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menerapkan atau menghapus kebijakan pembersihan,
minta administrator untuk memberi Anda peran IAM
Artifact Registry Administrator (roles/artifactregistry.admin
) pada project repositori.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menerapkan atau menghapus kebijakan pembersihan. Untuk melihat izin yang benar-benar diperlukan, perluas 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 mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Peran default untuk Agen Layanan Artifact Registry mencakup 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 hapus dan penyimpanan Anda. Anda dapat membuat file kebijakan dengan membuat dan mengedit file JSON, lalu menggunakan Google Cloud CLI untuk menerapkan kebijakan, atau dengan menggunakan Konsol Google Cloud. Kebijakan penghapusan menentukan kondisi untuk menghapus artefak. Kebijakan Keep menentukan kondisi untuk mempertahankan artefak, atau sejumlah versi terbaru yang akan dipertahankan. Anda tidak dapat menggunakan kondisi dan versi terbaru dalam kebijakan penyimpanan yang sama.
Membuat kebijakan penghapusan
Dengan kebijakan penghapusan, Anda dapat menentukan usia minimum atau maksimum untuk penghapusan artefak dan kriteria pemfilteran tambahan guna membatasi kebijakan untuk artefak tertentu.
Jika ada artefak tertentu yang tidak ingin dihapus karena alasan apa pun, buat kebijakan penyimpanan conditional, atau kebijakan penyimpanan versi terbaru, serta kebijakan penghapusan. Jika artefak cocok dengan kriteria dalam kebijakan penghapusan dan kebijakan penyimpanan, artefak tersebut akan disimpan.
console
Anda dapat membuat kebijakan penghapusan untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan hapus ke repositori yang ada:
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Dry run untuk menguji kebijakan baru Anda sebelum berkomitmen untuk menghapus artefak apa pun. Untuk informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah yakin bahwa kebijakan Anda berfungsi sebagaimana mestinya, edit setelan repositori Anda lagi, lalu pilih Delete artefak untuk menerapkan kebijakan pembersihan dan hapus artefak yang dipilih.
Klik Add a cleanup policy, lalu tambahkan hal berikut:
- Nama: Beri nama kebijakan pembersihan. Nama dalam grup kebijakan yang Anda terapkan ke repositori harus unik.
- Jenis kebijakan: Pilih Penghapusan bersyarat.
Status tag: menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep container.
- Status tag apa pun: mengabaikan status tag dan berlaku untuk artefak yang diberi tag dan tanpa tag.
- Diberi tag: hanya berlaku untuk artefak yang diberi tag.
- Tanpa tag: hanya berlaku untuk artefak yang tidak diberi tag.
Format yang tidak mendukung tag diperlakukan sebagai
untagged
. Untuk mengetahui informasi selengkapnya tentang status tag yang berlaku pada kebijakan pembersihan, baca referensi TagState.
Berikut adalah cara opsional untuk menentukan kebijakan hapus:
- 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
agar dapat menggunakan awalan tag. - Awalan 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 tersebut. 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
masing-masing. - 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 diterapkan ke repositori Anda. Anda dapat melihat kebijakan pembersihan di bagian Detail repositori dengan mengklik Tampilkan lainnya.
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 setidaknya satu kondisi.
name
- Dalam cuplikan kebijakan penghapusan, DELETE_POLICY_NAME adalah nama kebijakan tersebut. Nama dalam grup kebijakan yang Anda terapkan ke repositori harus unik.
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 menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep container. Nilai yang didukung adalah:tagged
,untagged
, atauany
. Format yang tidak mendukung tag diperlakukan sebagaiuntagged
.tagPrefixes
: TAG_PREFIXES adalah daftar awalan tag yang dipisahkan koma. Misalnya,"test", "staging"
akan cocok dengan gambar dengan tag"testenv"
dan"staging-1.5"
.tagState
harus ditetapkan keTAGGED
agar dapat 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
masing-masing.newerThan
: NEWER_THAN_DURATION adalah waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari.
Membuat kebijakan penyimpanan bersyarat
Kebijakan penyimpanan bersyarat menentukan kriteria untuk mempertahankan artefak. Biarkan kebijakan tetap berfungsi dengan kebijakan hapus untuk menyimpan artefak yang akan dihapus sesuai dengan spesifikasi kebijakan penghapusan, tetapi yang ingin Anda pertahankan. Jika artefak cocok dengan kriteria untuk kebijakan hapus dan kebijakan penyimpanan, artefak tersebut akan disimpan.
console
Anda dapat membuat kebijakan keep untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan keep ke repositori yang ada:
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Dry run untuk menguji kebijakan baru Anda sebelum berkomitmen untuk menghapus artefak apa pun. Anda perlu menyetel setidaknya satu kebijakan hapus untuk melihat hasil kebijakan simpan. Untuk informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah yakin bahwa kebijakan berfungsi sebagaimana mestinya, edit setelan repositori Anda lagi, lalu pilih Delete recommendations untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Add a cleanup policy, lalu tambahkan hal berikut:
- Nama: Beri nama kebijakan pembersihan. Nama dalam grup kebijakan yang Anda terapkan ke repositori harus unik.
- Jenis kebijakan: Pilih Simpan bersyarat.
Status tag: menunjukkan apakah kebijakan harus memeriksa artefak yang diberi tag atau artefak yang tidak diberi tag. Artefak diberi tag saat mengirim atau menarik image ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep container.
- Status tag apa pun: mengabaikan status tag dan berlaku untuk artefak yang diberi tag dan tanpa tag.
- Diberi tag: hanya berlaku untuk artefak yang diberi tag.
- Tanpa tag: hanya berlaku untuk artefak yang tidak diberi tag.
Format yang tidak mendukung tag diperlakukan sebagai
untagged
. Untuk mengetahui informasi selengkapnya tentang status tag yang berlaku pada kebijakan pembersihan, baca 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
agar dapat menggunakan awalan tag. - Awalan 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
masing-masing. - 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 diterapkan ke repositori Anda.
JSON
Formatnya mirip dengan kebijakan hapus. Untuk kebijakan penyimpanan, 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 pada kebijakan pembersihan. Nama dalam grup kebijakan yang Anda terapkan ke repositori harus unik.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 mengirim atau mengambil gambar ke atau dari repositori. Untuk mengetahui informasi selengkapnya tentang tag Docker, lihat Konsep container.Opsinya 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 diperlakukan sebagai
untagged
. Untuk mengetahui informasi selengkapnya tentang status tag yang berlaku pada kebijakan pembersihan, baca 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
agar dapat 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 ditetapkan sebagai durasi. Misalnya,30d
adalah 30 hari. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkans
,m
,h
, ataud
masing-masing.NEWER_THAN_DURATION
dengan waktu maksimum sejak versi artefak dibuat di repositori, yang ditentukan sebagai durasi. Misalnya,30d
adalah 30 hari.
Membuat kebijakan penyimpanan versi terbaru
Anda dapat membuat kebijakan penyimpanan untuk mempertahankan sejumlah versi tertentu. Anda tidak dapat menggunakan kriteria Kondisi saat ini dan Pertahankan versi terbaru dalam kebijakan penyimpanan yang sama.
Biarkan kebijakan tetap berfungsi dengan kebijakan hapus untuk menyimpan artefak yang akan dihapus sesuai dengan spesifikasi kebijakan penghapusan Anda, tetapi yang ingin Anda pertahankan. Jika artefak cocok dengan kriteria untuk kebijakan hapus dan kebijakan penyimpanan, artefak tersebut akan disimpan.
console
Anda dapat membuat kebijakan mempertahankan versi terbaru untuk repositori baru atau yang sudah ada.
Untuk menambahkan kebijakan penyimpanan versi terbaru ke repositori yang ada:
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, pilih Dry run untuk menguji kebijakan baru Anda sebelum berkomitmen untuk menghapus artefak apa pun. Anda perlu menyetel setidaknya satu kebijakan hapus untuk melihat hasil kebijakan simpan. Untuk informasi selengkapnya tentang cara melihat hasil pengujian, lihat uji coba.
Setelah yakin bahwa kebijakan berfungsi sebagaimana mestinya, edit setelan repositori Anda lagi, lalu pilih Delete recommendations untuk menerapkan kebijakan pembersihan dan menghapus artefak yang dipilih.
Klik Add a cleanup policy, lalu tambahkan hal berikut:
- Nama: Beri nama kebijakan pembersihan. Nama dalam grup kebijakan yang Anda terapkan ke repositori harus unik.
- Jenis kebijakan: Pilih Simpan versi terbaru.
Di kolom Keep count, masukkan jumlah versi artefak yang akan disimpan di repositori Anda.
Opsional: pilih Awalan paket untuk menentukan awalan paket yang akan menjadi tujuan penerapan kebijakan. 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 diterapkan ke repositori Anda. Anda dapat melihat kebijakan pembersihan di bagian Detail repositori dengan mengklik Tampilkan lainnya.
JSON
Formatnya mirip dengan kebijakan hapus. Untuk kebijakan penyimpanan, 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. Namanya harus unik dalam grup kebijakan yang Anda terapkan ke repositori.PACKAGE_PREFIXES
dengan awalan paket opsional tempat kebijakan penyimpanan akan diterapkan. 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 hapus dan dua kebijakan penyimpanan.
- Kebijakan
delete-prerelease
akan menghapus versi artefak 30 hari setelah diupload jika artefak dimulai dengan stringalpha
atauv0
. - Kebijakan
keep-tagged-release
menyimpan artefak yang diberi tag dengan awalanrelease
yang memiliki nama file dimulai denganwebapp
ataumobile
. - Kebijakan
keep-minimum-versions
menyimpan lima versi terbaru artefak 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 untuk uji coba 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. Agar dapat menerima log audit Akses Data untuk kebijakan pembersihan, Anda harus secara eksplisit mengaktifkan jenis penulisan data log audit akses data 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 Repository.
Di bagian Kebijakan pembersihan, pilih Uji coba.
Klik Add a cleanup policy dan konfigurasikan opsi untuk kebijakan Conditional delete, Conditional keep, atau Keep Most recent version.
Klik Perbarui.
Jika kebijakan hapus menghasilkan tindakan BatchDeleteVersions
, parameter
validateOnly
akan bernilai "true"
.
Guna membuat kueri log audit untuk uji coba kebijakan pembersihan Anda, 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 CLI
Untuk melakukan uji coba dengan kebijakan pembersihan Anda, 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
dengan lokasi regional atau multi-regional repositori.
Jika kebijakan hapus menghasilkan tindakan BatchDeleteVersions
, parameter
validateOnly
akan bernilai "true"
.
Guna membuat kueri log audit untuk uji coba kebijakan pembersihan Anda, 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
Kebijakan pembersihan yang dibuat di Konsol Google Cloud diterapkan saat pembuatan atau update.
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.
Anda hanya dapat menerapkan kebijakan pembersihan ke repositori standar. Anda tidak dapat menerapkan kebijakan pembersihan untuk:
- Project Google Cloud.
- Repositori virtual.
Untuk menerapkan kebijakan pembersihan, jalankan perintah berikut di direktori yang berisi file kebijakan pembersihan.
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
dengan lokasi regional atau multi-regional repositori.--no-dry-run
menonaktifkan fungsi uji coba untuk repositori.POLICY_FILE
adalah nama file dengan kebijakan pembersihan.
Misalnya, perintah berikut menerapkan kebijakan di policy.json
ke repositori my-repo
di region us-east1
dalam project my-project
.
gcloud artifacts repositories set-cleanup-policies my-repo \
--project=my-project \
--location=us-east1 \
--policy=policy.json
Artifact Registry menghapus dan menyimpan 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 Repository.
Di bagian Kebijakan pembersihan, klik nama kebijakan yang ingin disetel untuk diubah.
Edit kebijakan pembersihan, lalu klik Perbarui.
Kebijakan pembersihan diterapkan ke repositori Anda.
gcloud CLI
Untuk memperbarui kebijakan yang sudah ada, edit setelan di file kebijakan Anda, lalu jalankan perintah berikut untuk menerapkan kebijakan kembali.
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
dengan lokasi regional atau multi-regional repositori.--no-dry-run
menonaktifkan fungsi uji coba untuk repositori.POLICY_FILE
adalah nama file dengan kebijakan pembersihan.
Membuat daftar 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 Repository.
Detail kebijakan pembersihan yang sudah ada akan tercantum di bagian Kebijakan pembersihan.
gcloud CLI
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
dengan lokasi regional atau multi-regional repositori.
Menghapus kebijakan dari repositori
Menghapus kebijakan pembersihan dari repositori jika Anda tidak lagi ingin Artifact Registry menghapus versi artefak secara otomatis.
console
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Di bagian Kebijakan pembersihan, arahkan kursor ke nama kebijakan yang ingin Anda hapus.
Klik ikon Delete.
Klik Perbarui.
Kebijakan pembersihan akan dihapus.
gcloud CLI
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 regional atau multi-regional untuk repositori.POLICY_NAMES
adalah daftar nama kebijakan yang dipisahkan koma untuk kebijakan yang ingin Anda hapus.
Misalnya, perintah berikut menghapus kebijakan bernama delete-test
dari repositori my-repo
di region us-east1
dalam project my-project
:
gcloud artifacts repositories delete-cleanup-policies my-repo \
--policynames=delete-test \
--project=my-project \
--location=us-east1
Entri log audit untuk kebijakan pembersihan
Untuk melihat entri log kebijakan pembersihan di Cloud Logging, Anda harus enable logging DATA_WRITE
.
Saat Anda menetapkan kebijakan pembersihan pada repositori, operasi tersebut akan dicatat sebagai update ke repositori (operasi UpdateRepository
).
Saat menghapus versi artefak, Artifact Registry akan mencatat peristiwa tersebut ke dalam log Akses Data Cloud Logging. Entri log menunjukkan bahwa
akun layanan Artifact Registry melakukan penghapusan. ID akun layanan Artifact Registry menggunakan format service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
Alat-alat lain
Untuk image container, Anda juga dapat menggunakan alat berikut untuk pengelolaan siklus proses image:
- gcrane: Alat untuk registry container yang dapat Anda gunakan untuk menyalin image antar-repositori.
- gcr-cleaner: Alat untuk menghapus image container berdasarkan kriteria yang ditentukan.
Alat gcrane
dan gcr-cleaner
bukan produk Google resmi.