在 API Gateway 中记录对 Amazon Data Firehose 的 REST API 调用 - Amazon API Gateway

在 API Gateway 中记录对 Amazon Data Firehose 的 REST API 调用

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

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

适用于 API Gateway 的 Firehose 日志格式

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

Firehose 日志记录的权限

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

注意

Firehose 流的名称必须为 amazon-apigateway-{your-stream-name}

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

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

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

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

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

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

  3. 在主导航窗格中,选择阶段

  4. 日志和跟踪部分中,选择编辑

  5. 要启用 Firehose 流的访问日志记录,请执行以下操作:

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

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

      注意

      Firehose 流的名称必须为 amazon-apigateway-{your-stream-name}

    3. 对于日志格式,输入日志格式。您可以选择 CLFJSONXMLCSV。要了解有关示例日志格式的更多信息,请参阅用于 API Gateway 的 CloudWatch 日志格式

  6. 选择 Save changes(保存更改)

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