查看 Application Integration 支援的連接器

錯誤處理簡介

在應用程式整合中,測試及發布整合項目,或執行整合項目時,可能會發生錯誤。這些錯誤可能會因各種用戶端和伺服器端問題而發生,大致可分為以下幾類:

  • 永久性錯誤: 所有用戶端錯誤,例如驗證失敗、資料驗證錯誤,都視為永久性錯誤。永久性錯誤會導致工作永久失敗。
  • 暫時性錯誤:所有伺服器端錯誤都視為暫時性錯誤,例如 HTTP 503 (服務無法使用)、HTTP 400 (錯誤要求)。暫時性錯誤會導致暫時性任務失敗。

錯誤訊息會顯示在下列位置:

  • 執行記錄頁面:顯示執行整合作業時遇到的錯誤。每個整合執行作業都有一個獨立的記錄項目。如要瞭解執行記錄檔頁面,請參閱「執行記錄檔」。
  • 整合編輯器頁面:顯示發布整合時發生的錯誤。錯誤會顯示在整合編輯器頁面的底部。如要瞭解整合服務編輯器頁面,請參閱「整合服務編輯器」。

如要瞭解可能遇到的錯誤代碼清單,請參閱「錯誤代碼」。

錯誤處理方法

應用程式整合支援下列錯誤處理方法,可擲回、擷取、重試及自訂整合作業中遇到的錯誤:

  • 錯誤處理策略:工作錯誤處理策略會指定在工作因暫時性錯誤而失敗時,應採取的動作。您可以為同步和非同步執行模式指定不同的錯誤處理策略。
  • 錯誤偵測器:錯誤偵測器會定義自訂方式,用於處理整合作業中已識別的觸發條件、工作或邊緣條件的失敗情形。您可以在單一整合中定義一或多個錯誤捕捉器,以便處理工作錯誤和/或執行失敗。每個錯誤擷取器都可以使用觸發條件 (稱為「錯誤擷取器觸發條件」) 來執行一組已設定的整合工作,這些工作會自訂處理錯誤。

您可以使用錯誤處理方法,針對同步和非同步的整合執行模式:

最佳做法

在整合中同時使用錯誤處理策略錯誤擷取器。對於任何錯誤,整合會遵循錯誤處理部分中定義的策略。在用盡已設定的錯誤處理策略後,系統會觸發錯誤擷取器邏輯。使用系統變數擷取錯誤代碼和錯誤訊息的值,並傳送至錯誤擷取器資料流。

範例

假設您有用於建立訂單的整合流程,新訂單會在 MySQL 適用的 Cloud SQL 中建立。這個流程會使用連接器工作 (在本例中為「Create an order」) 連線至 MySQL 適用的 Cloud SQL。如果資料庫發生異常,連接器工作在將新訂單插入資料庫時會擲回錯誤。最佳做法是,您必須在整合中同時使用錯誤處理策略錯誤擷取器

如要新增錯誤處理策略,請在整合設計工具中按一下連接器任務,開啟任務設定窗格。下圖顯示為「Create an order」連接器工作設定的錯誤處理策略:

建立訂單連接器工作時的錯誤處理策略 建立訂單連接器工作時的錯誤處理策略

如要新增錯誤處理策略,請在整合設計工具中按一下「Call REST Endpoint」任務,開啟任務設定窗格。下圖顯示為「Call REST Endpoint」任務設定的錯誤處理策略:

呼叫 REST 端點任務的錯誤處理策略 呼叫 REST 端點任務的錯誤處理策略

如要新增錯誤擷取器,請在整合設計工具中按一下「Call REST Endpoint」任務,開啟任務設定窗格。在「Error Catcher」部分中,新增錯誤擷取器詳細資料。下圖顯示為「Call REST Endpoint」任務設定的錯誤擷取器:

呼叫 REST 端點任務的錯誤偵測器 呼叫 REST 端點任務的錯誤偵測器

錯誤代碼

下表說明您可能會遇到的錯誤,以及錯誤的對應原因。Application Integration 會使用 google.rpc.Code 中定義的標準錯誤代碼。

如要瞭解應用程式整合錯誤和各種錯誤處理策略,請參閱「錯誤和錯誤處理」一文。

標準例外狀況類型 標準化代碼 HTTP 代碼 說明
FailedPreconditionException FAILED_PRECONDITION 400 無法在目前的系統狀態下執行要求。
BadRequestException INVALID_ARGUMENT 400 用戶端指定的引數無效。請查看錯誤訊息和錯誤詳細資料,瞭解詳情。
UnauthenticatedException UNAUTHENTICATED 401 OAuth 權杖遺漏、無效或過期,因此無法驗證要求。
ForbiddenException PERMISSION_DENIED 403 用戶端權限不足。這可能是因為 OAuth 權杖的範圍不正確、用戶端沒有必要的權限,或 API 尚未啟用所致。
NotFoundException NOT_FOUND 404 找不到指定的資源。
AlreadyExistsException ALREADY_EXISTS 409 用戶端嘗試建立的資源已存在。
InternalError INTERNAL 500 發生內部伺服器錯誤。通常是伺服器錯誤。如果任一工作或觸發條件設定錯誤,就可能發生這種情況。
UnimplementedException UNIMPLEMENTED 501 伺服器未執行 API 方法。
ServiceUnavailableException UNAVAILABLE 503 服務無法使用,通常是因伺服器停止運作所致。
AbortedException ABORTED 409 回應大小過大。