解決建立環境的相關問題

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer„�

本頁面提供疑難排解資訊,協助您解決建立 Cloud Composer 環境時可能遇到的問題。

如需更新及升級環境的疑難排解資訊,請參閱「排解環境更新與升級問題」。

建立 Cloud Composer 環境時,大多數問題都是由下列原因造成:

  • 服務帳戶權限問題。

  • 防火牆、DNS 或路由資訊不正確。

  • 網路相關問題。例如虛擬私有雲設定無效、IP 位址衝突,或網路 IP 範圍過窄。

  • 配額相關問題。

  • 不相容的機構政策。

您的權限不足,無法建立環境

如果帳戶權限不足,導致 Cloud Composer 無法建立環境,系統會輸出下列錯誤訊息:

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: The caller
does not have permission

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: User not
authorized to act as service account <service-account-name>.
The user must be granted iam.serviceAccounts.actAs permission, included in
Owner, Editor, Service Account User role. See https://cloud.google.com/iam/docs
/understanding-service-accounts for additional details.

解決方法:如「存取權控管」一文所述,將角色指派給您的帳戶和環境的服務帳戶。

  • 在 Cloud Composer 2 中,請確認 Cloud Composer 服務代理人服務帳戶 (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) 已獲派 Cloud Composer v2 API 服務代理人擴充角色

  • 確認 Google API 服務代理人 (PROJECT_NUMBER@cloudservices.gserviceaccount.com) 已獲派編輯者角色。

  • 在共用虛擬私有雲設定中,請按照設定共用虛擬私有雲的操作說明操作。

環境的服務帳戶權限不足

建立 Cloud Composer 環境時,您會指定服務帳戶,用來執行環境的 GKE 叢集節點。如果這個服務帳戶沒有足夠的權限執行要求作業,Cloud Composer 會輸出下列錯誤:

Errors in: [Web server]; Error messages:
  Creation of airflow web server version failed. This may be an intermittent
  issue of the App Engine service. You may retry the operation later.
{"ResourceType":"appengine.v1.version","ResourceErrorCode":"504","ResourceError
Message":"Your deployment has failed to become healthy in the allotted time
and therefore was rolled back. If you believe this was an error, try adjusting
the 'app_start_timeout_sec' setting in the 'readiness_check' section."}

解決方法:如「存取權控管」一文所述,將角色指派給您的帳戶和環境的服務帳戶。

服務帳戶缺少 IAM 角色時的警告

如果環境建立失敗,Cloud Composer 會在發生錯誤後產生下列警告訊息:The issue may be caused by missing IAM roles in the following Service Accounts ...

這則警告訊息會指出錯誤的可能原因。 Cloud Composer 會檢查專案中服務帳戶的必要角色,如果缺少這些角色,就會產生這則警告訊息。

解決方法:檢查警告訊息中提及的服務帳戶是否具備必要角色。如要進一步瞭解 Cloud Composer 中的角色和權限,請參閱「存取權控管」。

在某些情況下,您可以忽略這則警告。Cloud Composer 不會檢查指派給角色的個別權限。舉例來說,如果您使用自訂 IAM 角色,警告訊息中提及的服務帳戶可能已具備所有必要權限。在這種情況下,您可以忽略這則警告。

不相容的機構政策

您必須適當設定下列政策,才能順利建立 Cloud Composer 環境。

機構政策 Cloud Composer 3 Cloud Composer 2 Cloud Composer 1
compute.disableSerialPortLogging 可輸入任何值 必須停用 1.13.0 以下版本會停用這項功能,否則可使用任何值
compute.requireOsLogin 可輸入任何值 可輸入任何值 必須停用
compute.vmCanIpForward 可輸入任何值 可輸入任何值 如果未設定虛擬私有雲原生模式 (使用別名 IP),則必須允許 (Cloud Composer 擁有的 GKE 叢集需要此設定)
compute.vmExternalIpAccess 可輸入任何值 必須允許公開 IP 環境 必須允許公開 IP 環境
compute.restrictVpcPeering 可強制執行 無法強制執行 無法強制執行
compute.disablePrivateServiceConnectCreationForConsumers 可輸入任何值 無法禁止私人和公開 IP 環境的 SERVICE_PRODUCERS。 不會影響現有環境,啟用這項政策後,現有環境仍可運作。 無法禁止私人 IP 環境的 SERVICE_PRODUCERS。 不會影響現有環境,啟用這項政策後,現有環境仍可運作。
compute.restrictPrivateServiceConnectProducer 啟用後,將 google.com 機構加入允許清單 啟用後,將 google.com 機構加入允許清單 可輸入任何值

不相容的主體存取邊界政策

您在機構中設定的主體存取邊界政策,可能會封鎖部分環境作業或禁止建立新環境。

如果發生這種情況,錯誤訊息中可能會顯示下列內容:

Operations on resource are denied due to an IAM Principal Access Boundary Policy.

環境的元件位於用戶端和客戶專案中。租戶專案由 Google 管理,不屬於環境所在的機構。環境的服務帳戶必須具備在租戶專案中執行作業的權限。

解決方法

  • 在政策的繫結中新增條件運算式,將環境的服務帳戶排除在政策之外。如要瞭解如何排除主體,讓政策不適用於該主體,請參閱 Identity and Access Management 說明文件中的「主體存取邊界政策的條件式政策繫結」。

限制機構或專案內使用的服務

機構或專案管理員可以使用gcp.restrictServiceUsage組織政策限制,限制專案中可使用的 Google 服務。

使用這項機構政策時,請務必允許 Cloud Composer 需要的所有服務

後續步驟