Dokumen ini memberikan ringkasan tentang repositori jarak jauh. Untuk mengetahui petunjuk 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 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 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.
Jika Anda meminta artefak dari sumber upstream yang tidak ada, atau tidak berisi versi yang ditentukan, permintaan akan gagal.
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.
Autentikasi upstream
Repositori jarak jauh Artifact Registry mendukung autentikasi dasar ke sumber upstream yang ditetapkan pengguna dan preset untuk format yang didukung. Untuk mengetahui informasi selengkapnya tentang cara melakukan autentikasi ke sumber upstream repositori jarak jauh, lihat Mengonfigurasi autentikasi ke upstream repositori jarak jauh.
Kasus penggunaan dan manfaat
- Akses yang lebih cepat dan andal ke artefak
- Menyimpan salinan dependensi publik yang di-cache di Artifact Registry akan mengurangi latensi saat layanan Google Cloud lainnya mengambil image. Artefak yang di-cache juga masih tersedia jika repositori publik eksternal offline karena gangguan atau masalah lainnya.
- Penyelesaian 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, saat seseorang mengupload versi baru paket dengan kode yang buruk 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 Anda daripada repositori jarak jauh.
Jika Artifact Registry berada dalam perimeter layanan Kontrol Layanan VPC, secara default, Artifact Registry akan menolak akses ke sumber upstream di luar perimeter. Untuk mengizinkan repositori jarak jauh di lokasi tertentu untuk mengakses sumber eksternal yang dikonfigurasi di luar perimeter, lihat petunjuk untuk konfigurasi Kontrol Layanan VPC.
Untuk mempelajari praktik terbaik pengelolaan dependensi lainnya, baca Pengelolaan dependensi.
Update pada indeks dan metadata paket
File yang dapat diubah seperti indeks paket dan metadata akan diupdate dari sumber upstream jika ukurannya melebihi batas usia default. Setelan default untuk jenis file tertentu tercantum dalam tabel berikut:
Format | Jenis file | Usia pembaruan default |
---|---|---|
Maven | maven-metadata.xml |
5 menit |
archetype-catalog.xml |
1 jam | |
Npm | File manifes | 5 menit |
Python | File indeks | 1 jam |
Docker | Mencantumkan/Dapatkan cache 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 repositori jarak jauh yang telah ditetapkan dan ditentukan pengguna.
upstream preset
Anda dapat membuat repositori jarak jauh untuk format repositori berikut dan sumber upstream preset yang sesuai:
Format | jenis paket | URL upstream | Nama preset upstream |
---|---|---|---|
Docker | Publik atau pribadi | https://registry-1.docker.io | DOCKER-HUB |
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 hulu paket OS yang didukung | Lihat hulu paket OS yang didukung |
upstream paket OS
Anda dapat membuat repositori jarak jauh paket OS dengan memilih basis repositori dan menyesuaikan sisa URL ke repositori tertentu. Basis repositori berikut ini didukung:
Apt
Repositori | Awalan URL | Nama Dasar Repositori |
---|---|---|
Debian | http://deb.debian.org | DEBIA |
Ubuntu LTS atau Pro | http://archive.ubuntu.com | UBUNTU |
Nyam
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 | BERAT |
Paket Tambahan Fedora untuk Enterprise Linux (EPEL) | https://dl.fedoraproject.org/pub/epel | EPEL |
upstream yang ditentukan pengguna
Anda dapat membuat repositori jarak jauh untuk sumber upstream yang ditentukan pengguna dalam format berikut:
- Docker
- npm
- Maven
- Python
Tabel tidak lengkap berikut mencantumkan beberapa URI upstream umum.
Format | URI upstream | Nama Registry |
---|---|---|
Docker | https://public.ecr.aws | Galeri Publik AWS ECR |
Docker | https://registry.k8s.io | Container Registry Kubernetes |
Docker | https://MY_ARTIFACTORY_INSTANCE.jfrog.io | Artifactory Jfrog |
Docker | https://MY_NEXUS_IP | Nexus |
npm | https://npm.pkg.github.com | Registry Npm GitHub |
npm | https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/npm/MY_UPSTREAM_REPOSITORY | Artifactory Jfrog |
npm | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Maven | https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/MY_UPSTREAM_REPOSITORY | Artifactory Jfrog |
Maven | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Python | https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/pypi/MY_UPSTREAM_REPOSITORY | Artifactory Jfrog |
Python | https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY | Nexus |
Dari mana
- MY_ARTIFACTORY_INSTANCE adalah nama instance upstream Jfrog Artifactory.
- MY_NEXUS_IP adalah alamat IP dan port instance upstream Nexus Anda.
- MY_UPSTREAM_REPOSITORY adalah nama repositori upstream Anda; digunakan dalam contoh Nexus dan Artifactory.
Batasan
Selain kuota dan batasan Artifact Registry, repositori jarak jauh memiliki batasan berikut:
- Repositori jarak jauh Maven tidak mengizinkan penyetelan kebijakan versi ke snapshot atau rilis.
Langkah selanjutnya
- Buat repositori jarak jauh.
- Pelajari repositori Artifact Registry lebih lanjut dengan membaca Ringkasan repositori.