將 App Engine 容器映像檔遷移至 Artifact Registry

區域 ID

REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。

進一步瞭解區域 ID

Container Registry 已淘汰,並於 2025 年 3 月 18 日關閉。建議您使用 Artifact Registry 來儲存及管理容器映像檔。根據預設,2025 年 3 月 5 日之後建立的新部署作業會使用 Artifact Registry,而非 Container Registry 來儲存應用程式映像檔。Artifact Registry 提供與 Container Registry 相同的容器管理功能,並包含其他功能和優點。Artifact Registry 是完全代管的服務,同時支援容器映像檔和非容器構件,可擴充 Container Registry 的功能。

如果是 2024 年 5 月前建立的專案,或是尚未執行自動化遷移工具的專案,請按照本指南中的步驟操作,讓 App Engine 自動遷移您的部署流程。

App Engine 標準環境

標準環境中的大部分應用程式元件都會遵循自動化遷移程序。不過,為確保順利轉換至 Artifact Registry,請確認您的服務帳戶具備下列必要權限:

  • 對於現有的標準部署作業,部署服務帳戶 (App Engine 預設服務帳戶 (PROJECT_ID@appspot.gserviceaccount.com) 或自訂服務帳戶) 必須具備可授予明確 Artifact Registry 寫入權限 artifactregistry.repositories.uploadArtifacts 的角色。如要查看與部署服務帳戶相關聯的角色,請參閱「管理服務帳戶存取權」。

  • 如果與部署相關聯的服務帳戶具有下列任何角色,新部署作業就能使用 Artifact Registry:

    如果沒有這些角色,請將「Artifact Registry Writer」角色 (roles/artifactregistry.writer) 授予部署服務帳戶。

如果未提供必要權限,就無法在標準環境中部署新版本。

在自動遷移期間, Google Cloud 可能會建立新的存放區,並將映像檔從 Container Registry 複製到 Artifact Registry。

App Engine 彈性環境

彈性環境中的大多數應用程式元件都會遵循自動化遷移程序。不過,為確保順利轉換至 Artifact Registry,請確認您的服務帳戶具備下列必要權限:

  • 如要讓現有的彈性部署作業能正常搭配 Artifact Registry 運作,部署服務帳戶 (App Engine 預設服務帳戶 (PROJECT_ID@appspot.gserviceaccount.com) 或自訂服務帳戶) 必須具備可授予明確 Artifact Registry 權限的角色,例如 artifactregistry.repositories.downloadArtifacts (讀取) 和 artifactregistry.repositories.uploadArtifacts (寫入)。如要查看與部署服務帳戶相關聯的角色,請參閱「管理服務帳戶存取權」。

  • 如果與部署作業相關聯的服務帳戶具有下列任何角色,新部署作業可以使用 Artifact Registry:

    如果沒有這些角色,請將 Artifact Registry 存放區管理員角色 (roles/artifactregistry.repoAdmin) 授予部署服務帳戶。

如果未提供必要權限,就無法在彈性環境中部署應用程式。縮放及重新啟動執行個體也會失敗。

在自動遷移期間, Google Cloud 可能會建立新的存放區,並將映像檔從 Container Registry 複製到 Artifact Registry。

將手動建構的容器映像檔遷移至 Artifact Registry

如果您先前部署應用程式時使用預先建構或手動建構的容器映像檔 (來自 Container Registry),則無法使用自動遷移程序。舉例來說,如果您使用 Docker 建構容器映像檔、將這些映像檔推送至 Container Registry,並使用 gcloud app deploy --image-url 指令部署應用程式,自動遷移程序就無法運作。

如果您使用 Container Registry 中的預先建構或手動建構的容器映像檔來部署應用程式,請選擇下列任一選項,將其遷移至 Artifact Registry: