

# 在 API Gateway 中记录对 Amazon Data Firehose 的 REST API 调用
<a name="apigateway-logging-to-kinesis"></a>

为有助于调试与客户端对您的 API 的访问相关的问题，您可以将 API 调用记录到 Amazon Data Firehose。有关 Firehose 的更多信息，请参阅 [What Is Amazon Data Firehose?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)

对于访问日志记录，您只能启用 CloudWatch 或 Firehose - 而不能同时启用两者。但是，您可以启用 CloudWatch 来实施执行日志记录，并启用 Firehose 来实施访问日志记录。

**Topics**
+ [适用于 API Gateway 的 Firehose 日志格式](#apigateway-kinesis-log-formats)
+ [Firehose 日志记录的权限](#set-up-kinesis-access-logging-permissions)
+ [使用 API Gateway 控制台设置 Firehose 访问日志记录](#set-up-kinesis-access-logging-using-console)

## 适用于 API Gateway 的 Firehose 日志格式
<a name="apigateway-kinesis-log-formats"></a>

Firehose 日志记录与 [CloudWatch 日志记录](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)使用相同的格式。

## Firehose 日志记录的权限
<a name="set-up-kinesis-access-logging-permissions"></a>

当在某个阶段启用 Firehose 访问日志记录时，如果服务相关角色尚不存在，则 API Gateway 会在您的账户中创建此角色。该角色被命名为 `AWSServiceRoleForAPIGateway`，并且已将 `APIGatewayServiceRolePolicy` 托管策略附加到该角色。有关服务相关角色的更多信息，请参阅[使用服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

**注意**  
Firehose 流的名称必须为 `amazon-apigateway-{your-stream-name}`。

## 使用 API Gateway 控制台设置 Firehose 访问日志记录
<a name="set-up-kinesis-access-logging-using-console"></a>

要设置 API 日志记录，您必须已经将 API 部署到某个阶段。您还必须创建 Firehose 流。

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1.  请执行以下操作之一：

   1.  选择现有 API，然后选择一个阶段。

   1.  创建 API 并将其部署到阶段。

1. 在主导航窗格中，选择**阶段**。

1.  在**日志和跟踪**部分中，选择**编辑**。

1. 要启用 Firehose 流的访问日志记录，请执行以下操作：

   1. 开启**自定义访问日志记录**。

   1. 对于**访问日志目标 ARN**，输入 Firehose 流的 ARN。ARN 格式为 `arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name}`。
**注意**  
Firehose 流的名称必须为 `amazon-apigateway-{your-stream-name}`。

   1. 对于**日志格式**，输入日志格式。您可以选择 **CLF**、**JSON**、**XML** 或 **CSV**。要了解有关示例日志格式的更多信息，请参阅[用于 API Gateway 的 CloudWatch 日志格式](set-up-logging.md#apigateway-cloudwatch-log-formats)。

1. 选择 **Save changes（保存更改）**。

API Gateway 现已准备好将对 API 的请求记录到 Firehose。在更新阶段设置、日志或阶段变量时，您无需重新部署 API。