Ringkasan repositori jarak jauh

Dokumen ini memberikan ringkasan tentang repositori jarak jauh. Untuk mengetahui petunjuk tentang cara membuat repositori jarak jauh, lihat Membuat repositori jarak jauh.

Kuota dan batas Artifact Registry berlaku untuk repositori jarak jauh.

Cara kerja repositori jarak jauh

Repositori jarak jauh menyimpan artefak dari sumber upstream berikut:

  • Repositori Artifact Registry standar.
  • Sumber eksternal seperti Docker Hub, Maven Central, Python Package Index (PyPI), Debian, atau CentOS.

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.

Autentikasi upstream

Repositori jarak jauh Artifact Registry mendukung autentikasi dasar ke sumber upstream untuk format yang didukung. Untuk mengetahui informasi selengkapnya tentang cara melakukan autentikasi ke sumber hulu repositori jarak jauh, lihat Mengonfigurasi autentikasi ke hulu repositori jarak jauh.

Kasus penggunaan dan manfaat

Akses yang lebih cepat dan andal ke artefak
Menyimpan salinan yang di-cache dari dependensi publik Anda di Artifact Registry mengurangi latensi saat layanan Google Cloud lain mengambil image. Artefak yang di-cache juga tetap tersedia jika repositori publik eksternal offline karena gangguan atau masalah lainnya.
Resolusi dependensi yang lebih aman

Gunakan repositori jarak jauh bersama dengan repositori virtual untuk memitigasi risiko yang terkait dengan dependensi publik. Beberapa alat tidak menyediakan cara untuk mengontrol urutan penelusuran saat campuran repositori pribadi dan publik dikonfigurasi di klien. Jenis konfigurasi ini rentan terhadap serangan kebingungan dependensi, di mana seseorang mengupload versi baru paket dengan kode berbahaya ke repositori publik untuk mengelabui klien agar memilih versi yang buruk.

Daripada mengonfigurasi klien secara langsung untuk menelusuri beberapa repositori, Anda dapat mengonfigurasi repositori virtual untuk memprioritaskan repositori pribadi daripada repositori jarak jauh.

Mengurangi biaya transfer data

Gunakan repositori jarak jauh untuk meng-cache artefak di region atau multi-region yang sama dengan runtime Anda untuk mengurangi biaya transfer data.

Jika Artifact Registry berada di perimeter layanan VPC Service Controls, Artifact Registry akan menolak akses ke sumber upstream di luar perimeter secara default. Untuk mengizinkan repositori jarak jauh di lokasi tertentu mengakses sumber eksternal yang dikonfigurasi di luar perimeter, lihat petunjuk untuk konfigurasi Kontrol Layanan VPC.

Untuk mempelajari praktik terbaik pengelolaan dependensi lainnya, lihat Pengelolaan dependensi.

Pembaruan pada indeks dan metadata paket

File yang dapat diubah seperti indeks dan metadata paket diperbarui dari sumber upstream jika usianya melebihi usia default. Default untuk jenis file tertentu tercantum dalam tabel berikut:

Format Jenis file Usia update default
Maven maven-metadata.xml 5 menit
archetype-catalog.xml 1 jam
Npm File manifes 5 menit
Python File indeks 1 jam
Docker Cache daftar/dapatkan tag 1 jam
Apt/Yum (pratinjau) File indeks 2 menit
File paket 72 jam

Format yang didukung

Lihat bagian berikut untuk mengetahui format yang tersedia untuk preset dan repositori jarak jauh yang ditentukan pengguna.

URL upstream preset

Sejumlah URL repositori upstream umum tersedia sebagai pilihan preset untuk memudahkan dalam format berikut.

Format jenis paket URL upstream Nama preset upstream
Docker Publik atau pribadi https://registry-1.docker.io DOCKER-HUB
Go Publik https://proxy.golang.org https://proxy.golang.org
Maven Publik atau pribadi https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm Publik atau pribadi https://registry.npmjs.org NPMJS
Python Publik https://pypi.io PYPI
Paket OS (pratinjau) Publik Lihat upstream yang didukung paket OS Lihat upstream yang didukung paket OS

Upstream preset paket OS

Anda dapat membuat repositori jarak jauh paket OS dengan memilih salah satu URL dasar repositori upstream umum yang telah ditetapkan dan menyesuaikan bagian URL lainnya ke repositori tertentu. Dasar repositori berikut didukung:

Apt

Repositori Awalan URL Nama Dasar Repositori
Debian yang Diarsipkan https://snapshot.debian.org DEBIAN_SNAPSHOT
Debian http://deb.debian.org DEBIAN
Ubuntu LTS atau Pro http://archive.ubuntu.com UBUNTU

Yum

Repositori Awalan URL Nama Dasar Repositori
CentOS http://mirror.centos.org CENTOS
http://debuginfo.centos.org CENTOS_DEBUG
https://vault.centos.org CENTOS_VAULT
https://mirror.stream.centos.org CENTOS_STREAM
Rocky http://dl.rockylinux.org ROCKY
Fedora Extra Packages for Enterprise Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

Upstream repositori Artifact Registry

Anda dapat membuat repositori jarak jauh dengan repositori format standar Artifact Registry sebagai upstream untuk format berikut:

  • Docker
  • npm
  • Maven
  • Python

URL kustom

Anda dapat memasukkan URL untuk repositori jarak jauh secara langsung, tanpa menggunakan salah satu sumber upstream preset untuk format berikut.

  • Docker
  • npm
  • Maven
  • Python

Tabel berikut yang tidak lengkap mencantumkan beberapa URI upstream umum.

Format URI upstream Nama Registry
Docker https://ghcr.io GitHub Container Registry
Docker https://registry-1.docker.io Docker Hub
Docker https://public.ecr.aws Galeri Publik AWS ECR
Docker https://registry.k8s.io Kubernetes Container Registry
Docker https://MY_NEXUS_IP Nexus
npm https://registry.npmjs.org npm
npm https://npm.pkg.github.com Registry Npm GitHub
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://repo.maven.apache.org/maven2 Maven Central
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://pypi.io Python Package Index (PyPI)
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

Di mana

  • MY_NEXUS_IP adalah alamat IP dan port instance upstream Nexus Anda.
  • MY_UPSTREAM_REPOSITORY adalah nama repositori upstream Anda; digunakan dalam contoh Nexus.

Batasan

Selain kuota dan batasan Artifact Registry, repositori jarak jauh memiliki batasan berikut:

  • Repositori jarak jauh Maven tidak mengizinkan penetapan kebijakan versi ke snapshot atau rilis.
  • Sumber upstream harus dapat diakses melalui internet. Repositori jarak jauh tidak mendukung sumber upstream jaringan Virtual Private Cloud (VPC) atau lokal tanpa alamat IP publik.

Langkah berikutnya