将 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 传输流。
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
请执行下列操作之一:
-
选择现有 API,然后选择一个阶段。
-
创建 API 并将其部署到阶段。
-
-
在 Stage Editor (阶段编辑器) 中选择 Logs/Tracing (日志/跟踪)。
-
要启用对 Kinesis Data Firehose 传输流的访问日志记录,请执行以下操作:
-
在 Custom Access Logging (自定义访问日志记录) 下选择 Enable Access Logging (启用访问日志记录)。
-
在访问日志目标 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}
-
在 Log Format (日志格式) 中输入日志格式。您可以选择 CLF、JSON、XML 或 CSV,以使用提供的示例之一作为指南。
-
-
选择 Save Changes。
API Gateway 现已准备好将对您 API 的请求记录到 Kinesis Data Firehose。在更新阶段设置、日志或阶段变量时,您无需重新部署 API。