在 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 流。
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway
。 -
请执行以下操作之一:
-
选择现有 API,然后选择一个阶段。
-
创建 API 并将其部署到阶段。
-
在主导航窗格中,选择阶段。
-
在日志和跟踪部分中,选择编辑。
-
要启用 Firehose 流的访问日志记录,请执行以下操作:
-
开启自定义访问日志记录。
-
对于访问日志目标 ARN,输入 Firehose 流的 ARN。ARN 格式为
arn:aws:firehose:
。{region}
:{account-id}
:deliverystream/amazon-apigateway-{your-stream-name}
注意
Firehose 流的名称必须为
amazon-apigateway-
。{your-stream-name}
-
对于日志格式,输入日志格式。您可以选择 CLF、JSON、XML 或 CSV。要了解有关示例日志格式的更多信息,请参阅用于 API Gateway 的 CloudWatch 日志格式。
-
-
选择 Save changes(保存更改)。
API Gateway 现已准备好将对 API 的请求记录到 Firehose。在更新阶段设置、日志或阶段变量时,您无需重新部署 API。