説明
SAM API のアクセスログは、リクエスト ID や応答ステータスなど、リクエストごとの情報を記録します。未設定の場合、API Gateway のリクエスト履歴を分析するための情報が不足するおそれがあります。
想定される影響
障害の原因調査や不審な呼び出しの追跡に必要な記録を確保できないことがあります。
対処方法
AWS::Serverless::Api には AccessLogSetting、AWS::Serverless::HttpApi には AccessLogSettings を指定してください。送信先、リクエスト ID を含む形式、ログ送信権限、保持期間を設定してください。
例
この抜粋では REST API のリクエスト ID とステータスを記録します。ロググループは別途作成し、API Gateway のログ送信権限を設定してください。
変更前
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
TracingEnabled: true
変更後
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
TracingEnabled: true
AccessLogSetting:
DestinationArn: arn:aws:logs:ap-northeast-2:123456789012:log-group:api-access-log
Format: '{"requestId":"$context.requestId","status":"$context.status"}'