Halaman ini menjelaskan cara membuat repositori jarak jauh Artifact Registry.
Repositori jarak jauh menyimpan artefak dari sumber eksternal preset seperti Docker Hub, Maven Central, Python Package Index (PyPI), Debian, atau CentOS, serta sumber yang ditentukan pengguna untuk format yang didukung. Repositori jarak jauh bertindak sebagai proxy untuk sumber eksternal sehingga Anda memiliki kontrol lebih besar atas dependensi eksternal. Saat pertama kali Anda meminta versi paket, Artifact Registry akan mendownload dan meng-cache paket di repositori jarak jauh. Saat berikutnya Anda meminta versi paket yang sama, Artifact Registry akan menyalurkan salinan yang di-cache.
Mode repositori lainnya adalah:
- Standar: Mode repositori default. Anda harus mengupload atau memublikasikan artefak seperti paket pribadi secara langsung ke repositori standar. Meskipun Anda dapat mendownload langsung dari setiap repositori standar, mengakses grup repositori dengan repositori virtual akan menyederhanakan konfigurasi alat.
- Virtual: Repositori yang bertindak sebagai titik akses tunggal untuk beberapa repositori upstream, termasuk repositori jarak jauh dan standar.
Untuk detail selengkapnya tentang cara kerja repositori jarak jauh, lihat Ringkasan repositori jarak jauh.
Sebelum memulai
- Aktifkan Artifact Registry, termasuk mengaktifkan Artifact Registry API dan menginstal Google Cloud CLI.
- Opsional: mengonfigurasi default untuk perintah gcloud CLI.
- Jika Anda mewajibkan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi konten repositori, buat dan aktifkan kunci di Cloud KMS untuk repositori.
Jika Anda ingin melakukan autentikasi ke repositori upstream, aktifkan Secret Manager API.
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Jika Artifact Registry berada dalam perimeter layanan Kontrol Layanan VPC, aktifkan Access Context Manager API jika belum diaktifkan.
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola repositori, minta administrator untuk memberi Anda peran IAM berikut:
-
Buat repositori jarak jauh dan berikan akses ke repositori individual:
Artifact Registry Admin (
roles/artifactregistry.admin
) pada project -
Simpan kredensial repositori upstream Anda dalam versi rahasia:
Secret Manager Admin (
roles/secretmanager.admin
) di project -
Memberikan akses ke sumber upstream di luar perimeter layanan Kontrol Layanan VPC:
Access Context Manager Editor (
roles/accesscontextmanager.policyEditor
) di project, folder, atau organisasi tempat kebijakan akses diterapkan
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat repositori jarak jauh
Saat membuat repositori jarak jauh, Anda harus mengonfigurasi setelan berikut, yang tidak dapat diubah setelah repositori dibuat:
- Format artefak.
- Mode repositori ditetapkan ke jarak jauh.
- Preset repositori jarak jauh atau sumber upstream yang ditentukan pengguna.
- Lokasi repositori.
- Enkripsi dengan kunci yang dikelola Google atau kunci enkripsi yang dikelola pelanggan. Artifact Registry menggunakan kunci enkripsi yang dikelola Google secara default.
Artifact Registry menerapkan batasan kebijakan organisasi yang mengharuskan CMEK untuk mengenkripsi resource atau membatasi kunci Cloud KMS yang dapat digunakan untuk perlindungan CMEK.
Membuat repositori jarak jauh menggunakan konsol Google Cloud
Buka halaman Repositories di Konsol Google Cloud.
Klik Create Repository.
Tentukan nama repositori. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.
Di bagian Format, pilih format repositori.
Di bagian Repository mode, pilih Remote.
Di bagian Remote repository source, pilih preset upstream atau Custom jika Anda ingin menggunakan URL yang ditentukan pengguna untuk upstream.
Opsional. Jika Anda menggunakan upstream kustom, di kolom Custom repository, masukkan URL repositori kustom. URL tidak dapat diubah setelah repositori dibuat.
Di Mode autentikasi repositori jarak jauh, pilih salah satu dari:
- Authenticated: untuk memasukkan nama pengguna dan rahasia untuk autentikasi ke repositori upstream Anda.
- Unauthenticated: untuk melewati autentikasi ke repositori upstream.
Opsional. Jika Anda memilih Diautentikasi, masukkan informasi berikut:
- Di kolom Username, masukkan nama pengguna Anda untuk repositori upstream.
- Di kolom Secret, masukkan versi rahasia tempat Anda menyimpan sandi untuk repositori upstream.
Anda dapat mengedit nilai ini setelah membuat repositori. Untuk mengetahui informasi selengkapnya tentang autentikasi ke upstream repositori jarak jauh, lihat Mengonfigurasi autentikasi ke upstream repositori jarak jauh.
Di bagian Location Type, pilih lokasi repositori:
Pilih jenis lokasi: Wilayah atau Multi-Wilayah. Daftar perubahan lokasi untuk mencerminkan pilihan Anda.
Di daftar Region atau Multi-region, pilih lokasi.
Untuk mengetahui informasi tentang jenis lokasi dan lokasi yang didukung, lihat Lokasi repositori
Tambahkan deskripsi untuk repositori. Deskripsi membantu mengidentifikasi tujuan repositori dan jenis artefak yang dikandungnya.
Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
Jika Anda ingin menggunakan label untuk mengatur repositori, klik Tambahkan Label dan masukkan pasangan nilai kunci untuk label. Anda dapat menambahkan, mengedit, atau menghapus label setelah membuat repositori.
Di bagian Enkripsi, pilih mekanisme enkripsi untuk repositori.
- Kunci yang dikelola Google - Enkripsi konten repositori dengan kunci enkripsi yang dikelola Google.
- Kunci yang dikelola pelanggan - Enkripsi konten repositori dengan kunci yang Anda kontrol melalui Cloud Key Management Service. Untuk mengetahui petunjuk penyiapan utama, lihat Menyiapkan CMEK untuk repositori.
Klik Create.
Artifact Registry membuat repositori dan menambahkannya ke daftar repositori.
Setelah Anda membuat repositori:
- Berikan akses ke repositori.
- Konfigurasikan Docker, pengelola paket, dan klien pihak ketiga lainnya untuk melakukan autentikasi ke repositori.
- Konfigurasikan repositori jarak jauh Artifact Registry untuk melakukan autentikasi ke sumber upstreamnya.
- Image container: Mengonfigurasi autentikasi repositori jarak jauh ke Docker Hub
- Paket bahasa:
- upstream kustom yang ditentukan pengguna: Mengonfigurasi autentikasi ke upstream repositori jarak jauh
Membuat repositori jarak jauh menggunakan gcloud CLI
Untuk membuat repositori, jalankan perintah untuk format repositori yang sesuai:
Docker
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-docker-repo=UPSTREAM
Ganti kode berikut:
REMOTE-REPOSITORY-NAME
dengan nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.PROJECT_ID
dengan project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION
dengan lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list
.DESCRIPTION
dengan deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.REMOTE-REPOSITORY-DESCRIPTION
dengan deskripsi untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.USERNAME
secara opsional, jika Anda menggunakan autentikasi, dengan nama pengguna Anda untuk mengautentikasi ke repositori upstream.SECRET_VERSION
secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.UPSTREAM
dengan nama preset atau URL yang ditentukan pengguna untuk repositori upstream. Untuk informasi tentang upstream preset yang tersedia dan upstream yang didukung pengguna, lihat Format yang didukung.
Misalnya, perintah berikut akan membuat repositori jarak jauh bernama my-repo
di region us-east1
dalam project Google Cloud my-project
dan dapat melakukan autentikasi ke repositori upstream menggunakan nama pengguna my-username
dan versi secret projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=docker \
--location=us-east1 \
--description="Remote Docker repository" \
--mode=remote-repository \
--remote-repo-config-desc="Docker Hub" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-docker-repo=DOCKER-HUB
Untuk mengetahui informasi lebih lanjut tentang cara mengautentikasi ke repositori upstream Docker Hub, baca artikel Mengonfigurasi autentikasi repositori jarak jauh ke Docker Hub.
Maven
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=maven \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-mvn-repo=UPSTREAM
Ganti kode berikut:
REMOTE-REPOSITORY-NAME
dengan nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.PROJECT_ID
dengan project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION
dengan lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list
.DESCRIPTION
dengan deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.REMOTE-REPOSITORY-DESCRIPTION
dengan deskripsi untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.USERNAME
secara opsional, jika Anda menggunakan autentikasi, dengan nama pengguna Anda untuk mengautentikasi ke repositori upstream.SECRET_VERSION
secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.UPSTREAM
dengan nama preset atau URL yang ditentukan pengguna untuk repositori upstream. Untuk informasi tentang upstream preset yang tersedia dan upstream yang didukung pengguna, lihat Format yang didukung.
Misalnya, perintah berikut akan membuat repositori jarak jauh bernama my-repo
di region us-east1
dalam project Google Cloud my-project
dan dapat melakukan autentikasi ke repositori upstream menggunakan nama pengguna my-username
dan versi secret projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=maven \
--location=us-east1 \
--description="Remote Maven repository" \
--mode=remote-repository \
--remote-repo-config-desc="Maven Central" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-mvn-repo=MAVEN-CENTRAL
npm
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=npm \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-npm-repo=UPSTREAM
Ganti kode berikut:
REMOTE-REPOSITORY-NAME
dengan nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.PROJECT_ID
dengan project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION
dengan lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list
.DESCRIPTION
dengan deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.REMOTE-REPOSITORY-DESCRIPTION
dengan deskripsi untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.USERNAME
secara opsional, jika Anda menggunakan autentikasi, dengan nama pengguna Anda untuk mengautentikasi ke repositori upstream.SECRET_VERSION
secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.UPSTREAM
dengan nama preset atau URL yang ditentukan pengguna untuk repositori upstream. Untuk informasi tentang upstream preset yang tersedia dan upstream yang didukung pengguna, lihat Format yang didukung.
Misalnya, perintah berikut akan membuat repositori jarak jauh bernama my-repo
di region us-east1
dalam project Google Cloud my-project
dan dapat melakukan autentikasi ke repositori upstream menggunakan nama pengguna my-username
dan versi secret projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=npm \
--location=us-east1 \
--description="Remote npm repository" \
--mode=remote-repository \
--remote-repo-config-desc="Public npm registry" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-npm-repo=NPMJS
Python
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=python \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--remote-username=USERNAME \
--remote-password-secret-version=SECRET_VERSION \
--remote-python-repo=UPSTREAM
Ganti kode berikut:
REMOTE-REPOSITORY-NAME
dengan nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.PROJECT_ID
dengan project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION
dengan lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list
.DESCRIPTION
dengan deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.REMOTE-REPOSITORY-DESCRIPTION
dengan deskripsi untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.USERNAME
secara opsional, jika Anda menggunakan autentikasi, dengan nama pengguna Anda untuk mengautentikasi ke repositori upstream.SECRET_VERSION
secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.UPSTREAM
dengan nama preset atau URL yang ditentukan pengguna untuk repositori upstream. Untuk informasi tentang upstream preset yang tersedia dan upstream yang didukung pengguna, lihat Format yang didukung.
Misalnya, perintah berikut akan membuat repositori jarak jauh bernama my-repo
di region us-east1
dalam project Google Cloud my-project
dan dapat melakukan autentikasi ke repositori upstream menggunakan nama pengguna my-username
dan versi secret projects/my-project/secrets/my-secret/versions/1
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=python \
--location=us-east1 \
--description="Remote Python repository" \
--mode=remote-repository \
--remote-repo-config-desc="PyPI" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-python-repo=PYPI
Apt (pratinjau)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=apt \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-apt-repo=APT_REPOSITORY_BASE \
--remote-apt-repo-path="APT_REPOSITORY_PATH"
Ganti kode berikut:
REMOTE_REPOSITORY_NAME
dengan nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.PROJECT_ID
dengan project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION
dengan lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list
.DESCRIPTION
dengan deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.REMOTE_REPOSITORY_DESCRIPTION
dengan deskripsi opsional untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.APT_REPOSITORY_BASE
dengan salah satu nama dasar repositori yang didukung yang tercantum dalam hulu paket OS yang didukung untuk repositori jarak jauh Apt.APT_REPOSITORY_PATH
dengan sisa URL repositori upstream yang ingin Anda cache di repositori jarak jauh setelah basis repositori.
Misalnya, perintah berikut membuat repositori jarak jauh bernama my-repo
untuk meng-cache repositori perusak Debian di region us-east1
dalam project Google Cloud my-project
. URL lengkap dari repositori upstream adalah http://deb.debian.org/debian/dists/buster
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=apt \
--location=us-east1 \
--description="Apt remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="Debian buster distribution" \
--remote-apt-repo=DEBIAN \
--remote-apt-repo-path="debian/dists/buster"
Enak (pratinjau)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=yum \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-yum-repo=YUM_REPOSITORY_BASE \
--remote-yum-repo-path="YUM_REPOSITORY_PATH"
Ganti kode berikut:
REMOTE_REPOSITORY_NAME
dengan nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.PROJECT_ID
dengan project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.LOCATION
dengan lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud artifacts locations list
.DESCRIPTION
dengan deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.REMOTE_REPOSITORY_DESCRIPTION
dengan deskripsi opsional untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.YUM_REPOSITORY_BASE
dengan salah satu nama dasar repositori yang didukung yang tercantum dalam hulu paket OS yang didukung untuk repositori jarak jauh Yum.YUM_REPOSITORY_PATH
dengan sisa URL repositori upstream yang ingin Anda cache di repositori jarak jauh setelah basis repositori.
Misalnya, perintah berikut membuat repositori jarak jauh untuk paket Yum
bernama my-repo
di region us-east1
dalam project Google Cloud
my-project
untuk repositori upstream centos/8-stream/BaseOs/x86_64/os
.
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=yum \
--location=us-east1 \
--description="Yum remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="CentOS 8 x86" \
--remote-yum-repo=CENTOS \
--remote-yum-repo-path="centos/8-stream/BaseOs/x86_64/os"
Artifact Registry membuat repositori Anda. Jalankan perintah berikut untuk melihat deskripsi repositori:
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
Setelah Anda membuat repositori, lakukan langkah berikut:
- Berikan akses ke repositori.
- Konfigurasikan Docker, pengelola paket, dan klien pihak ketiga lainnya untuk melakukan autentikasi ke repositori.
- Konfigurasikan repositori jarak jauh Artifact Registry untuk melakukan autentikasi ke sumber upstreamnya.
- Image container: Mengonfigurasi autentikasi repositori jarak jauh ke Docker Hub
- Paket bahasa:
- upstream kustom yang ditentukan pengguna: Mengonfigurasi autentikasi ke upstream repositori jarak jauh
Membuat repositori jarak jauh menggunakan Terraform
Gunakan resource google_artifact_registry_repository
untuk membuat repositori.
Perlu terraform-provider-google
versi
5.0.0
atau yang lebih baru.
Jika Anda baru menggunakan Terraform untuk Google Cloud, lihat halaman Memulai - Google Cloud di situs HashiCorp.
Contoh berikut menentukan penyedia dan repositori jarak jauh dengan
nama resource Terraform my-repo
.
Docker
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "docker"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
docker_repository {
public_repository = "DOCKER_HUB"
}
}
}
Dari mana
- PROJECT-ID adalah project ID Google Cloud.
- LOCATION adalah lokasi repositori.
- REPOSITORY_ID adalah ID repositori.
- DESCRIPTION adalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
- KEY adalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, kunci enkripsi yang dikelola Google.
- CONFIG_DESCRIPTION adalah deskripsi opsional untuk sumber jarak jauh.
Maven
Jika Anda tidak menentukan kebijakan versi, Artifact Registry akan membuat repositori Maven yang menyimpan versi snapshot dan rilis paket secara default.
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "maven"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
maven_repository {
public_repository = "MAVEN_CENTRAL"
}
}
}
Dari mana
- PROJECT-ID adalah project ID Google Cloud.
- LOCATION adalah lokasi repositori.
- REPOSITORY_ID adalah ID repositori.
- DESCRIPTION adalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
- KEY adalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, kunci enkripsi yang dikelola Google.
- CONFIG_DESCRIPTION adalah deskripsi opsional untuk sumber jarak jauh.
Untuk menyimpan versi snapshot dan rilis di repositori
yang berbeda, tentukan kebijakan versi untuk
repositori menggunakan blok maven_config
. Blok ini mendukung
setelan berikut:
version_policy
menetapkan kebijakan versi dengan salah satu nilai berikut:VERSION_POLICY_UNSPECIFIED
: Menyimpan paket ringkasan dan rilis. Ini adalah setelan default.- RILIS: Hanya menyimpan paket rilis.
- SNAPSHOT: Hanya menyimpan paket snapshot.
allow_snapshot_overwrites
mengonfigurasi repositori dengan kebijakan versiSNAPSHOT
untuk menerima snapshot non-unik yang menimpa versi yang ada di repositori.
Contoh berikut menentukan repositori Maven dengan kebijakan versi rilis.
provider "google" {
project = "my-project"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
mode = "REMOTE_REPOSITORY"
maven_config {
version_policy = "RELEASE"
}
}
npm
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "npm"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
npm_repository {
public_repository = "NPMJS"
}
}
}
Dari mana
- PROJECT-ID adalah project ID Google Cloud.
- LOCATION adalah lokasi repositori.
- REPOSITORY_ID adalah ID repositori.
- DESCRIPTION adalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
- KEY adalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, kunci enkripsi yang dikelola Google.
- CONFIG_DESCRIPTION adalah deskripsi opsional untuk sumber jarak jauh.
Python
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "python"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
python_repository {
public_repository = "PYPI"
}
}
}
Dari mana
- PROJECT-ID adalah project ID Google Cloud.
- LOCATION adalah lokasi repositori.
- REPOSITORY_ID adalah ID repositori.
- DESCRIPTION adalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
- KEY adalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, kunci enkripsi yang dikelola Google.
- CONFIG_DESCRIPTION adalah deskripsi opsional untuk sumber jarak jauh.
{i>Apt<i} (Pratinjau)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "APT"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
apt_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
Dari mana
- PROJECT-ID adalah project ID Google Cloud.
- LOCATION adalah lokasi repositori.
- REPOSITORY_ID adalah ID repositori.
- DESCRIPTION adalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
- CONFIG_DESCRIPTION adalah deskripsi opsional untuk sumber jarak jauh.
- REPOSITORY_BASE adalah basis repositori publik preset untuk Apt.
Nilai yang mungkin adalah
DEBIAN
danUBUNTU
. - REPOSITORY_PATH adalah repositori spesifik dari basis. Misalnya,
debian/dists/buster
.
Yum (Pratinjau)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "YUM"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
yum_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
Dari mana
- PROJECT-ID adalah project ID Google Cloud.
- LOCATION adalah lokasi repositori.
- REPOSITORY_ID adalah ID repositori.
- DESCRIPTION adalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
- CONFIG_DESCRIPTION adalah deskripsi opsional untuk sumber jarak jauh.
- REPOSITORY_BASE adalah basis repositori publik preset untuk Yum.
Nilai yang mungkin adalah
CENTOS
,CENTOS_DEBUG
,CENTOS_VAULT
,CENTOS_STREAM
,ROCKY
, danEPEL
. - REPOSITORY_PATH adalah repositori spesifik dari basis. Misalnya,
"centos/8-stream/BaseOS/x86_64/os
.
Artifact Registry membuat repositori Anda. Jalankan perintah berikut untuk melihat deskripsi repositori:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
Setelah Anda membuat repositori:
- Berikan akses ke repositori.
- Konfigurasikan Docker, pengelola paket, dan klien pihak ketiga lainnya untuk melakukan autentikasi ke repositori.
- Konfigurasikan repositori jarak jauh Artifact Registry untuk melakukan autentikasi ke sumber upstreamnya.
- Image container: Mengonfigurasi autentikasi repositori jarak jauh ke Docker Hub
- Paket bahasa:
- upstream kustom yang ditentukan pengguna: Mengonfigurasi autentikasi ke upstream repositori jarak jauh
Mengedit deskripsi repositori
Anda dapat mengubah deskripsi repositori dari Google Cloud Console atau gcloud CLI.
Konsol
Buka halaman Repositories di Konsol Google Cloud.
Dalam daftar repositori, pilih repositori, lalu klik Edit Repository.
Edit deskripsi repositori, lalu klik Save.
gcloud
Untuk memperbarui deskripsi repositori, jalankan perintah:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT] \
--location=LOCATION \
--description="DESCRIPTION"
Ganti nilai berikut:
- REPOSITORY adalah nama repositori. Jika mengonfigurasi repositori default, Anda dapat menghilangkan flag ini untuk menggunakan default.
- PROJECT adalah project ID Google Cloud. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
- LOCATION adalah lokasi regional atau multi-regional. Gunakan tanda ini untuk melihat repositori di lokasi tertentu. Jika mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan lokasi default.
- DESCRIPTION adalah deskripsi untuk repositori.
Akses ke sumber upstream di perimeter layanan
Layanan di perimeter layanan Kontrol Layanan VPC telah membatasi akses ke resource di luar perimeter.
Anda dapat mengizinkan atau menolak akses ke sumber upstream dalam project dan lokasi Google Cloud yang ditentukan.
Secara default, Artifact Registry menolak akses ke sumber upstream jika Anda belum memberikan akses secara eksplisit.
Untuk Artifact Registry, peran yang diperlukan adalah Artifact Registry Administrator (roles/artifactregistry.admin
).
Lihat setelan untuk sumber upstream
Untuk melihat konfigurasi kombinasi project dan lokasi tertentu, jalankan perintah berikut:
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
Misalnya, gunakan perintah berikut untuk melihat setelan repositori jarak jauh
di us-east1
dalam project my-project
:
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
Mengizinkan akses ke sumber upstream
Untuk mengizinkan akses ke sumber upstream di lokasi yang ditentukan, jalankan perintah:
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
Misalnya, gunakan perintah berikut untuk mengizinkan semua repositori jarak jauh di
us-east1
dalam project my-project
untuk mengakses sumber upstreamnya di luar
perimeter:
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
Menolak akses ke sumber upstream
Saat Anda menolak akses ke sumber upstream, artefak cache yang ada di repositori jarak jauh masih tersedia.
Untuk menolak akses ke sumber upstream di lokasi yang ditentukan, jalankan perintah:
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
Misalnya, gunakan perintah berikut untuk memblokir akses ke sumber upstream
di luar perimeter untuk semua repositori jarak jauh di us-west1
dalam
project my-project
:
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
Langkah selanjutnya
- Membuat repositori jarak jauh Docker Hub.
- Pelajari repositori jarak jauh Artifact Registry lebih lanjut.
- Mengonfigurasi autentikasi repositori jarak jauh ke Docker Hub.