

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 亚马逊 API Gateway 以亚马逊规则为目标 EventBridge
<a name="eb-api-gateway-target"></a>

您可以使用 Amazon API Gateway 来创建、发布、维护和监控 APIs。亚马逊 EventBridge支持向 API Gateway 终端节点发送事件。当您将 API Gateway 端点指定为[目标](eb-targets.md)时，发送到该目标的每个[事件](eb-events.md)都将映射一个发送到该端点的请求。

**重要**  
EventBridge 支持使用 API Gateway *边缘优化*和*区域*端点作为目标。目前不支持*私有端点*。要了解端点的更多信息，请参阅 [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-endpoint-types.html)。

可以将 API Gateway 目标用于以下使用场景：
+ 根据第三方事件调用 API Gateway 中托管的客户指定 AWS 的 API。
+ 按计划定期调用端点。

 EventBridge JSON 事件信息将作为 HTTP 请求的正文发送到您的终端节点。您可以在目标的 `HttpParameters` 字段中指定其他请求属性，如下所示：
+ `PathParameterValues` 列出了与您的端点 ARN 中的任何路径变量顺序对应的值，例如 `"arn:aws:execute-api:us-east-1:112233445566:myapi/dev/POST/pets/*/*"`。
+ `QueryStringParameters`表示 EventBridge 附加到被调用端点的查询字符串参数。
+ `HeaderParameters` 定义要添加到请求中的 HTTP 标头。

**注意**  
出于安全考虑，不允许使用以下 HTTP 标头密钥：  
任何以 `X-Amz` 或 `X-Amzn` 为前缀的标头密钥
`Authorization`
`Connection`
`Content-Encoding`
`Content-Length`
`Host`
`Max-Forwards`
`TE`
`Transfer-Encoding`
`Trailer`
`Upgrade`
`Via`
`WWW-Authenticate`
`X-Forwarded-For`

## 动态参数
<a name="eb-targets-apigateway-dynamic"></a>

在调用 API Gateway 目标时，您可以向发送到目标的事件动态添加数据。有关更多信息，请参阅 [目标参数](eb-targets.md#targets-specific-parms)。

## 调用重试
<a name="eb-targets-apigateway-retries"></a>

与所有目标一样， EventBridge 会重试一些失败的调用。对于 API Gateway， EventBridge 重试以 5xx 或 429 HTTP 状态码发送的响应长达 24 小时，并出现[指数级退](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)缩和抖动。之后，在 Amazon 上 EventBridge 发布一个`FailedInvocations`指标 CloudWatch。 EventBridge 不会重试其他 4xx HTTP 错误。

## Timeout
<a name="eb-targets-apigateway-timeout"></a>

EventBridge 规则 API Gateway 请求的最大客户端执行超时时间必须为 5 秒。如果 API Gateway 的响应 EventBridge 时间超过 5 秒，则会超时请求然后重试。

EventBridge Pipes API Gateway 请求的最大超时时间为 29 秒，这是 API Gateway 的最大超时值。