本文件將概略介紹遠端存放區。如需建立遠端存放區的操作說明,請參閱「建立遠端存放區」。
Artifact Registry 的配額與限制適用於遠端存放區。
遠端存放區的運作方式
遠端存放區會儲存下列上游來源的構件:
- 標準 Artifact Registry 存放區。
- 外部來源,例如 Docker Hub、Maven Central、Python Package Index (PyPI)、Debian 或 CentOS。
遠端存放區可做為上游來源的 Proxy,讓您更能掌控依附元件。第一次要求套件版本時,Artifact Registry 會在遠端存放區中下載並快取套件。下次要求相同的套件版本時,Artifact Registry 會提供快取的副本。
如果您從不存在或不包含您指定版本的上游來源要求構件,要求就會失敗。
其他存放區模式如下:
- 標準:預設的存放區模式。您可以直接將構件 (例如私人套件) 上傳或發布至標準存放區。雖然您可以直接從個別標準存放區下載,但透過虛擬存放區存取存放區群組可簡化工具設定。
- 虛擬:此類存放區可做為多個上游存放區的單一存取點,包括遠端和標準存放區。
上游驗證
Artifact Registry 遠端存放區支援基本驗證,可將支援格式的上游來源,如要進一步瞭解如何驗證遠端存放區上游來源,請參閱「設定遠端存放區上游來源的驗證機制」。
用途和優點
- 更快速、可靠地存取構件
- 將公開依附元件的快取副本儲存在 Artifact Registry 中,可減少其他 Google Cloud 服務擷取圖片時的延遲時間。如果外部公開存放區因中斷或其他問題而離線,您仍可使用快取的構件。
- 更安全的依附元件解析
請搭配使用虛擬存放區和遠端存放區,以降低與公開依附元件相關的風險。在用戶端中設定私人和公開存放區時,有些工具不會提供控制搜尋順序的方法。這類設定容易遭到依附元件混淆攻擊,攻擊者會將含有錯誤程式的新版套件上傳至公開存放區,誘騙用戶選擇錯誤版本。
您可以設定虛擬存放區,讓系統優先搜尋私人存放區,而非直接設定用戶端搜尋多個存放區。
- 降低資料移轉成本
使用遠端存放區,在與執行階段相同的地區或多地區中快取構件,以降低資料移轉費用。
如果 Artifact Registry 位於 VPC Service Controls 服務範圍內,則預設會拒絕存取範圍外的上游來源。如要允許特定位置的遠端存放區存取範圍外已設定的外部來源,請參閱 VPC Service Controls 設定的操作說明。
如要瞭解其他依附元件管理最佳做法,請參閱「依附元件管理」。
套件索引和中繼資料更新
當可變更的檔案 (例如套件索引和中繼資料) 超過預設年齡時,系統會從上游來源更新這些檔案。下表列出特定檔案類型的預設值:
格式 | 檔案類型 | 預設更新時間 |
---|---|---|
Maven | maven-metadata.xml |
5 分鐘 |
archetype-catalog.xml |
1 小時 | |
Npm | 資訊清單檔案 | 5 分鐘 |
Python | 索引檔案 | 1 小時 |
Docker | 列出/取得標記快取 | 1 小時 |
Apt/Yum (預先發布版) | 索引檔案 | 2 分鐘 |
套件檔案 | 72 小時 |
支援的格式
如要瞭解預設和使用者定義的遠端存放區可用的格式,請參閱以下各節。
預先設定上游網址
為了方便您使用,我們提供多個常見的上游存放區網址做為預設選項,格式如下:
格式 | 套件類型 | 上游網址 | 上游預設名稱 |
---|---|---|---|
Docker | 公開或私人 | https://registry-1.docker.io |
DOCKER-HUB |
Go | 公開 | https://proxy.golang.org |
https://proxy.golang.org |
Maven | 公開或私人 | https://repo.maven.apache.org/maven2 |
MAVEN-CENTRAL |
npm | 公開或私人 | https://registry.npmjs.org |
NPMJS |
Python | 公開 | https://pypi.io |
PYPI |
OS 套件 (預先發布版) | 公開 | 請參閱支援的上游 OS 套件 | 請參閱支援的上游 OS 套件 |
OS 套件預設的上游
您可以選擇其中一個常見的預設上游存放區基本網址,並將網址的其餘部分自訂為特定存放區,藉此建立 OS 套件遠端存放區。系統支援下列存放區基礎:
Apt
存放區 | 網址前置字串 | 存放區基本名稱 |
---|---|---|
已封存的 Debian | https://snapshot.debian.org |
DEBIAN_SNAPSHOT |
Debian | http://deb.debian.org |
DEBIAN |
Ubuntu LTS 或 Pro | http://archive.ubuntu.com
|
UBUNTU
|
Yum
存放區 | 網址前置字串 | 存放區基本名稱 |
---|---|---|
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
|
Enterprise Linux 適用的 Fedora Extra 套件 (EPEL) | https://dl.fedoraproject.org/pub/epel
|
EPEL
|
Artifact Registry 存放區上游
您可以使用 Artifact Registry 標準格式存放區,建立下列格式的遠端存放區:
- Docker
- npm
- Maven
- Python
自訂網址
您可以直接輸入遠端存放區的網址,不必使用下列格式的預設上游來源。
- Docker
- npm
- Maven
- Python
下表列出一些常見的上游 URI,但不包含所有項目。
格式 | 上游 URI | 註冊名稱 |
---|---|---|
Docker | https://ghcr.io |
GitHub Container Registry |
Docker | https://registry-1.docker.io |
Docker Hub |
Docker | https://public.ecr.aws |
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 |
GitHub Npm 登錄項 |
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 |
地點
- MY_NEXUS_IP 是 Nexus 上游執行個體的 IP 位址和通訊埠。
- MY_UPSTREAM_REPOSITORY 是上游存放區的名稱,用於 Nexus 範例。
限制
除了 Artifact Registry 配額和限制之外,遠端存放區還有下列限制:
- Maven 遠端存放區不允許將版本政策設為快照或版本。
- 上游來源必須能連上網際網路。遠端存放區不支援沒有公用 IP 位址的內部或虛擬私有雲 (VPC) 網路上游來源。