View a markdown version of this page

为 API Gateway 中的 REST API 设置 CloudWatch 日志记录 - Amazon API Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

为 API Gateway 中的 REST API 设置 CloudWatch 日志记录

为了帮助调试与请求执行或客户端对 API 的访问的相关问题,您可以启用 Amazon CloudWatch Logs 以记录 API 调用。有关 CloudWatch 的更多信息,请参阅使用 Amazon CloudWatch 指标监控 REST API 执行。

CloudWatch 中有两种类型的 API 日志记录:

  • 执行日志记录:API Gateway 记录为处理 API 请求而采取的操作,包括错误和执行跟踪。您还可以配置 Amazon CloudWatch Logs 传输,来将执行日志路由到您自己的目标。

  • 访问日志记录:您可以记录谁访问了您的 API 以及访问方式。您可以创建自己的日志组,选择日志格式,并指定要包含哪些 $context 变量。

您可以分别启用执行日志记录和访问日志记录,这两者相互独立。

CloudWatch 日志记录的权限

要启用 CloudWatch Logs,您必须向 API Gateway 授予权限,才能针对您的账户读取日志和将日志写入到 CloudWatch。AmazonAPIGatewayPushToCloudWatchLogs 托管式策略具有所需的全部权限。

注意

API Gateway 将调用 Amazon Security Token Service 以恢复 IAM 角色,因此请确保已为区域启用 Amazon STS。有关更多信息,请参阅在Amazon区域中管理Amazon STS。

要将这些权限授予您的账户,请使用 apigateway.amazonaws.com 作为其可信实体创建一个 IAM 角色,将之前的策略附加到此 IAM 角色,然后在您账户的 cloudWatchRoleArn 属性上设置 IAM 角色 ARN。您必须为要在其中启用 CloudWatch Logs 的每个Amazon区域单独设置 cloudWatchRoleArn 属性。

如果您在设置 IAM 角色 ARN 时收到错误,请检查您的 Amazon Security Token Service 账户设置,以确保在您所使用的区域中启用了 Amazon STS。有关启用 Amazon STS 的更多信息,请参阅 IAM 用户指南中的在Amazon区域中管理Amazon STS。