遠端存放區總覽

本文件將概略介紹遠端存放區。如需建立遠端存放區的操作說明,請參閱「建立遠端存放區」。

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) 網路上游來源。

後續步驟