本頁說明如何建立 Artifact Registry 標準存放區。
標準存放區是存放私人構件的存放區。您可以直接從這些存放區上傳及下載構件。
部分構件格式也提供下列存放區模式:
- 遠端存放區會儲存來自外部來源的構件,例如 Docker Hub、Maven Central 或 PyPI。
- 虛擬存放區可做為單一存取點,用來下載、安裝或部署上游標準/遠端存放區中的構件。
每個存放區可包含單一支援格式的構件。
事前準備
- 啟用 Artifact Registry,包括啟用 Artifact Registry API 和安裝 Google Cloud CLI。
- (選用) 設定 gcloud 指令的預設值。
- 如要使用客戶自行管理的加密金鑰 (CMEK) 加密存放區內容,請在 Cloud KMS 中建立並啟用存放區的金鑰。
必要的角色
如要取得建立存放區所需的權限,請要求管理員授予您專案的 Artifact Registry 管理員 (roles/artifactregistry.admin
) IAM 角色。 Google Cloud 如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立標準存放區
建立存放區時,您必須設定下列設定,這些設定在存放區建立後就無法變更:
- 構件格式。
- 存放區模式 (如果所選格式有多種模式)。
- 存放區位置。
- 使用 Google-owned and Google-managed encryption keys 或 客戶管理的加密金鑰進行加密。Artifact Registry 預設會使用Google-owned and Google-managed encryption keys 。
Artifact Registry 會強制執行機構政策限制,規定必須使用 CMEK 加密資源,或限制可用於 CMEK 保護措施的 Cloud KMS 金鑰。
使用 Google Cloud 控制台建立存放區
在 Google Cloud 控制台中開啟「Repositories」(存放區) 頁面。
點選 [Create Repository] (建立存放區)。
指定存放區名稱。專案中每個存放區位置的存放區名稱不得重複。
選取存放區格式。
如果有多種存放區模式可供選擇,請選取「標準」。
僅限 Maven:設定版本政策。
選擇版本政策:
- 無:沒有版本政策。儲存發布和快照套件。
- 發布:僅儲存發布套件。
- 快照:僅儲存快照套件。
如要讓快照存放區接受重複快照,並覆寫存放區中的現有版本,請選取「允許覆寫快照」。
在「位置類型」下方,選擇存放區的位置:
選擇位置類型:區域或多區域。地點清單會根據您的選取項目變更。
在「Region」(區域) 或「Multi-region」(多區域) 清單中選取位置。
如要瞭解位置類型和支援的位置,請參閱「存放區位置」一文。
為存放區新增說明。說明有助於識別存放區的用途,以及其中包含的構件類型。
請勿輸入機密資料,因為存放區說明不會加密。
如要使用標籤整理存放區,請按一下「新增標籤」,然後輸入標籤的鍵/值組合。建立存放區後,您可以新增、編輯或移除標籤。
在「Encryption」(加密) 區段中,選擇存放區的加密機制。
- Google-managed encryption key - 使用Google-owned and Google-managed encryption key加密存放區內容。
客戶管理的金鑰:使用您透過 Cloud Key Management Service 控制的金鑰,加密存放區內容。如需金鑰設定操作說明,請參閱「為存放區設定 CMEK」。
如果是 Docker 存放區,您可以透過「不可變更的映像檔標記」設定,讓存放區使用一律指向同一份映像檔摘要的映像檔標記。具備 Artifact Registry 管理員角色的使用者,可以在存放區建立完成後變更這項設定。
- 這項設定預設為停用。映像檔標記是可變更的,也就是說,標記指向的映像檔摘要可能會變更。
- 如果啟用這項設定,映像檔標記就無法變更。標記一律必須指向同一個映像檔摘要。如要進一步瞭解可變更和不可變更的映像檔標記,請參閱「容器映像檔版本」。
如要使用清理政策刪除未使用的構件,請在「清理政策」部分中執行下列操作:
- 選取「試營運」,先測試政策再套用。
- 按一下「新增政策」,即可在存放區中新增保留或刪除政策。
- 在「名稱」欄位中,為清除政策取個清楚易懂的名稱。
在「政策類型」部分中,選取下列其中一個選項:
- 條件式刪除:根據您定義的條件刪除構件。
- 有條件保留:根據您定義的條件保留構件。
保留最新版本:為每個套件保留特定數量的最新版本。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
在「Artifact Analysis」部分中,選擇安全漏洞掃描設定:
已啟用:允許掃描這個存放區。專案必須啟用 Container Scanning API。
啟用 Container Scanning API 後,系統會立即開始計費。在專案中啟用 Container Scanning API 後,所有新舊存放區都會啟用安全漏洞掃描功能。將映像檔推送至 Artifact Registry 時,Artifact Analysis 會自動掃描。
已停用:禁止掃描這個存放區。如果專案已啟用 Container Scanning API,系統會繼續掃描其他存放區,但會排除這個存放區。
如要進一步瞭解安全漏洞掃描選項,請參閱「啟用及停用自動掃描」。
點選「建立」。
Artifact Registry 會建立存放區,並將其新增至存放區清單。
建立存放區後,請按照下列步驟操作:
- 授予存放區存取權。
設定 Docker、套件管理員和其他第三方用戶端,以便向存放區進行驗證。
使用 Google Cloud CLI 建立存放區
執行指令來建立新的存放區。
Apt
gcloud artifacts repositories create REPOSITORY \ --repository-format=apt \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入私密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
Docker
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--kms-key=KMS-KEY \
--immutable-tags \
--async \
--disable-vulnerability-scanning
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。DESCRIPTION
:存放區的說明。請勿加入私密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶管理的加密金鑰加密存放區內容,路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--immutable-tags
是選用旗標,可將存放區設為使用一律指向同一份映像檔摘要的標記。根據預設,如果未傳遞
--immutable-tags
標記,標記可以移至其他映像檔摘要。如要進一步瞭解可變更和不可變更的映像檔標記,請參閱容器映像檔版本。--async
會立即傳回,不會等待進行中的作業完成。
--disable-vulnerability-scanning
:選用旗標,可將存放區設為停用自動安全漏洞掃描。--allow-vulnerability-scanning
:選用旗標,可將存放區設為允許自動安全漏洞掃描。詳情請參閱「啟用或停用自動掃描」。
通用
gcloud artifacts repositories create REPOSITORY \ --repository-format=generic \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入私密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
Go
gcloud artifacts repositories create REPOSITORY \ --repository-format=go \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入機密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
KubeFlow Pipelines
gcloud artifacts repositories create REPOSITORY \ --repository-format=kfp \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入機密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
Maven
根據預設,Maven 存放區會儲存套件的快照和發布版本。您可以指定版本政策,建立快照或發布存放區。
如要建立存放快照和版本的存放區,請執行下列指令:
gcloud artifacts repositories create REPOSITORY \ --repository-format=maven \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入機密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
如要在不同存放區中儲存快照和發布版本,請在指令中指定版本政策:
gcloud artifacts repositories create REPOSITORY \
--repository-format=maven \
[--location=LOCATION] \
[--description="DESCRIPTION"] \
[--kms-key=KMS-KEY] \
[--version-policy=VERSION-POLICY] \
[--allow-snapshot-overwrites] \
[--async] \
下列標記專用於 Maven 存放區:
-
--version-policy=VERSION-POLICY
指定要儲存在存放區的套件類型。您可以將 VERSION-POLICY 設為:
None
- No version policy. 儲存發布和快照套件。 如果您未在指令中加入--version-policy
旗標,系統會預設使用這項設定。Release
- 僅儲存發布套件。Snapshot
- 僅儲存快照套件。
--allow-snapshot-overwrites
僅適用於快照存放區。如果您指定這個旗標,即可發布重複的快照,覆寫存放區中的現有版本。
npm
gcloud artifacts repositories create REPOSITORY \ --repository-format=npm \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入機密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
Python
gcloud artifacts repositories create REPOSITORY \ --repository-format=python \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入私密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
Yum
gcloud artifacts repositories create REPOSITORY \ --repository-format=yum \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
更改下列內容:
REPOSITORY
:存放區的名稱。專案中每個存放區位置的存放區名稱不得重複。LOCATION
:存放區的區域或多區域位置。如果您設定預設值,可以省略這個旗標。如要查看支援的位置清單,請執行下列指令:gcloud artifacts locations list
DESCRIPTION
:存放區的說明。 請勿加入機密資料,因為存放區說明不會加密。KMS-KEY
:Cloud KMS 加密金鑰的完整路徑。如果您使用客戶自行管理的加密金鑰加密存放區內容,請提供這個路徑。路徑格式如下:projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
更改下列內容:
KMS-PROJECT
:儲存金鑰的專案。KMS-LOCATION
:金鑰位置。KEY-RING
:金鑰環的名稱。KEY
:金鑰名稱。
--async
:立即傳回,不會等待進行中的作業完成。
Artifact Registry 會建立存放區。執行下列指令,查看存放區的說明:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
建立存放區後,請按照下列步驟操作:
使用 Terraform 建立存放區
使用 google_artifact_registry_repository 資源建立存放區。
必須使用 terraform-provider-google
以上版本。5.0.0
如果您是初次使用 Terraform 搭配 Google Cloud,請參閱 HashiCorp 網站上的「Get Started - Google Cloud」(開始使用 - Google Cloud) 頁面。
以下範例定義了供應商和存放區,並使用 Terraform 資源名稱 my-repo
。
Apt
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "apt" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略這個步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
Docker
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "docker" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略此步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
通用
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "generic" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略這個步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
Go
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "go" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略此步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
KubeFlow Pipelines
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "kfp" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略這個步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
Maven
如果您未指定版本政策,Artifact Registry 預設會建立 Maven 存放區,同時儲存套件的快照和發布版本。
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "maven" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略此步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。如要在不同存放區中儲存快照和發布版本,請使用
maven_config
區塊為存放區指定版本政策。這個區塊支援下列設定:version_policy
會使用下列其中一個值設定版本政策:VERSION_POLICY_UNSPECIFIED
:儲存快照和發布套件。這是預設設定。- 發布:僅儲存發布套件。
- 快照:僅儲存快照套件。
allow_snapshot_overwrites
會設定具有SNAPSHOT
版本政策的存放區,接受會覆寫存放區中現有版本的重複快照。以下範例定義了具有發布版本政策的 Maven 存放區。
provider "google" { project = "my-project" } resource "google_artifact_registry_repository" "my-repo" { provider = google-beta location = "us-central1" repository_id = "my-repo" description = "Maven repository" format = "MAVEN" maven_config { version_policy = "RELEASE" } }
npm
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "npm" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略這個步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
Python
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "python" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略此步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
Yum
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "yum" kms_key_name = "KEY" cleanup_policy_dry_run = DRY_RUN_STATUS cleanup_policies { id = "POLICY_NAME" action = "DELETE" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] older_than = "TIME_SINCE_UPLOAD" } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" condition { tag_state = "TAG_STATE" tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"] package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] } } cleanup_policies { id = "POLICY_NAME" action = "KEEP" most_recent_versions { package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"] keep_count = KEEP_COUNT } } }
更改下列內容:
PROJECT-ID
是 Google Cloud 專案 ID。LOCATION
是存放區位置。REPOSITORY
是存放區名稱。DESCRIPTION
是存放區的選用說明。 請勿加入私密資料,因為存放區說明不會加密。KEY
是 Cloud Key Management Service 金鑰的名稱,前提是您使用客戶自行管理的加密金鑰 (CMEK) 進行加密。如要使用預設設定 (Google 代管的加密金鑰),請省略這個引數。DRY_RUN_STATUS
會判斷清理政策是否要刪除構件,或只記錄在存放區設定清理政策時會刪除的構件。如不想在存放區中新增清除政策,請省略此步驟。true
:將政策設為模擬測試模式。模擬測試模式不會刪除任何構件。false
:套用清除政策。系統會根據政策刪除或保留構件。
如要進一步瞭解資源清理政策,請參閱設定資源清理政策。
POLICY_NAME
是清理政策的名稱。TAG_STATE
是要套用政策的代碼狀態。值為tagged
、untagged
和any
。any
適用於已標記和未標記的構件。如果存放區已啟用不可變更的標記,就無法刪除已加上標記的構件。TAG_PREFIX
和TAG_PREFIX_N
是要套用政策的代碼前置字串。PKG_PREFIX
和PKG_PREFIX_N
是套件前置字元,可將政策套用至這些套件。TIME_SINCE_UPLOAD
是指構件版本上傳至存放區後經過的時間,以時間長度表示。您可以分別附加s
、m
、h
或d
,指定秒、分、時或天的時間長度。KEEP_COUNT
是要保留在存放區中的構件版本數量。
Artifact Registry 會建立存放區。執行下列指令,查看存放區的說明:
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
建立存放區後,請按照下列步驟操作:
- 授予存放區存取權。
設定 Docker、套件管理員和其他第三方用戶端,以便向存放區進行驗證。
編輯存放區說明
您可以透過 Google Cloud 控制台或 gcloud CLI 變更存放區說明。
控制台
在 Google Cloud 控制台中開啟「Repositories」(存放區) 頁面。
在存放區清單中選取存放區,然後按一下「Edit Repository」(編輯存放區)。
編輯存放區說明,然後按一下「儲存」。
gcloud
如要更新存放區說明,請執行下列指令:
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
更改下列內容: