配置API网关访问日志时,如何查找CloudWatch日志组的ARN
解决API Gateway自定义日志的CloudWatch ARN获取问题
你遇到的错误核心原因很明确:API Gateway配置自定义访问日志时,必须填入日志组的ARN,而不是单纯的日志组名称。你输入的API-Gateway-Execution-Logs_3j5w5m7kv9/stage-name是日志组名称,不符合ARN以arn:开头的格式要求,所以才会报错。
下面给你三种获取目标日志组ARN的方法:
1. 通过CloudWatch控制台直接复制(最直观)
- 打开CloudWatch控制台,左侧导航栏选择「日志」>「日志组」
- 在列表里找到你的目标日志组(就是你之前输入的那个名称),点击进入详情页
- 页面顶部的「详细信息」板块里会直接显示ARN字段;如果没看到,点击页面右上角的「操作」按钮,选择「复制ARN」,就能一键复制到剪贴板。
2. 使用AWS CLI命令查询
如果你习惯用命令行工具,可以执行以下命令(记得替换成你的日志组名称和AWS区域):
aws logs describe-log-groups --log-group-name-prefix "API-Gateway-Execution-Logs_3j5w5m7kv9/stage-name" --region <你的AWS区域>
返回的JSON结果中,logGroups数组对应的条目里会包含arn字段,复制这个值即可。
3. 手动构造ARN
如果你已经知道自己的AWS账户ID、区域和日志组名称,也可以直接手动拼接ARN,格式如下:
arn:aws:logs:<AWS区域>:<AWS账户ID>:log-group:<日志组名称>:*
举个例子:如果你的区域是us-east-1,账户ID是123456789012,日志组名称是API-Gateway-Execution-Logs_3j5w5m7kv9/stage-name,那么构造出的ARN就是:
arn:aws:logs:us-east-1:123456789012:log-group:API-Gateway-Execution-Logs_3j5w5m7kv9/stage-name:*
把获取到的ARN粘贴到API Gateway的日志组输入框里,就能解决这个错误了。
内容的提问来源于stack exchange,提问作者Hleb
相关产品推荐
相关产品推荐

