Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面說明如何將環境升級至新版 Cloud Composer 或 Airflow。
關於升級作業
您可以升級 Cloud Composer 版本、Airflow 版本,或同時升級這兩者。
變更環境使用的 Airflow 或 Cloud Composer 版本時,請注意以下事項:
Cloud Composer 會使用新版 Cloud Composer 映像檔重新部署環境的元件。
如果升級前環境已包含自訂 PyPI 套件或 Airflow 設定選項覆寫值,Cloud Composer 會套用 Airflow 設定變更。
Cloud Composer 會更新 Airflow
airflow_db
連線,使其指向新的 Cloud SQL 資料庫。
升級後,連線至環境中資源的方式不會有所改變,例如環境值區的網址,或 Airflow 網路伺服器。
升級作業的限制
升級作業有下列限制:
Cloud Composer 版本會在幾天內逐步推出,並支援 Cloud Composer 的所有地區。您所在的地區可能尚未提供最新版本。
您無法降級至先前版本的 Cloud Composer 或 Airflow。
在 Google Cloud 主控台中,您只能升級至最新的 Cloud Composer 2 支援版本。
在 Google Cloud CLI、API 或 Terraform 中,您可以將環境升級至最新支援的版本、Cloud Composer 2 的前三個舊版本、前一個次要版本的最後一個修補程式版本,以及升級時間表延長的版本。即使仍支援其他版本的 Cloud Composer 2,也無法升級至其他版本,且無法用於建立新環境。
Google Cloud CLI、API 和 Terraform 的升級選項範例:
- 最新版本:
composer-2.11.5-airflow-*
- 三個先前的 Cloud Composer 2 版本:
composer-2.11.4-airflow-*
、composer-2.11.3-airflow-*
、composer-2.11.2-airflow-*
。 - 上一個 Cloud Composer 2 次要版本的最後一個修補程式:
composer-2.10.2-airflow-*
- 延長升級時間表的 Cloud Composer 2 版本:
composer-2.10.2-airflow-*
、composer-2.10.1-ariflow-*
、composer-2.9.7-airflow-*
和其他延長升級時間表的版本。
- 最新版本:
升級至的版本必須支援環境目前的 Python 版本。
Compute Engine API 配額限制可能會導致無法升級。在 Google Cloud 控制台中,依序前往「IAM & Admin」(IAM 與管理)>「Quotas and System Limits」(配額與系統限制) 頁面,檢查 Compute Engine API 的 CPU 配額是否未超出。如果即將達到配額門檻,請先申請配額擴充,再繼續升級作業。
如果 Airflow 資料庫含有超過 16 GB 的資料,您就無法升級環境。如果 Airflow 資料庫大小超過 16 GB,升級期間就會顯示警告。在這種情況下,請執行資料庫維護作業,以縮減資料庫大小。
如果您使用 XCom 機制傳輸檔案,請務必按照 Airflow 的規範使用。使用 XCom 傳輸大型檔案或大量檔案會影響 Airflow 資料庫的效能,並可能導致載入快照或升級環境時失敗。建議使用 Cloud Storage 等其他方式來傳輸大量資料。
事前準備
建議您為環境建立新的快照,以便在需要時重新建立環境。
您的帳戶必須具備可觸發環境升級作業的角色。此外,環境的服務帳戶必須具備足夠的權限,才能執行升級作業。詳情請參閱「存取權控管」。
您可能會注意到,屬於專案中環境的 GKE 叢集有 Compute Engine 中繼資料項目。在 GKE 叢集建立和升級期間,Google Kubernetes Engine 會自動新增專案層級的中繼資料項目 (
google_compute_project_metadata
),以追蹤次要 IP 位址範圍的使用情形。請勿修改或移除這些項目。Google Kubernetes Engine 會自動管理這些資源。
確認環境是否為最新版本
當環境的映像檔即將結束完整支援日期時,Cloud Composer 會顯示警告。您可以使用這些警告,確保環境一律受到支援。

Cloud Composer 會追蹤環境所依據的 Cloud Composer 映像檔版本。當支援期限即將到期時,您會在環境清單和「環境詳細資料」頁面中看到警告。
如何檢查環境是否為最新版本:
主控台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「圖片版本」欄位中,系統會顯示下列其中一個訊息:
最新可用版本。系統完全支援您的環境映像檔。
新版本已推出。您的環境映像檔完全支援,您可以將其升級至較新版本。
這個映像檔版本的支援將於...結束您的環境映像檔即將進入完整支援期結束階段。
自...起,系統不再支援這個版本 您的環境已過完整支援期。
gcloud
這項功能無法透過 Google Cloud CLI 使用。您可以改為查看建議的升級,系統會顯示可用的新版本。
API
這項功能無法透過 API 使用。您可以改為查看建議的升級,系統會顯示可用的新版本。
查看建議的升級作業
Cloud Composer 會提供可升級至的 Cloud Composer 版本清單。
如要查看建議升級的 Cloud Composer 版本,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁,然後按一下「升級映像檔版本」。
如要查看建議的版本清單,請按一下 Cloud Composer [Image version] (映像檔版本) 下拉式選單。
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。
範例:
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
您可以查看某個地區的可用版本。方法是建構 imageVersions.list
API 要求。
例如:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
升級前檢查 PyPI 套件衝突
您可以檢查環境中安裝的 PyPI 套件,是否與新 Cloud Composer 映像檔中的預先安裝套件發生衝突。
檢查成功表示 PyPI 套件依附元件在目前版本和指定版本之間沒有衝突。不過,升級作業仍可能因其他原因而失敗。
主控台
如要為環境執行升級檢查,請按照下列步驟操作:
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁,找出「映像檔版本」項目,然後按一下「升級」。
在「環境版本升級」對話方塊的「新版本」下拉式清單中,選取要升級至的 Cloud Composer 版本。
在「PyPI 套件相容性」部分中,按一下「檢查衝突」。
請等待檢查完成。如果有 PyPI 套件依附元件衝突,系統會顯示錯誤訊息,其中包含衝突套件和套件版本的詳細資料。
gcloud
如要為環境執行升級檢查,請搭配您要升級的 Cloud Composer 映像檔版本執行 environments check-upgrade
指令。
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。VERSION
與您要升級至的新 Cloud Composer 映像檔版本,以composer-a.b.c-airflow-x.y.z
格式表示。您也可以使用所有版本別名。
範例:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-2.13.4-airflow-2.10.5
輸出內容範例:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.13.4-airflow-2.10.5. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.
或者,您也可以非同步執行升級檢查。使用 --async
引數進行非同步呼叫,然後使用 gcloud composer operations describe
指令檢查結果。
API
建構 environments.checkUpgrade
API 要求。
在 imageVersion
欄位中指定映像檔版本:
{
"imageVersion": "VERSION"
}
將 VERSION
替換為您要升級至的新版本,格式為 composer-a.b.c-airflow-x.y.z
。
升級環境
如要將環境升級至較新版本的 Cloud Composer 或 Airflow,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
找出「圖片版本」項目,然後按一下「升級」。
在「Image version」下拉式選單中,選取要升級到的 Cloud Composer 版本。
按一下「升級」。
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。VERSION
與您要升級至的新 Cloud Composer 映像檔版本,以composer-a.b.c-airflow-x.y.z
格式表示。您也可以使用所有版本別名。
例如:
gcloud composer environments update
example-environment \
--location us-central1 \
--image-version composer-2.13.4-airflow-2.10.5
API
建構
environments.patch
API 要求。在這個要求中:
在
updateMask
參數中指定config.softwareConfig.imageVersion
遮罩。在要求主體的
imageVersion
欄位中,指定要升級至的新版本。
例如:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-2.13.4-airflow-2.10.5"
}
}
}
Terraform
config.software_config
區塊中的 image_version
欄位會控制環境的 Cloud Composer 映像檔。在這個欄位中指定新的 Cloud Composer 映像檔。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。您要升級至的 Cloud Composer 新映像檔版本,格式為composer-a.b.c-airflow-x.y.z
。您也可以使用所有版本別名。
範例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.13.4-airflow-2.10.5"
}
}
}