一、API Gateway没有成功生成日志现象
在API Gateway上,新配置好的一个接口,打开日志功能后,发现并未生效,日志没有输出到CloudWatch的Log Groups中。现象如下。
打开API Gateway的某接口的CloudWatch日志的开关已经打开。如下截图。
检查CloudWatch Log Groups,点击左侧的Log groups
菜单,可看到并未发现对应的日志。如下截图。
这一问题是由于API Gateway没有配置正确的IAM Role导致的。点击API Gateway左下角的Settings
设置菜单,可看到里边的CloudWatch log role ARN
是没有正确配置。如下截图。
解决办法是为API Gateway配置正确的IAM Role。
二、解决办法
1、配置API Gateway生成CloudWatch所需要的IAM Role
进入IAM服务界面,点击左侧的Role
菜单,点击Create role
按钮。
进入创建IAM Role向导的第一步,在页面下方选择API Gateway
,然后点击右下角下一步按钮。如下截图。
向导第二步的Add permissions
界面,可看到IAM向导自动带出了一个名为AmazonAPIGatewayPushToCloudWatchLogs
的Policy。这个策略就是稍后需要用的。这里不需要修改,直接点击右下角下一步按钮继续。如下截图。
在向导最后一步,输入新建的IAM Role的名称,例如API-Gateay-Log-Role
。这里主要不能用空格。如下截图。
创建IAM Role后,点击其名称,查看这个新创建的Role的ARN,将其复制下来。如下截图。
接下来返回到API Gateway的配置。
2、将IAM Role应用到API Gateway
在API Gateway的Settings
界面,填写上刚才复制下来的ARN,然后点击Save
按钮。主要点击按钮后页面不会发生跳转,确认点击后就已经是生效了。如下截图。
3、检查日志是否生成成功
此时对API Gateway接口发起访问。然后稍后来检查是否生成了日志。
进入CloudWatch的Log Groups,可看到在修改配置后,里边生成了新的Log Groups,点击查看之。如下截图。
从CloudWatch Log Groups中可以看到,API Gateway正常生成了日志。
三、参考文档
Permissions for CloudWatch logging:
全文完。