查看 Application Integration 支持的连接器

错误处理简介

在应用集成中,当您测试和发布集成时,或者在集成执行期间,可能会出现错误。这些错误可能是由各种客户端和服务器端问题引起的,它们大致分为以下内容:

  • 永久性错误:所有客户端错误(例如身份验证失败、数据验证错误)均视为永久性错误。永久性错误会导致永久性任务失败。
  • 暂时性错误:所有服务器端错误,例如 HTTP 503(服务不可用)、HTTP 400(错误请求)均视为暂时性错误。暂时性错误会导致临时任务失败。

错误消息显示在以下位置:

  • 执行日志页面:显示集成执行期间发生的错误。集成的每次执行都有一个单独的日志条目。如需了解执行日志页面,请参阅执行日志
  • 集成编辑器页面:显示发布集成时发生的错误。错误会显示在集成编辑器页面底部。如需了解集成编辑器页面,请参阅集成编辑器

如需了解您可能会遇到的错误代码列表,请参阅错误代码

错误处理方法

应用集成支持以下错误处理方法,以抛出、捕获、重试和自定义集成中遇到的错误:

  • 错误处理策略:任务的错误处理策略指定当任务因暂时性错误而失败时要执行的操作。您可以为同步和异步执行模式指定不同的错误处理策略。
  • 错误捕获器:错误捕获器用于定义自定义方式,以处理集成中已识别的触发器、任务或边缘条件失败。您可以在单个集成中定义一个或多个错误捕获器来处理任务错误和/或执行失败。每个错误捕获器都可以使用触发器(称为错误捕获器触发器)来调用,以运行一组已配置的自定义集成任务来处理错误。

您可以将错误处理方法同时用于集成执行的同步和异步模式:

最佳做法

在集成中同时使用错误处理策略错误捕获器。对于任何错误,集成都将遵循“错误处理”部分中定义的策略。在耗尽配置的错误处理策略后,系统会触发错误捕获器逻辑。使用系统变量捕获错误代码和错误消息的值,以发送到错误捕获器流程。

示例

假设您有一个用于创建订单的集成流程。系统会在 Cloud SQL for MySQL 中创建新订单。该流程使用连接器任务(在此示例中为创建订单)连接到 Cloud SQL for MySQL。如果数据库发生中断,连接器任务在将新订单插入数据库时会抛出错误。最佳实践是,您必须在集成中同时使用错误处理策略错误捕获器

如需添加错误处理策略,请点击集成设计器中的连接器任务以打开任务配置窗格。下图显示了为创建订单连接器任务配置的错误处理策略:

“创建有序连接器”任务的错误处理策略 “创建有序连接器”任务的错误处理策略

如需添加错误处理策略,请点击集成设计器中的 Call REST Endpoint 任务以打开任务配置窗格。下图显示了为调用 REST 端点任务配置的错误处理策略:

“调用 REST 端点”任务的错误处理策略 “调用 REST 端点”任务的错误处理策略

如需添加错误捕获器,请点击集成设计器中的 Call REST Endpoint 任务以打开任务配置窗格。在错误捕获器部分,添加错误捕获器详细信息。下图显示了为调用 REST 端点任务配置的错误捕获器:

“调用 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 响应大小过大。