本頁面列出工作流程的已知問題。
您也可以在公開問題追蹤工具中查看現有問題或開啟新問題。
for
緊接在 try
之後
直接在 try
後方放置 for
會導致錯誤。舉例來說,單一步驟可以直接放在 try
之後,如下所示:
- try: try: call: sys.log args: data: works retry: ${http.default_retry}
不過,如果將 for
放在 try
之後,步驟就會失敗,您也無法部署工作流程。例如:
- try: try: for: value: v range: [1,2] steps: - log: call: sys.log args: data: ${v} retry: ${http.default_retry}
錯誤訊息如下:
Could not deploy workflow: failed to build: error in step try: loop step name should not be empty (Code: 3)
解決方法是在 try
後方新增具名步驟。例如:
- try: try: steps: - loopStep: for: value: v range: [1,2] steps: - log: call: sys.log args: data: ${v} retry: ${http.default_retry}
事件大於引數大小上限
如果使用 Workflows 做為 Eventarc 觸發條件的目的地,事件大小超過 Workflows 引數上限時,將無法觸發工作流程執行。詳情請參閱配額與限制。
記錄中的 HTTP request lost
則訊息
執行呼叫 Cloud Build 的工作流程時,工作流程會失敗,且記錄檔中會顯示類似下列內容的 HTTP request lost
訊息:
[1500] HTTP request lost INTERNAL MESSAGE: HTTP request lost ... CAUSED BY: RPC::UNREACHABLE: RPC connection timed out: FDD 20s, last read 2022-10-14 16:39:04 -0700 PDT
如果遇到這個錯誤,請嘗試實作重試政策或明確的例外狀況處理,藉此修改工作流程。
記錄呼叫和 accessString
方法,以便擷取密鑰資料
如果使用 accessString
輔助方法擷取密鑰資料時,通話記錄層級設為 log-all-calls
,密鑰值就不會經過編輯,而是以純文字形式列印到 jsonPayload.succeeded.response
的記錄中。
使用 Cloud Resource Manager 連接器時發生長時間執行的作業例外狀況
Resource Manager 連接器方法 googleapis.cloudresourcemanager.v3.projects.patch
不會傳回長時間執行作業 (LRO) 名稱。即使要求成功,系統也可能會引發類似下列內容的例外狀況:
exception: "{"message":"Long-running operation returned unexpected response.", "operation":{"done":true,"response":{"@type":"type.googleapis.com/google.cloud.resourcemanager.v3.Project", ... "tags":["ResponseTypeError"]}"
為避免發生 LRO 輪詢錯誤,請將 skip_polling
連接器參數設為 true
,這樣一來,如果初始要求成功,連接器叫用呼叫就不會遭到封鎖。成功的要求會傳回 "done":true
;否則,請使用 try/except
結構體來擷取任何例外狀況。
詳情請參閱連接器參考資料。
對 Google Kubernetes Engine (GKE) 發出的 HTTP 要求
每個 GKE 叢集都有控制層,可處理 Kubernetes API 要求。控制層有兩種叢集存取端點:以 DNS 為基礎的端點和以 IP 為基礎的端點。詳情請參閱「控制層存取權」。
Workflows 不再支援對 GKE 叢集控制層的IP 型端點發出 HTTP 要求。如要進一步瞭解這項淘汰作業的範圍和影響,請參閱服務公告。
為確保工作流程正常運作,您必須存取以 DNS 為基礎的端點。如要存取以 DNS 為基礎的端點,建議您在工作流程中使用 Kubernetes API 連接器。詳情請參閱使用連接器存取 Kubernetes API 物件。
後續步驟
瞭解有助於排解問題的策略。