Membuat repositori jarak jauh

Halaman ini menjelaskan cara membuat repositori jarak jauh Artifact Registry.

Repositori jarak jauh menyimpan artefak dari sumber upstream berikut:

  • Repositori Artifact Registry standar.
  • Sumber eksternal seperti berikut:
    • CentOS
    • Debian
    • Docker Hub
    • GitHub Container Registry (ghcr.io)
    • Maven Central
    • Indeks Paket Python (PyPI)

Repositori jarak jauh berfungsi sebagai proxy untuk sumber upstream sehingga Anda memiliki lebih banyak kontrol atas dependensi Anda. Saat pertama kali Anda meminta versi paket, Artifact Registry akan mendownload dan menyimpan paket dalam cache di repositori jarak jauh. Lain kali Anda meminta versi paket yang sama, Artifact Registry akan menyajikan salinan yang di-cache.

Jika Anda meminta artefak dari sumber upstream yang tidak ada, atau tidak berisi versi yang Anda tentukan, permintaan akan gagal.

Mode repositori lainnya adalah:

  • Standar: Mode repositori default. Anda mengupload atau memublikasikan artefak seperti paket pribadi 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 berfungsi sebagai satu titik akses untuk beberapa repositori upstream, termasuk repositori jarak jauh dan standar.

Untuk mengetahui detail selengkapnya tentang cara kerja repositori jarak jauh, lihat Ringkasan repositori jarak jauh.

Sebelum memulai

  1. Aktifkan Artifact Registry, termasuk mengaktifkan Artifact Registry API dan menginstal Google Cloud CLI.
  2. Opsional: Konfigurasi setelan default untuk perintah gcloud CLI.
  3. Jika Anda memerlukan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi konten repositori, buat dan aktifkan kunci di Cloud KMS untuk repositori.
  4. Jika Anda ingin melakukan autentikasi ke repositori upstream, aktifkan Secret Manager API.

    gcloud services enable secretmanager.googleapis.com \
        --project=PROJECT_ID
    
  5. Jika Artifact Registry berada di perimeter layanan Kontrol Layanan VPC, aktifkan Access Context Manager API jika belum diaktifkan.

    gcloud services enable accesscontextmanager.googleapis.com \
        --project=PROJECT_ID
    
  6. Jika Anda ingin menetapkan repositori Artifact Registry sebagai upstream, dan repositori tersebut berada dalam project yang berbeda dengan repositori jarak jauh Anda, Anda harus memberikan akses akun layanan untuk project repositori jarak jauh ke project repositori upstream sebelum membuat repositori jarak jauh.

    Memberikan peran Agen Layanan

    Repositori jarak jauh menggunakan Agen Layanan Artifact Registry untuk mengautentikasi repositori upstream Artifact Registry. Anda harus memberikan akses baca ke agen layanan repositori jarak jauh ke repositori upstream.

    Untuk memberikan peran Agen Layanan Artifact Registry kepada agen layanan repositori jarak jauh di repositori upstream, jalankan perintah berikut:

    
      gcloud projects add-iam-policy-binding UPSTREAM_REPOSITORY \
          --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
          --location=REGION \
          --project=UPSTREAM_PROJECT_ID \
          --role roles/artifactregistry.serviceAgent
      

    Ganti kode berikut:

    • UPSTREAM_REPOSITORY adalah ID repositori upstream. Repositori upstream Artifact Registry harus berupa repositori mode standar.
    • REMOTE_PROJECT_NUMBER adalah nomor project dari project Google Cloud untuk repositori jarak jauh Anda.
    • REMOTE_PROJECT_ID adalah ID project Google Cloud untuk repositori jarak jauh Anda.
    • REGION adalah region tempat Anda ingin membuat repositori jarak jauh.
    • UPSTREAM_PROJECT_ID adalah ID project Google Cloud dengan repositori upstream.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola repositori, minta administrator Anda untuk memberikan peran IAM berikut:

  • Buat repositori jarak jauh dan berikan akses ke setiap repositori: Admin Artifact Registry (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 VPC Service Controls: Editor Access Context Manager (roles/accesscontextmanager.policyEditor) di project, folder, atau organisasi tempat kebijakan akses diterapkan

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

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 disetel ke jarak jauh.
  • Sumber upstream repositori jarak jauh.
  • Lokasi repositori.
  • Enkripsi dengan Google-owned and Google-managed encryption keys atau kunci enkripsi yang dikelola pelanggan. Artifact Registry menggunakan Google-owned and Google-managed encryption keys secara default.

Artifact Registry menerapkan batasan kebijakan organisasi yang mewajibkan CMEK untuk mengenkripsi resource atau membatasi kunci Cloud KMS yang dapat digunakan untuk perlindungan CMEK.

console

  1. Buka halaman Repositories di konsol Google Cloud .

    Buka halaman Repositori

  2. Klik Create Repository.

  3. Tentukan nama repositori. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.

  4. Di bagian Format, pilih format repositori.

  5. Di bagian Repository mode, pilih Remote.

  6. Di bagian Sumber repositori jarak jauh, pilih salah satu cara berikut untuk memasukkan URL repositori upstream:

    • Pilih sumber upstream preset yang tercantum untuk jenis format Anda.
    • Pilih Kustom untuk menentukan URL lengkap ke repositori publik atau pribadi untuk format yang didukung.
    • Pilih Repositori Artifact Registry untuk memilih repositori Artifact Registry standar.
  7. Jika Anda memilih Kustom, masukkan URL repositori lengkap di kolom Repositori kustom. URL tidak dapat diubah setelah repositori dibuat.

    Untuk contoh beberapa URL upstream umum, lihat Upstream kustom.

  8. Jika Anda memilih repositori Artifact Registry:

    1. Di kolom Repositori Artifact Registry, masukkan nama lengkap repositori yang ingin Anda gunakan sebagai upstream, atau klik Browse untuk melihat daftar repositori yang aksesnya dapat Anda lihat. Hanya repositori dengan format yang sama dengan repositori jarak jauh Anda yang tercantum.
    2. Klik nama repositori yang ingin Anda gunakan sebagai upstream.
    3. Klik Pilih.
  9. Jika Anda memilih salah satu upstream preset atau memasukkan URL lengkap menggunakan tombol Kustom, maka di Mode autentikasi repositori jarak jauh, pilih salah satu opsi berikut:

    • Terautentikasi: untuk memasukkan nama pengguna dan rahasia Anda untuk autentikasi ke repositori upstream Anda.
    • Tidak diautentikasi: untuk melewati autentikasi ke repositori upstream.
  10. Jika Anda memilih Authenticated, masukkan informasi berikut:

    • Di kolom Username, masukkan nama pengguna Anda untuk repositori upstream.
    • Di kolom Secret, masukkan versi secret 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.

  11. Di bagian Jenis Lokasi, pilih lokasi untuk repositori:

    1. Pilih jenis lokasi: Region atau Multi-Region. Daftar lokasi akan berubah untuk mencerminkan pilihan Anda.

    2. Di daftar Region atau Multi-region, pilih lokasi.

    Untuk mengetahui informasi tentang jenis lokasi dan lokasi yang didukung, lihat Lokasi repositori

  12. Tambahkan deskripsi untuk repositori. Deskripsi membantu mengidentifikasi tujuan repositori dan jenis artefak yang ada di dalamnya.

    Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.

  13. 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.

  14. Di bagian Enkripsi, pilih mekanisme enkripsi untuk repositori.

    • Google-managed encryption key - Enkripsi konten repositori dengan a Google-owned and Google-managed encryption key.
    • Kunci yang dikelola pelanggan - Enkripsi konten repositori dengan kunci yang Anda kontrol melalui Cloud Key Management Service. Untuk mengetahui petunjuk penyiapan kunci, lihat Menyiapkan CMEK untuk repositori.
  15. Jika Anda ingin menggunakan kebijakan pembersihan untuk menghapus artefak yang tidak digunakan, di bagian Kebijakan pembersihan:

    1. Pilih Uji coba untuk menguji kebijakan Anda sebelum menerapkannya.
    2. Klik Tambahkan kebijakan untuk menambahkan kebijakan penyimpanan atau penghapusan ke repositori Anda.
    3. Beri kebijakan pembersihan Anda nama deskriptif di kolom Nama.
    4. Di bagian Jenis kebijakan, pilih salah satu opsi berikut:

      • Penghapusan bersyarat: menghapus artefak berdasarkan kondisi yang Anda tentukan.
      • Penyimpanan bersyarat: menyimpan artefak berdasarkan kondisi yang Anda tentukan.
      • Pertahankan versi terbaru: Mempertahankan sejumlah versi terbaru per paket.

      Untuk mengetahui detail selengkapnya tentang kebijakan pembersihan, lihat Mengonfigurasi kebijakan pembersihan.

  16. Di bagian Artifact Analysis, pilih setelan pemindaian kerentanan:

    • Diaktifkan - Izinkan pemindaian di repositori ini. Container Scanning API harus diaktifkan di project Anda.

      Saat Anda mengaktifkan Container Scanning API, penagihan akan segera dimulai. Setelah Anda mengaktifkan Container Scanning API di sebuah project, pemindaian kerentanan akan diaktifkan untuk semua repositori baru dan yang sudah ada. Saat Anda mengirim image ke Artifact Registry, image tersebut akan otomatis dipindai oleh Artifact Analysis.

    • Dinonaktifkan - Mencegah pemindaian di repositori ini. Jika Container Scanning API diaktifkan di project Anda, pemindaian akan berlanjut di repositori lain; repositori ini akan dikecualikan.

      Untuk mengetahui informasi selengkapnya tentang opsi pemindaian kerentanan, lihat Mengaktifkan dan menonaktifkan pemindaian otomatis.

  17. Klik Buat.

Artifact Registry membuat repositori dan menambahkannya ke daftar repositori.

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" \
    --disable-vulnerability-scanning \
    --remote-docker-repo=UPSTREAM

Flag opsional untuk mengautentikasi ke repositori upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Ganti kode berikut:

  • REMOTE-REPOSITORY-NAME dengan nama repositori. Untuk setiap lokasi repositori dalam 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 tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud 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 melakukan autentikasi ke repositori upstream.
  • SECRET_VERSION secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.
  • UPSTREAM dengan nama upstream preset, jalur repositori Artifact Registry, atau URL yang ditentukan pengguna dari repositori upstream.

    Untuk repositori upstream Artifact Registry, format jalur repositori mirip dengan berikut: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Untuk mengetahui informasi tentang upstream preset yang tersedia dan upstream yang ditentukan pengguna yang didukung, lihat Format yang didukung.

  • --disable-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk menonaktifkan pemindaian kerentanan otomatis.

  • --allow-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk mengizinkan pemindaian kerentanan otomatis. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan pemindaian otomatis.

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 rahasia 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 selengkapnya tentang mengautentikasi ke repositori upstream Docker Hub, lihat 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" \
    --disable-vulnerability-scanning \
    --remote-mvn-repo=UPSTREAM

Flag opsional untuk mengautentikasi ke repositori upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Ganti kode berikut:

  • REMOTE-REPOSITORY-NAME dengan nama repositori. Untuk setiap lokasi repositori dalam 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 tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud 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 melakukan autentikasi ke repositori upstream.
  • SECRET_VERSION secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.
  • UPSTREAM dengan nama upstream preset, jalur repositori Artifact Registry, atau URL yang ditentukan pengguna dari repositori upstream.

    Untuk repositori upstream Artifact Registry, format jalur repositori mirip dengan berikut: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Untuk mengetahui informasi tentang upstream preset yang tersedia dan upstream yang ditentukan pengguna yang didukung, lihat Format yang didukung.

  • --disable-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk menonaktifkan pemindaian kerentanan otomatis.

  • --allow-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk mengizinkan pemindaian kerentanan otomatis. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan pemindaian otomatis.

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 rahasia 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" \
    --disable-vulnerability-scanning \
    --remote-npm-repo=UPSTREAM

Flag opsional untuk mengautentikasi ke repositori upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Ganti kode berikut:

  • REMOTE-REPOSITORY-NAME dengan nama repositori. Untuk setiap lokasi repositori dalam 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 tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud 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 melakukan autentikasi ke repositori upstream.
  • SECRET_VERSION secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.
  • UPSTREAM dengan nama upstream preset, jalur repositori Artifact Registry, atau URL yang ditentukan pengguna dari repositori upstream.

    Untuk repositori upstream Artifact Registry, format jalur repositori mirip dengan berikut: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Untuk mengetahui informasi tentang upstream preset yang tersedia dan upstream yang ditentukan pengguna yang didukung, lihat Format yang didukung.

  • --disable-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk menonaktifkan pemindaian kerentanan otomatis.

  • --allow-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk mengizinkan pemindaian kerentanan otomatis. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan pemindaian otomatis.

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 rahasia 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" \
    --disable-vulnerability-scanning \
    --remote-python-repo=UPSTREAM

Flag opsional untuk mengautentikasi ke repositori upstream:

  • --remote-username=USERNAME
  • --remote-password-secret-version=SECRET_VERSION

Ganti kode berikut:

  • REMOTE-REPOSITORY-NAME dengan nama repositori. Untuk setiap lokasi repositori dalam 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 tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud 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 melakukan autentikasi ke repositori upstream.
  • SECRET_VERSION secara opsional, jika Anda menggunakan autentikasi, dengan versi rahasia yang berisi sandi repositori upstream Anda.
  • UPSTREAM dengan nama upstream preset, jalur repositori Artifact Registry, atau URL yang ditentukan pengguna dari repositori upstream.

    Untuk repositori upstream Artifact Registry, format jalur repositori mirip dengan berikut: projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY.

    Untuk mengetahui informasi tentang upstream preset yang tersedia dan upstream yang ditentukan pengguna yang didukung, lihat Format yang didukung.

  • --disable-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk menonaktifkan pemindaian kerentanan otomatis.

  • --allow-vulnerability-scanning: adalah flag opsional yang mengonfigurasi repositori Anda untuk mengizinkan pemindaian kerentanan otomatis. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan pemindaian otomatis.

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 rahasia 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 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 tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud 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 upstream yang didukung paket OS untuk repositori jarak jauh Apt.
  • APT_REPOSITORY_PATH dengan bagian URL lainnya dari repositori upstream yang ingin Anda cache di repositori jarak jauh setelah dasar repositori.

Misalnya, perintah berikut akan membuat repositori jarak jauh bernama my-repo untuk meng-cache repositori Debian buster di region us-east1 dalam project Google Cloud my-project. URL lengkap 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"

Yum (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 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 tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud 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 upstream yang didukung paket OS untuk repositori jarak jauh Yum.
  • YUM_REPOSITORY_PATH dengan bagian URL lainnya dari repositori upstream yang ingin Anda cache di repositori jarak jauh setelah dasar repositori.

Misalnya, perintah berikut akan membuat repositori jarak jauh untuk paket Yum bernama my-repo di region us-east1 dalam project Google Cloud my-project untuk repositori upstream 9-stream/BaseOs/x86_64/os. URL lengkap repositori adalah https://mirror.stream.centos.org/9-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_STREAM \
    --remote-yum-repo-path="9-stream/BaseOs/x86_64/os"

Go

Repositori jarak jauh Go Artifact Registry hanya mendukung upstream https://proxy.golang publik.

gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
    --project=PROJECT_ID \
    --repository-format=go \
    --location=LOCATION \
    --description="DESCRIPTION" \
    --mode=remote-repository \
    --remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
    --remote-go-repo=https://proxy.golang.org

Ganti kode berikut:

  • REMOTE-REPOSITORY-NAME adalah nama repositori. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.
  • PROJECT_ID adalah project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
  • LOCATION adalah lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud artifacts locations list.

  • DESCRIPTION adalah deskripsi opsional repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.

  • REMOTE-REPOSITORY-DESCRIPTION adalah deskripsi untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.

Misalnya, perintah berikut akan membuat repositori jarak jauh bernama my-repo di region us-east1 dalam project Google Cloud my-project.

gcloud artifacts repositories create my-repo \
    --project=my-project \
    --repository-format=go \
    --location=us-east1 \
    --description="Remote Go repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Go proxy" \
    --remote-go-repo=https://proxy.golang.org

Artifact Registry akan membuat repositori Anda. Jalankan perintah berikut untuk melihat deskripsi repositori:

gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
    --location=LOCATION

Terraform

Gunakan resource google_artifact_registry_repository untuk membuat repositori. Diperlukan versi terraform-provider-google 5.0.0 atau yang lebih baru.

Jika Anda baru menggunakan Terraform untuk Google Cloud, lihat halaman Mulai - 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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Di mana

  • PROJECT-IDadalah Google Cloud project ID.
  • LOCATION adalah lokasi repositori.
  • REPOSITORY_IDadalah ID repositori.
  • DESCRIPTIONadalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
  • KEYadalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, yaitu kunci enkripsi yang dikelola Google.
  • CONFIG_DESCRIPTIONadalah deskripsi opsional dari sumber jarak jauh.
  • DRY_RUN_STATUS menentukan apakah kebijakan pembersihan menghapus artefak, atau hanya mencatat artefak mana yang akan dihapus jika kebijakan pembersihan ditetapkan di repositori. Hapus jika Anda tidak ingin menambahkan kebijakan pembersihan ke repositori. * true: menetapkan kebijakan yang akan dijalankan dalam mode uji coba. Tidak ada artefak yang dihapus dalam mode uji coba. * false: menerapkan kebijakan pembersihan. Artefak dihapus atau dipertahankan bergantung pada kebijakan. Untuk mengetahui informasi selengkapnya tentang kebijakan pembersihan, lihat Mengonfigurasi kebijakan pembersihan.
    • POLICY_NAME adalah nama kebijakan pembersihan.
    • TAG_STATE adalah status tag untuk menerapkan kebijakan. Nilainya adalah tagged, untagged, dan any. any berlaku untuk artefak yang diberi tag dan tidak diberi tag. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.
    • TAG_PREFIX, TAG_PREFIX_N adalah awalan tag untuk menerapkan kebijakan.
    • PKG_PREFIX, PKG_PREFIX_N adalah awalan paket untuk menerapkan kebijakan.
    • TIME_SINCE_UPLOAD adalah waktu sejak versi artefak diupload ke repositori, yang ditentukan sebagai durasi. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkan s, m, h, atau d.
    • KEEP_COUNT adalah jumlah versi per paket artefak yang akan disimpan di repositori Anda.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Di mana

  • PROJECT-IDadalah Google Cloud project ID.
  • LOCATION adalah lokasi repositori.
  • REPOSITORY_IDadalah ID repositori.
  • DESCRIPTIONadalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
  • KEYadalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, yaitu kunci enkripsi yang dikelola Google.
  • CONFIG_DESCRIPTIONadalah deskripsi opsional dari sumber jarak jauh.
  • DRY_RUN_STATUS menentukan apakah kebijakan pembersihan menghapus artefak, atau hanya mencatat artefak mana yang akan dihapus jika kebijakan pembersihan ditetapkan di repositori. Hapus jika Anda tidak ingin menambahkan kebijakan pembersihan ke repositori. * true: menetapkan kebijakan yang akan dijalankan dalam mode uji coba. Tidak ada artefak yang dihapus dalam mode uji coba. * false: menerapkan kebijakan pembersihan. Artefak dihapus atau dipertahankan bergantung pada kebijakan. Untuk mengetahui informasi selengkapnya tentang kebijakan pembersihan, lihat Mengonfigurasi kebijakan pembersihan.
    • POLICY_NAME adalah nama kebijakan pembersihan.
    • TAG_STATE adalah status tag untuk menerapkan kebijakan. Nilainya adalah tagged, untagged, dan any. any berlaku untuk artefak yang diberi tag dan tidak diberi tag. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.
    • TAG_PREFIX, TAG_PREFIX_N adalah awalan tag untuk menerapkan kebijakan.
    • PKG_PREFIX, PKG_PREFIX_N adalah awalan paket untuk menerapkan kebijakan.
    • TIME_SINCE_UPLOAD adalah waktu sejak versi artefak diupload ke repositori, yang ditentukan sebagai durasi. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkan s, m, h, atau d.
    • KEEP_COUNT adalah jumlah versi per paket artefak yang akan disimpan di repositori Anda.

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 snapshot dan merilis paket. Ini adalah setelan default.
    • RILIS: Hanya menyimpan paket rilis.
    • SNAPSHOT: Hanya menyimpan paket snapshot.
  • allow_snapshot_overwrites mengonfigurasi repositori dengan kebijakan versi SNAPSHOT untuk menerima snapshot non-unik yang menggantikan 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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Di mana

  • PROJECT-IDadalah Google Cloud project ID.
  • LOCATION adalah lokasi repositori.
  • REPOSITORY_IDadalah ID repositori.
  • DESCRIPTIONadalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
  • KEYadalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, yaitu kunci enkripsi yang dikelola Google.
  • CONFIG_DESCRIPTIONadalah deskripsi opsional dari sumber jarak jauh.
  • DRY_RUN_STATUS menentukan apakah kebijakan pembersihan menghapus artefak, atau hanya mencatat artefak mana yang akan dihapus jika kebijakan pembersihan ditetapkan di repositori. Hapus jika Anda tidak ingin menambahkan kebijakan pembersihan ke repositori. * true: menetapkan kebijakan yang akan dijalankan dalam mode uji coba. Tidak ada artefak yang dihapus dalam mode uji coba. * false: menerapkan kebijakan pembersihan. Artefak dihapus atau dipertahankan bergantung pada kebijakan. Untuk mengetahui informasi selengkapnya tentang kebijakan pembersihan, lihat Mengonfigurasi kebijakan pembersihan.
    • POLICY_NAME adalah nama kebijakan pembersihan.
    • TAG_STATE adalah status tag untuk menerapkan kebijakan. Nilainya adalah tagged, untagged, dan any. any berlaku untuk artefak yang diberi tag dan tidak diberi tag. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.
    • TAG_PREFIX, TAG_PREFIX_N adalah awalan tag untuk menerapkan kebijakan.
    • PKG_PREFIX, PKG_PREFIX_N adalah awalan paket untuk menerapkan kebijakan.
    • TIME_SINCE_UPLOAD adalah waktu sejak versi artefak diupload ke repositori, yang ditentukan sebagai durasi. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkan s, m, h, atau d.
    • KEEP_COUNT adalah jumlah versi per paket artefak yang akan disimpan di repositori Anda.

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"
    }
  }
  cleanup_policy_dry_run = DRY_RUN_STATUS
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "DELETE"
    condition {
      tag_state    = "TAG_STATE"
      tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
      older_than   = "TIME_SINCE_UPLOAD"
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    condition {
      tag_state             = "TAG_STATE"
      tag_prefixes          = ["TAG_PREFIX", "TAG_PREFIX_N"]
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
    }
  }
  cleanup_policies {
    id     = "POLICY_NAME"
    action = "KEEP"
    most_recent_versions {
      package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
      keep_count            = KEEP_COUNT
    }
  }
}

Di mana

  • PROJECT-IDadalah Google Cloud project ID.
  • LOCATION adalah lokasi repositori.
  • REPOSITORY_IDadalah ID repositori.
  • DESCRIPTIONadalah deskripsi opsional untuk repositori. Jangan sertakan data sensitif, karena deskripsi repositori tidak dienkripsi.
  • KEYadalah nama kunci Cloud Key Management Service, jika Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk enkripsi. Hapus argumen ini untuk menggunakan setelan default, yaitu kunci enkripsi yang dikelola Google.
  • CONFIG_DESCRIPTIONadalah deskripsi opsional dari sumber jarak jauh.
  • DRY_RUN_STATUS menentukan apakah kebijakan pembersihan menghapus artefak, atau hanya mencatat artefak mana yang akan dihapus jika kebijakan pembersihan ditetapkan di repositori. Hapus jika Anda tidak ingin menambahkan kebijakan pembersihan ke repositori. * true: menetapkan kebijakan yang akan dijalankan dalam mode uji coba. Tidak ada artefak yang dihapus dalam mode uji coba. * false: menerapkan kebijakan pembersihan. Artefak dihapus atau dipertahankan bergantung pada kebijakan. Untuk mengetahui informasi selengkapnya tentang kebijakan pembersihan, lihat Mengonfigurasi kebijakan pembersihan.
    • POLICY_NAME adalah nama kebijakan pembersihan.
    • TAG_STATE adalah status tag untuk menerapkan kebijakan. Nilainya adalah tagged, untagged, dan any. any berlaku untuk artefak yang diberi tag dan tidak diberi tag. Jika repositori mengaktifkan tag yang tidak dapat diubah, artefak yang diberi tag tidak dapat dihapus.
    • TAG_PREFIX, TAG_PREFIX_N adalah awalan tag untuk menerapkan kebijakan.
    • PKG_PREFIX, PKG_PREFIX_N adalah awalan paket untuk menerapkan kebijakan.
    • TIME_SINCE_UPLOAD adalah waktu sejak versi artefak diupload ke repositori, yang ditentukan sebagai durasi. Anda dapat menentukan durasi detik, menit, jam, atau hari dengan menambahkan s, m, h, atau d.
    • KEEP_COUNT adalah jumlah versi per paket artefak yang akan disimpan di repositori Anda.

Apt (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"
      }
    }
  }
}

Di mana

  • PROJECT-ID adalah Google Cloud project ID.
  • 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 dari sumber jarak jauh.
  • REPOSITORY_BASE adalah dasar repositori publik preset untuk Apt. Nilai yang mungkin adalah DEBIAN dan UBUNTU.
  • REPOSITORY_PATH adalah repositori tertentu dari dasar. 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"
      }
    }
  }
}

Di mana

  • PROJECT-ID adalah Google Cloud project ID.
  • 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 dari sumber jarak jauh.
  • REPOSITORY_BASE adalah dasar repositori publik preset untuk Yum. Nilai yang mungkin adalah CENTOS, CENTOS_DEBUG, CENTOS_VAULT, CENTOS_STREAM, ROCKY, dan EPEL.
  • REPOSITORY_PATH adalah repositori tertentu dari dasar. Misalnya, "centos/8-stream/BaseOS/x86_64/os.

Artifact Registry akan membuat repositori Anda. Jalankan perintah berikut untuk melihat deskripsi repositori:

gcloud artifacts repositories describe REPOSITORY \
    --location=LOCATION

Setelah Anda membuat repositori:

Mengedit deskripsi repositori

Anda dapat mengubah deskripsi repositori dari Google Cloud konsol atau gcloud CLI.

Konsol

  1. Buka halaman Repositories di konsol Google Cloud .

    Buka halaman Repositori

  2. Di daftar repositori, pilih repositori, lalu klik Edit Repository.

  3. Edit deskripsi repositori, lalu klik Simpan.

gcloud

Untuk memperbarui deskripsi repositori, jalankan perintah:

gcloud artifacts repositories update REPOSITORY \
    --project=PROJECT \
    --location=LOCATION \
    --description="DESCRIPTION"

Ganti kode berikut:

  • REPOSITORY: nama repositori. Jika Anda mengonfigurasi repositori default, Anda dapat menghapus tanda ini untuk menggunakan default.
  • PROJECT: ID project. Google CloudJika flag ini dihilangkan, project saat ini atau default akan digunakan.
  • LOCATION adalah lokasi repositori regional atau multi-regional. Gunakan tanda ini untuk melihat repositori di lokasi tertentu. Jika Anda mengonfigurasi lokasi default, Anda dapat menghilangkan tanda ini untuk menggunakan default.
  • DESCRIPTION: deskripsi untuk repositori.

Akses ke sumber upstream dalam perimeter layanan

Layanan dalam perimeter layanan Kontrol Layanan VPC memiliki akses terbatas ke resource di luar perimeter.

Anda dapat mengizinkan atau menolak akses ke sumber upstream dalam project dan lokasiGoogle 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 Administrator Artifact Registry (roles/artifactregistry.admin).

Melihat 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 tertentu, 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 mengakses sumber upstream di luar perimeter:

gcloud artifacts vpcsc-config allow \
    --project=my-project \
    --location=us-east1

Menolak akses ke sumber upstream

Jika Anda menolak akses ke sumber upstream, artefak yang di-cache yang ada di repositori jarak jauh masih tersedia.

Untuk menolak akses ke sumber upstream di lokasi tertentu, 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 berikutnya