代管 Airflow (第 3 代) | 代管 Airflow (第 2 代) | 代管 Airflow (舊版第 1 代)
本頁面說明如何將環境升級至新的 Managed Airflow 或 Airflow 版本。
關於升級作業
您可以升級 Managed Airflow 版本、Airflow 版本,或同時升級兩者。
變更環境使用的 Airflow 或 Managed Airflow 版本時:
Managed Airflow 會使用新版 Managed Airflow 映像檔,重新部署環境的元件。
如果環境在升級前有自訂 PyPI 套件或 Airflow 設定選項覆寫等設定,Managed Airflow 會套用這些 Airflow 設定變更。
Managed Airflow 會更新 Airflow
airflow_db連線,指向新的 Cloud SQL 資料庫。
升級不會影響您連線至環境中資源的方式,例如環境 bucket 的網址或 Airflow 網路伺服器。
升級和復原作業的限制
升級作業有下列限制:
Managed Airflow 版本會在幾天內,逐步向 Managed Airflow 支援的所有區域推出。您所在地區可能尚未推出最新版本。
您無法降級至先前的 Managed Airflow 或 Airflow 版本。
在 Google Cloud 控制台中,您只能升級至最新支援的 Managed Airflow (第 2 代) 版本。
在 Google Cloud CLI、API 或 Terraform 中,您可以將環境升級至最新支援版本、前三個版本的 Managed Airflow (第 2 代)、前一個子版本的最新修補程式版本,以及延長升級時間表的版本。即使其他版本的 Managed Airflow (第 2 代) 仍受支援,且可用於建立新環境,也無法升級至這些版本。
Google Cloud CLI、API 和 Terraform 的升級選項範例:
- 最新版本:
composer-2.11.5-airflow-* - 三個舊版 Managed Airflow (第 2 代):
composer-2.11.4-airflow-*、composer-2.11.3-airflow-*、composer-2.11.2-airflow-*。 - 先前 Managed Airflow (第 2 代) 子版本的最後一個修補程式:
composer-2.10.2-airflow-* - 延長升級時間表的 Managed Airflow (第 2 代) 版本:
composer-2.10.2-airflow-*、composer-2.10.1-ariflow-*、composer-2.9.7-airflow-*,以及其他延長升級時間表的版本。
- 最新版本:
升級後的版本必須支援環境目前的 Python 版本。
Compute Engine API 配額限制可能會導致無法升級。在 Google Cloud 控制台,依序前往「IAM and Admin」(IAM 與管理) >「Quotas and System Limits」(配額與系統限制) 頁面,確認 CPU 的 Compute Engine API 配額未超出。如果即將達到配額門檻,請先申請提高配額,再繼續執行升級作業。
您無法就地升級至其他主要版本的 Managed Airflow 或 Airflow。您可以在環境之間手動移轉 DAG 和設定。如需詳細資訊,請參閱:
如果 Airflow 資料庫包含超過 16 GB 的資料,就無法升級環境。升級期間,如果 Airflow 資料庫大小超過 16 GB,系統會顯示警告。在這種情況下,請執行資料庫維護作業,縮減資料庫大小。
如果您使用 XCom 機制傳輸檔案,請務必依據 Airflow 的指南使用。使用 XCom 傳輸大型檔案或大量檔案會影響 Airflow 資料庫的效能,並可能導致載入快照或升級環境時失敗。建議改用 Cloud Storage 等替代方案來移轉大量資料。
事前準備
確認環境為最新版本
環境映像檔接近完整支援終止日期時,Managed Airflow 會顯示警告。您可以根據這些警告,確保環境始終受到支援。
Managed Airflow 會追蹤環境所依據的 Managed Airflow 映像檔版本。接近支援終止日期時,環境清單和「Environment details」(環境詳細資料) 頁面會顯示警告。
如要檢查環境是否為最新版本,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Environments」(環境) 頁面。
在環境清單中,按一下環境名稱。「Environment details」(環境詳細資料) 頁面隨即開啟。
前往「Environment configuration」(環境設定) 分頁。
「Image version」(映像檔版本) 欄位會顯示下列其中一則訊息:
最新可用版本。完全支援環境圖片。
新版本已推出。您的環境映像檔受到完整支援,可以升級至較新版本。
這個映像檔版本的支援將於...結束環境映像檔即將結束完整支援期。
{DEPRECATION_DATE}起不再支援這個版本您的環境已超過完整支援期限。
gcloud
這項功能無法透過 Google Cloud CLI 使用。您可以改為查看建議的升級版本,瞭解有哪些新版本可用。
API
這項功能無法透過 API 使用。您可以改為查看建議的升級版本,瞭解有哪些新版本可用。
查看建議的升級項目
Managed Airflow 提供 Managed Airflow 版本清單,您可以將環境升級至這些版本。
如要查看建議升級的 Managed Airflow 版本,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Environments」(環境) 頁面。
在環境清單中,按一下環境名稱。「Environment details」(環境詳細資料) 頁面隨即開啟。
前往「Environment configuration」(環境設定) 分頁,然後按一下「Upgrade Image Version」(升級映像檔版本)。
如需建議版本清單,請按一下 Managed Airflow 的「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 套件,是否與新版 Managed Airflow 映像檔中預先安裝的套件衝突。
如果檢查成功,代表目前版本和指定版本的 PyPI 套件依附元件之間沒有衝突。不過,升級作業仍可能因其他原因而失敗。
控制台
如要對環境執行升級檢查,請按照下列步驟操作:
前往 Google Cloud 控制台的「Environments」(環境) 頁面。
在環境清單中,按一下環境名稱。「Environment details」(環境詳細資料) 頁面隨即開啟。
前往「Environment configuration」(環境設定) 分頁,找到「Image version」(映像檔版本) 項目,然後按一下「Upgrade」(升級)。
在「Environment version upgrade」(環境版本升級) 對話方塊中,從「New version」(新版本) 下拉式選單選取要升級至哪個 Managed Airflow 版本。
在「PyPI packages compatibility」(PyPI 套件相容性) 專區,按一下「Check for conflicts」(檢查衝突)。
等待檢查完成。如果 PyPI 套件依附元件發生衝突,顯示的錯誤訊息會包含衝突套件和套件版本的詳細資料。
gcloud
如要對環境執行升級檢查,請執行 environments check-upgrade 指令,並指定要升級至哪個 Managed Airflow 映像檔版本。
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
更改項目:
ENVIRONMENT_NAME:環境名稱。- 將
LOCATION替換為環境所在的區域。 VERSION替換為要升級的新 Managed Airflow 映像檔版本,格式為composer-a.b.c-airflow-x.y.z。您可以使用所有版本別名。
範例:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
輸出內容範例:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-1.20.12-airflow-1.10.15. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
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。
升級環境
如要將環境升級至較新版本的 Managed Airflow 或 Airflow:
控制台
前往 Google Cloud 控制台的「Environments」(環境) 頁面。
在環境清單中,按一下環境名稱。「Environment details」(環境詳細資料) 頁面隨即開啟。
前往「Environment configuration」(環境設定) 分頁。
找到「Image version」(映像檔版本) 項目,然後按一下「Upgrade」(升級)。
從「Image version」(映像檔版本) 下拉式選單,選取要升級至哪個 Managed Airflow 版本。
按一下「升級」。
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
更改項目:
ENVIRONMENT_NAME:環境名稱。- 將
LOCATION替換為環境所在的區域。 VERSION替換為要升級的新 Managed Airflow 映像檔版本,格式為composer-a.b.c-airflow-x.y.z。您也可以使用所有版本別名。
例如:
gcloud composer environments update \
example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
API
建構
environments.patchAPI 要求。在這項要求中:
在
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-1.20.12-airflow-1.10.15"
}
}
}
Terraform
config.software_config 區塊中的 image_version 欄位可控管環境的 Managed Airflow 映像檔。在這個欄位中,指定新的 Managed Airflow 映像檔。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
更改項目:
ENVIRONMENT_NAME:環境名稱。- 將
LOCATION替換為環境所在的區域。 要升級的新 Managed Airflow 映像檔版本,格式為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-1.20.12-airflow-1.10.15"
}
}
}