将 API 调用记录到 Kinesis Data Firehose - Amazon API Gateway
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 API 调用记录到 Kinesis Data Firehose

为了帮助调试与客户端对您的 API 的访问相关的问题,您可以将 API 调用记录到 Amazon Kinesis Data Firehose。有关 Kinesis Data Firehose 的更多信息,请参阅什么是 Amazon Kinesis Data Firehose?

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

适用于 API Gateway 的 Kinesis Data Firehose 日志格式

Kinesis Data Firehose 日志记录与 CloudWatch 日志记录使用相同的格式。

Kinesis Data Firehose 日志记录的权限

当在某个阶段启用 Kinesis Data Firehose 访问日志记录时,如果服务相关角色尚不存在,则 API Gateway 会在您的账户中创建此角色。该角色被命名为 AWSServiceRoleForAPIGateway,并且已将 APIGatewayServiceRolePolicy 托管策略附加到该角色。有关服务相关角色的更多信息,请参阅使用服务相关角色

注意

您的 Kinesis Data Firehose 传输流的名称必须为 amazon-apigateway-{your-delivery-stream-name}

使用 API Gateway 控制台设置 Kinesis Data Firehose 访问日志记录

要设置 API 日志记录,您必须已经将 API 部署到某个阶段。您还必须创建了 Kinesis Data Firehose 传输流。

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

  2. 请执行下列操作之一:

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

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

  3. Stage Editor (阶段编辑器) 中选择 Logs/Tracing (日志/跟踪)

  4. 要启用对 Kinesis Data Firehose 传输流的访问日志记录,请执行以下操作:

    1. Custom Access Logging (自定义访问日志记录) 下选择 Enable Access Logging (启用访问日志记录)

    2. 访问日志目标 ARN 中输入 Kinesis Data Firehose 传输流的 ARN。ARN 格式为 arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-delivery-stream-name}

      注意

      传输流的名称必须为 amazon-apigateway-{your-delivery-stream-name}

    3. Log Format (日志格式) 中输入日志格式。您可以选择 CLFJSONXMLCSV 以使用提供的示例之一作为指南。

  5. 选择 Save Changes

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