You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在SAM模板部署时为AWS API Gateway执行日志自定义CloudWatch路径?

关于SAM部署时自定义API Gateway CloudWatch日志路径的说明

完全支持通过SAM模板自定义API Gateway的CloudWatch日志存储路径,无需依赖服务默认生成的随机路径规则。

未做自定义配置时,API Gateway会自动按照/aws/apigateway/<API随机ID>-<阶段名>的固定格式在CloudWatch Logs下创建日志组,路径不受用户配置干预,完全由服务托管逻辑生成,这也是大家感知到“日志路径带随机值”的核心原因。

核心配置逻辑

不管是REST API(V1)还是HTTP API(V2),所有类型的日志(访问日志、执行调试日志)的写入目标,统一由AccessLogSetting参数控制。只要在SAM的对应API资源定义中显式指定目标日志组的ARN,所有日志都会写入你自定义的路径,不会触发默认的随机路径规则。

参考配置示例

直接在SAM模板中同时定义指定路径的CloudWatch日志组、并关联到API资源的日志配置上即可,模板片段参考:

ProdApi:
  Type: AWS::Serverless::Api
  Properties:
    StageName: prod
    # 显式指定自定义日志写入目标
    AccessLogSetting:
      DestinationArn: !GetAtt CustomApiLogGroup.Arn
      Format: '{"requestId":"$context.requestId","httpMethod":"$context.httpMethod","status":"$context.status"}'
    # 开启执行日志调试级别,执行日志会自动跟随自定义日志组写入
    MethodSettings:
      - ResourcePath: /*
        HttpMethod: '*'
        LoggingLevel: INFO
        DataTraceEnabled: true
# 自定义路径的CloudWatch日志组
CustomApiLogGroup:
  Type: AWS::Logs::LogGroup
  Properties:
    LogGroupName: /my/custom/gateway/prod/api-logs
    RetentionInDays: 90

注意事项

  • 需确保API Gateway的服务关联角色拥有自定义日志组的logs:CreateLogStream、logs:PutLogEvents权限,否则日志写入会静默失败
  • 若未显式配置AccessLogSetting,无论如何调整其他API参数,日志都会继续走默认的随机路径规则,无法实现自定义
  • 历史部署过默认路径日志的API,切换自定义路径后,旧日志组不会自动删除,需手动清理避免日志分流

内容的提问来源于stack exchange,提问作者Uma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 04:24:03