遠端存放區總覽

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

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 服務範圍內,Artifact Registry 預設會拒絕存取範圍外的上游來源。如要允許特定位置的遠端存放區存取範圍外的已設定外部來源,請參閱 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 packages supported upstreams」(支援上游的 OS 套件) 請參閱「OS packages supported upstreams」(支援上游的 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
Fedora Extra Packages for Enterprise Linux (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 Public Gallery
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) 網路的上游來源。

後續步驟