已知問題

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面列出已知的 Cloud Composer 問題。如要瞭解問題修正方式,請參閱版本資訊

有些問題會影響舊版,您可以升級環境來修正。

Pod 和服務僅部分支援非 RFC 1918 位址範圍

Cloud Composer 會依賴 GKE 提供 Pod 和服務的非 RFC 1918 位址支援。Cloud Composer 僅支援下列非 RFC 1918 範圍清單:

  • 100.64.0.0/10
  • 192.0.0.0/24
  • 192.0.2.0/24
  • 192.88.99.0/24
  • 198.18.0.0/15
  • 198.51.100.0/24
  • 203.0.113.0/24
  • 240.0.0.0/4

在 Composer 1.10.2 和 Composer 1.10.3 中啟用 DAG 序列化功能時,Airflow UI 不會顯示工作記錄

在使用 Composer 1.10.2 和 1.10.3 版本的環境中啟用 DAG 序列化功能,會導致 Airflow 網路伺服器中不會顯示記錄。請升級至 1.10.4 以上版本,即可修正這個問題。

在 Cloud Composer 中排程時,工作會間歇性失敗

執行工作時,Airflow 排程器會在工作例項中顯示這個問題。不過,記錄並未說明任務失敗的原因,且 Airflow 工作站和 Airflow 排程器似乎運作正常。

Airflow 排程器上的錯誤訊息可能會如下所示:

Executor reports task instance <TaskInstance: xx.xxxx
scheduled__2022-04-21T06:00:00+00:00 [queued]> finished (failed) although the
task says its queued. (Info: None) Was the task killed externally?

或者,Airflow Worker 可能發生類似下列錯誤訊息的錯誤:

Log file is not found: gs://$BUCKET_NAME/logs/$DAG_NAME/$TASK_NAME/
2023-01-25T05:01:17.044759+00:00/1.log.
The task might not have been executed or worker executing it might have
finished abnormally (e.g. was evicted).

為確保系統能有效應對 Airflow 中長期問題所導致的這類錯誤,強烈建議您在工作和 DAG 層級主動實作適當的重試策略。透過整合這些措施,系統就能有效減輕這些錯誤的影響,進而提升工作流程的整體可靠性和復原能力。

不支援 GKE Workload Identity Federation for GKE

在 Cloud Composer 1 中,您無法為 Cloud Composer 環境叢集啟用 Workload Identity Federation for GKE。因此,您可能會在 Security Command Center 中看到 WORKLOAD_IDENTITY_DISABLED 發現項目。

更新期間新增的環境標籤未完全套用

更新環境標籤時,系統不會將標籤套用至環境叢集中的 Compute Engine VM。如要解決這個問題,您可以手動套用標籤。

從 Airflow 1.9.0 升級至 Airflow 1.10.x 後,Airflow 工作記錄無法在 Airflow 網路伺服器中使用

Airflow 1.10.x 對記錄檔的命名慣例進行了回溯不相容的變更。系統現在會將區域資訊新增至 Airflow 工作記錄名稱。

Airflow 1.9.0 會儲存並預期記錄名稱採用以下格式: BUCKET/logs/DAG/2020-03-30T10:29:06/1.log Airflow 1.10.x 會儲存並預期記錄名稱採用以下格式: BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

因此,如果您從 Airflow 1.9.0 升級至 Airflow 1.10.x,並想要讀取使用 Airflow 1.9.0 執行的工作記錄,Airflow 網路伺服器會顯示下列錯誤訊息: Unable to read remote log from BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

解決方法:使用以下格式,重新命名 Cloud Storage 值區中由 Airflow 1.9.0 產生的記錄: BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log

無法在實施組織政策限制/compute.disableSerialPortLogging 的情況下建立 Cloud Composer 環境

如果在目標專案中強制執行 constraints/compute.disableSerialPortLogging 機構政策,Cloud Composer 環境建立作業就會失敗。

診斷

如要判斷是否受到這項問題影響,請按照下列程序操作:

前往Google Cloud 主控台的 GKE 選單。造訪 GKE 選單

接著,選取新建立的叢集。檢查是否有下列錯誤:

Not all instances running in IGM after 123.45s.
Expect <number of desired instances in IGM>. Current errors:

Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.

解決方法

  1. 在要建立 Cloud Composer 環境的專案中停用機構政策。

    即使上層資源 (機構或資料夾) 已啟用組織政策,您還是可以在專案層級停用該政策。詳情請參閱「自訂布林值限制條件的政策」頁面。

  2. 使用排除篩選器

    使用序列埠記錄的排除篩選器,可達到與停用機構政策相同的目標,因為記錄中會有序列控制台記錄。詳情請參閱「排除篩選器」頁面。

使用 Deployment Manager 管理 Google Cloud 受 VPC Service Controls 保護的資源

Cloud Composer 1 和 Cloud Composer 2 2.0.x 版本會使用部署管理工具建立 Cloud Composer 環境的元件。

在 2020 年 12 月,您可能收到了資訊,指出您可能需要執行額外的 VPC Service Controls 設定,才能使用 Deployment Manager 管理受 VPC Service Controls 保護的資源。

在此澄清,如果您使用 Cloud Composer,且直接使用部署管理工具來管理部署管理工具公告中提到的 Google Cloud 資源,則您不必採取任何行動

Deployment Manager 顯示不支援功能的相關資訊

您可能會在「Deployment Manager」分頁中看到以下警告:

The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.

如果是 Cloud Composer 擁有的部署管理工具部署作業,您可以忽略這則警告。

無法在叢集刪除後刪除環境

這個問題適用於 Cloud Composer 1 和 Cloud Composer 2 2.0.x 版本。

如果您在刪除環境之前刪除環境的 GKE 叢集,嘗試刪除環境時就會發生以下錯誤:

 Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]

如要刪除叢集已刪除的環境,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Deployment Manager」頁面。

    前往「Deployment Manager」頁面

  2. 找出標有標籤的所有部署作業:

    • goog-composer-environment:<environment-name>
    • goog-composer-location:<environment-location>

    您應該會看到兩個部署,並標示為下列標籤:

    • 名為 <environment-location>-<environment-name-prefix>-<hash>-sd 的部署作業
    • 名為 addons-<uuid> 的部署作業
  3. 手動刪除這兩個部署中仍列出的資源,以及專案中的資源 (例如 Pub/Sub 主題和訂閱項目)。方法如下:

    1. 選取部署。

    2. 點選「刪除」。

    3. 選取「Delete 2 deployments and all resources created by them, such as VMs, load balancers and disks」(刪除 2 項部署作業及其建立的所有資源,例如 VM、負載平衡器和磁碟) 選項,然後按一下「Delete all」(刪除所有)

    刪除作業失敗,但剩餘的資源會刪除。

  4. 請使用下列其中一種方法刪除部署作業:

    • 在 Google Cloud 控制台再次選取這兩個部署作業。按一下「刪除」,然後選取「刪除 2 項部署作業,但保留其所建立的資源」選項。

    • 執行 gcloud 指令,刪除採用 ABANDON 政策的部署作業:

      gcloud deployment-manager deployments delete addons-<uuid> \
          --delete-policy=ABANDON
      
      gcloud deployment-manager deployments delete <location>-<env-name-prefix>-<hash>-sd \
          --delete-policy=ABANDON
      
  5. 刪除 Cloud Composer 環境

警告:屬於「echo-airflow_monitoring」DAG 的「echo」工作有重複的項目

您可能會在 Airflow 記錄中看到下列項目:

in _query db.query(q) File "/opt/python3.6/lib/python3.6/site-packages/MySQLdb/
connections.py", line 280, in query _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry
'echo-airflow_monitoring-2020-10-20 15:59:40.000000' for key 'PRIMARY'")

您可以忽略這些記錄項目,因為這項錯誤不會影響 Airflow DAG 和工作處理作業。

我們正在努力改善 Cloud Composer 服務,以便從 Airflow 記錄中移除這些警告。

在已將 Identity-Aware Proxy API 新增至 VPC Service Controls 範圍的專案中,環境建立作業會失敗

在啟用 VPC Service Controls 的專案中,cloud-airflow-prod@system.gserviceaccount.com 帳戶必須在安全範圍中具備明確存取權,才能建立環境。

如要建立環境,您可以使用下列任一解決方案:

  • 請勿將 Cloud Identity-Aware Proxy APIIdentity-Aware Proxy TCP API 新增至安全邊界。

  • 在 YAML 條件檔案中使用以下設定,將 cloud-airflow-prod@system.gserviceaccount.com 服務帳戶新增為安全邊界成員

     - members:
        - serviceAccount:cloud-airflow-prod@system.gserviceaccount.com
    

啟用 compute.requireOsLogin 政策時,Cloud Composer 1 環境建立作業會失敗

如果專案中的 compute.requireOsLogin 政策設為 true,Cloud Composer 1 v1 環境建立作業就會失敗。

如要建立 Cloud Composer 1 環境,請在專案中停用這項政策。

如要進一步瞭解這項機構政策,請參閱「機構政策限制」。

停用 compute.vmExternalIpAccess 政策時,Cloud Composer 環境建立或升級作業會失敗

這個問題適用於 Cloud Composer 1 和 Cloud Composer 2 環境。

在公開 IP 模式中設定的 Cloud Composer 專屬 GKE 叢集,需要 VM 的外部連線。因此,compute.vmExternalIpAccess 政策無法禁止建立具有外部 IP 位址的 VM。如要進一步瞭解這項機構政策,請參閱「機構政策限制」。

停用 compute.vmCanIpForward 政策後,Cloud Composer 1 環境建立作業會失敗

在非虛擬私有雲原生 (使用別名 IP) 模式下建立的 Cloud Composer 1 環境,需要此政策才能建立啟用 IP 轉送功能的 VM。如要進一步瞭解這項機構政策,請參閱「機構政策限制」。

上傳的 DAG 檔案第一次執行 DAG 時,有幾項工作失敗

上傳 DAG 檔案時,有時第一個 DAG 執行時,前幾個工作會因 Unable to read remote log... 錯誤而失敗。發生這個問題的原因是 DAG 檔案會在環境的值區、Airflow 工作站和 Airflow 排程器之間同步處理。如果排程器取得 DAG 檔案並排定由 worker 執行,但 worker 尚未取得 DAG 檔案,則任務執行作業會失敗。

為緩解這個問題,Airflow 2 的環境預設會針對失敗的任務執行兩次重試。如果工作失敗,系統會以 5 分鐘的間隔重試兩次。

如要減少 Airflow 1 中的這個問題,請覆寫 [core]default_task_retries Airflow 設定選項,並將其設為大於或等於 2 的數字。

在 Airflow 1.10.15 以下版本中,工作會失敗並顯示「OSError: [Errno 5] Input/output error」

Airflow 1 版本中的錯誤會導致在某些罕見情況下,工作會放入環境的工作佇列兩次。

有時可能會導致記錄檔發生競爭狀況,並導致後續工作失敗。工作在 Cloud Logging 中顯示 OSError: [Errno 5] Input/output error,在工作嘗試記錄中顯示 Task is in the 'running' state which is not a valid state for execution.,並失敗。

這個錯誤已在 Airflow 2 中修正。如果您在 Airflow 1 的長時間執行工作中遇到這個問題,請調高 [celery_broker_transport_options]visibility_timeout Airflow 設定選項的值 (預設值為 Composer 1.17.0 的 604800,舊版環境為 21600)。如果是執行時間較短的工作,建議您為受影響的工作新增額外重試次數,或將環境遷移至 Airflow 2。

Dataproc 和 Dataflow 運算子發生 Negsignal.SIGSEGV 錯誤

這是 grcpio 程式庫在從 Celery 工作者使用時,偶爾會發生的問題。這個問題會影響 Airflow 1.10.14 以上版本。

解決方法是在環境中新增下列環境變數GRPC_POLL_STRATEGY=epoll1,藉此變更 grpcio 的輪詢策略。這個解決方法已套用至 Cloud Composer 1.17.1 以上版本。

關於 GKE 版本淘汰 Beta 版 API 支援功能的公告

Cloud Composer 會管理底層 Cloud Composer 專屬 GKE 叢集。除非您在 DAG 和程式碼中明確使用這類 API,否則可以忽略 GKE API 淘汰公告。必要時,Cloud Composer 會負責處理所有遷移作業。

Cloud Composer 不受 Apache Log4j 2 安全漏洞 (CVE-2021-44228) 影響

為因應 Apache Log4j 2 安全漏洞 (CVE-2021-44228),Cloud Composer 已進行詳細調查,我們認為 Cloud Composer 不易遭到這項漏洞攻擊。

Airflow 工作站或排程器在存取環境的 Cloud Storage 值區時,可能會發生問題

Cloud Composer 會使用 gcsfuse 存取環境值區中的 /data 資料夾,並將 Airflow 工作記錄儲存至 /logs 目錄 (如果已啟用)。如果 gcsfuse 超載或環境的儲存格無法使用,您可能會遇到 Airflow 工作執行個體失敗的情況,並在 Airflow 記錄中看到 Transport endpoint is not connected 錯誤。

解決方法:

Airflow UI 有時可能不會在外掛程式變更後重新載入

如果外掛程式包含許多匯入其他模組的檔案,Airflow UI 可能無法辨識應重新載入外掛程式。在這種情況下,請重新啟動環境的 Airflow 網路伺服器

與環境資料庫通訊時發生間歇性問題

這個已知問題僅適用於 Cloud Composer 1。

在 2021 年 8 月 12 日前建立的部分舊版 Cloud Composer 1 環境 (1.16.3 以下版本),可能會發生與 Airflow 資料庫通訊相關的暫時性問題。

如果遇到這個問題,您會在 Airflow 工作流程記錄中看到下列錯誤訊息:

"Can't connect to MySQL server on 'airflow-sqlproxy-service.default.svc.cluster.local' (104)"

Cloud Composer 團隊正在努力解決這個問題。在此同時,如果您認為自己受到這項問題的極大影響,可以採取下列做法來減輕影響:

  1. 在 Google Cloud 控制台中,前往受影響的 Cloud Composer 環境的「環境設定」頁面。

  2. 點選「查看叢集詳細資料」連結,前往環境的基礎 GKE 叢集。

  3. 前往「Nodes」分頁,然後點選「Node Pools」部分中的「default-pool」

    節點集區清單中的「default-pool」
    圖 1. 節點集區清單中的 default-pool (按一下即可放大)
  4. 按一下頁面頂端的「Edit」(編輯)

  5. 將映像檔類型變更為「含有 containerd 的 Container-Optimized OS」,然後儲存設定:

    將節點集區映像檔類型從 Docker 變更為 containerd
    圖 2. 將節點集區映像檔類型從 Docker 變更為 containerd (按一下可放大)
  6. 提交變更後,系統會重新設定 default-pool 節點集區,以便使用 containerd 做為容器執行階段。在重新設定節點集區時,部分 Airflow 工作可能會失敗。如果這些工作已設定重試,Airflow 會在節點集區的作業完成後重新執行這些工作。

存取 Airflow UI 時發生錯誤 504

存取 Airflow UI 時,您可能會收到 504 Gateway Timeout 錯誤。造成這項錯誤的原因可能有幾種:

  • 通訊問題是暫時性的。在這種情況下,請稍後再嘗試存取 Airflow UI。您也可以重新啟動 Airflow 網路伺服器

  • (僅限 Cloud Composer 3) 連線問題。如果 Airflow UI 永久無法使用,且系統產生逾時或 504 錯誤,請確認環境可存取 *.composer.googleusercontent.com

  • (僅限 Cloud Composer 2) 連線問題。如果 Airflow UI 永久無法使用,且系統產生逾時或 504 錯誤,請確認環境可存取 *.composer.cloud.google.com。如果您使用私人 Google 存取權,並透過 private.googleapis.com 虛擬 IP 傳送流量,或是使用 VPC Service Controls,並透過 restricted.googleapis.com 虛擬 IP 傳送流量,請務必為 *.composer.cloud.google.com 網域名稱設定 Cloud DNS。

  • Airflow 網路伺服器沒有回應。如果錯誤 504 持續發生,但您仍可在特定時間存取 Airflow UI,則 Airflow 網路伺服器可能因負載過高而無法回應。嘗試增加網站伺服器的規模和效能參數

存取 Airflow UI 時發生錯誤 502

錯誤 502 Internal server exception 表示 Airflow UI 無法處理傳入的要求。造成這項錯誤的原因可能有幾種:

  • 通訊問題是暫時性的。請稍後再嘗試存取 Airflow 使用者介面。

  • 無法啟動網路伺服器。為了開始,網路伺服器必須先同步處理設定檔。查看網路伺服器記錄,找出類似下列內容的記錄項目:GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmpGCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp。如果您看到這些錯誤,請檢查錯誤訊息中提及的檔案是否仍位於環境的儲存體中。

    如果意外移除 (例如已設定保留政策),您可以還原這些項目:

    1. 在環境中設定新的環境變數。您可以使用任何變數名稱和值。

    2. 覆寫 Airflow 設定選項。您可以使用不存在的 Airflow 設定選項。

Airflow 2.2.3 以下版本的 Airflow UI 容易受到 CVE-2021-45229 的影響

CVE-2021-45229 所述,「Trigger DAG with config」畫面容易受到透過 origin 查詢引數的 XSS 攻擊。

建議:升級至支援 Airflow 2.2.5 的最新 Cloud Composer 版本。

使用 Cloud Run 函式透過私人網路觸發 DAG

Cloud Composer 不支援透過私人網路使用 VPC 連接器,觸發含有 Cloud Run 函式的 DAG。

建議:使用 Cloud Run 函式在 Pub/Sub 上發布訊息。這類事件可啟動 Pub/Sub 感應器,以觸發 Airflow DAG 或實作以可延遲運算子為基礎的方法。

排程器和 worker 中的空資料夾

Cloud Composer 不會主動從 Airflow 工作者和排程器中移除空資料夾。當這些資料夾存在於儲存桶中,且最終遭到移除時,環境儲存桶同步處理程序可能會建立這類實體。

建議:調整 DAG,讓系統能略過這類空白資料夾。

當這些元件重新啟動時 (例如,在環境叢集中縮減或維護作業),這些實體最終會從 Airflow 排程器和工作站的本機儲存空間中移除。

支援 Kerberos

Cloud Composer 不支援 Airflow Kerberos 設定

支援 Google Campaign Manager 360 運算子

在 2.1.13 以下版本的 Cloud Composer 中,Google 活動企劃經理運算子會以已淘汰的 Campaign Manager 360 v3.5 API 為基礎,該 API 的淘汰日期為 2023 年 5 月 1 日

如果您使用 Google Campaign Manager 運算子,請將環境升級至 Cloud Composer 2.1.13 以上版本。

支援 Google Display & Video 360 運算子

在 Cloud Composer 2.1.13 以下版本中,Google Display & Video 360 運算子會使用已淘汰的 Display & Video 360 v1.1 API,該 API 的淘汰日期為 2023 年 4 月 27 日。

如果您使用 Google Display & Video 360 運算子,請將環境升級至 Cloud Composer 2.1.13 以上版本。此外,由於部分 Google Display & Video 360 運算子已淘汰,並由新運算子取代,因此您可能需要變更 DAG。

  • GoogleDisplayVideo360CreateReportOperator 目前已淘汰。請改用 GoogleDisplayVideo360CreateQueryOperator。這個運算子會傳回 query_id,而非 report_id
  • GoogleDisplayVideo360RunReportOperator 目前已淘汰。請改用 GoogleDisplayVideo360RunQueryOperator。這個運算子會傳回 query_idreport_id,而非只傳回 report_id,且需要 query_id 而非 report_id 做為參數。
  • 如要確認報表是否已就緒,請使用採用 query_idreport_id 參數的新 GoogleDisplayVideo360RunQuerySensor 感應器。已淘汰的 GoogleDisplayVideo360ReportSensor 感應器只需要 report_id
  • GoogleDisplayVideo360DownloadReportV2Operator 現在需要 query_idreport_id 參數。
  • GoogleDisplayVideo360DeleteReportOperator 中,沒有任何變更會影響您的 DAG。

次要範圍名稱限制

CVE-2023-29247 (使用者介面中的任務執行個體詳細資料頁面容易受到儲存式 XSS 攻擊)

Airflow 2.0.x 到 2.5.x 版本的 Airflow UI 容易受到 CVE-2023-29247 的影響。

如果您使用的是 2.4.2 以下版本的 Cloud Composer,且懷疑環境可能會遭到此漏洞攻擊,請參閱以下說明和可能的解決方案。

在 Cloud Composer 中,Airflow UI 的存取權會受到 IAM 保護,並由 Airflow UI 存取權控管控管。

也就是說,攻擊者必須先取得專案存取權,以及必要的 IAM 權限和角色,才能利用 Airflow UI 的安全漏洞。

解決方法:

  • 驗證專案中的 IAM 權限和角色,包括指派給個別使用者的 Cloud Composer 角色。請確認只有核准的使用者可以存取 Airflow UI。

  • 透過 Airflow UI 存取權控管機制驗證指派給使用者的角色 (這是另一個機制,可提供更精細的 Airflow UI 存取權)。請確認只有獲准的使用者才能存取 Airflow UI,且所有新使用者都已註冊適當的角色。

  • 考慮使用 VPC Service Controls 進一步強化安全性。

無法減少 Cloud SQL 儲存空間

Cloud Composer 會使用 Cloud SQL 執行 Airflow 資料庫。隨著 Airflow 資料庫的成長,Cloud SQL 執行個體的磁碟儲存空間可能會隨著 Cloud SQL 作業儲存的資料而增加。

無法縮減 Cloud SQL 磁碟大小。

如要使用最小的 Cloud SQL 磁碟大小,可以使用快照重新建立 Cloud Composer 環境,做為解決方法。

從 Cloud SQL 移除記錄後,資料庫磁碟用量指標並未減少

關聯式資料庫 (例如 Postgres 或 MySQL) 在刪除或更新資料列時,不會實際移除資料列。而是將這些資料標示為「已死的元組」,以維持資料一致性並避免阻斷並行交易。

MySQL 和 Postgres 都會在刪除記錄後,實作回收空間的機制。

雖然可以強制資料庫回收未使用的磁碟空間,但這項作業會消耗大量資源,並且會鎖定資料庫,導致 Cloud Composer 無法使用。因此,建議您依靠建構機制來回收未使用的空間。

過去成功執行的工作例項,現在標示為「失敗」

在某些情況和極少數情況下,過去成功的 Airflow 工作執行個體可能會標示為 FAILED

發生這種情況時,通常是因為環境更新或升級作業,或是 GKE 維護作業所觸發。

注意:這個問題本身並未指出環境中存在任何問題,也不會導致任務執行失敗。

這個問題已在 Cloud Composer 2.6.5 以上版本中修正。

Airflow 元件在與 Cloud Composer 設定的其他部分通訊時發生問題

在極少數情況下,與 Compute Engine 中繼資料伺服器的通訊速度緩慢,可能會導致 Airflow 元件無法正常運作。舉例來說,Airflow 排程器可能會重新啟動、Airflow 工作可能需要重新嘗試,或是工作啟動時間可能會拉長。

症狀:

Airflow 元件 (例如 Airflow 排程器、工作站或網路伺服器) 的記錄中會顯示以下錯誤:

Authentication failed using Compute Engine authentication due to unavailable metadata server

Compute Engine Metadata server unavailable on attempt 1 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 2 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 3 of 3. Reason: timed out

解決方法:

設定下列環境變數GCE_METADATA_TIMEOUT=30

監控中非連續 DAG 剖析時間和 DAG 袋大小圖表

監控資訊主頁上顯示的非連續 DAG 剖析時間和 DAG 袋大小圖表,表示 DAG 剖析時間過長 (超過 5 分鐘)。

Airflow DAG 剖析時間和 DAG 袋大小圖表,顯示一系列非連續間隔
圖 3. 非連續 DAG 剖析時間和 DAG 包裹大小圖表 (按一下可放大)

解決方法:建議您將 DAG 的總剖析時間控制在 5 分鐘以內。如要縮短 DAG 剖析時間,請遵循 DAG 編寫指南

不支援將環境叢集切換至 GKE Enterprise 版本

這項附註適用於 Cloud Composer 1 和 Cloud Composer 2。

Cloud Composer 環境的 GKE 叢集會在 GKE Standard 版本中建立。

自 2024 年 12 月起,Cloud Composer 服務不支援在 Enterprise 版本中使用叢集建立 Cloud Composer 環境。

Cloud Composer 環境並未使用 GKE 企業版進行測試,且採用不同的帳單模式。

我們會在 2025 年第 2 季,針對 GKE Standard 版和 Enterprise 版提供更多相關資訊。

專案的帳單帳戶遭到刪除或停用,或是 Cloud Composer API 遭到停用後,環境處於 ERROR 狀態

受這些問題影響的 Cloud Composer 環境無法復原:

  • 專案的帳單帳戶遭到刪除或停用後,即使日後已連結其他帳戶,仍會發生此問題。
  • 在專案中停用 Cloud Composer API 後,即使日後啟用,也無法再使用。

如要解決這個問題,請按照下列步驟操作:

  • 您仍可存取儲存在環境值區中的資料,但環境本身已無法使用。您可以建立新的 Cloud Composer 環境,然後轉移 DAG 和資料。

  • 如果您要執行任何會導致環境無法復原的作業,請務必備份資料,例如建立環境的快照。這樣一來,您就可以建立其他環境,並透過載入這個快照來轉移資料。

環境叢集的 Pod 中斷預算警告

您可以在 GKE UI 中看到 Cloud Composer 環境叢集的以下警告:

GKE can't perform maintenance because the Pod Disruption Budget allows
for 0 Pod evictions. Update the Pod Disruption Budget.
A StatefulSet is configured with a Pod Disruption Budget but without readiness
probes, so the Pod Disruption Budget isn't as effective in gauging application
readiness. Add one or more readiness probes.

您無法消除這些警告。我們會努力停止產生這些警告。

可能的解決方案:

  • 請忽略這些警告,直到問題解決為止。

無法移除 Airflow 連線中的欄位值

原因:

Apache Airflow 使用者介面有一個限制,無法將連線欄位更新為空值。嘗試這麼做時,系統會還原先前儲存的設定。

可能的解決方案:

雖然 Apache Airflow 2.10.4 版已提供永久修正,但針對舊版的使用者,我們也提供暫時性解決方法。這包括刪除連線,然後重新建立連線,具體來說,就是將必要欄位留空。建議您使用指令列介面刪除連線:

gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
connections delete -- \
CONNECTION_ID

刪除連線後,請使用 Airflow UI 重新建立連線,並確保要留空的欄位確實留空。您也可以透過 Google Cloud CLI 執行 connections add Airflow CLI 指令來建立連線。

如果將 [core]execute_tasks_new_python_interpreter 設為 True,系統就不會收集 Airflow 工作記錄

如果 [core]execute_tasks_new_python_interpreter Airflow 設定選項設為 True,Cloud Composer 就不會收集 Airflow 工作記錄。

參考解法:

  • 移除這項設定選項的覆寫值,或將其值設為 False

後續步驟