CDK で API Gateway の実行ログとアクセスログを有効にする


API Gateway(REST API) で開発するとき、アクセスログと実行ログを出すようにすると、トライアンドエラーが捗りますよね。

CDK(TypeScript) でこれを有効にするには、こんな感じです。

const accessLogGroup = new logs.LogGroup(this, 'AccessLog');
const api = new apigateway.RestApi(this, 'Api', {
  deployOptions: {
    loggingLevel: apigateway.MethodLoggingLevel.INFO,
    dataTraceEnabled: true,
    accessLogDestination: new apigateway.LogGroupLogDestination(accessLogGroup),
    accessLogFormat: apigateway.AccessLogFormat.clf()
  }
});

実行ログに関する設定は、loggingLevel と dataTraceEnabled です。
マネジメントコンソールで言うと、ログレベルリクエスト/レスポンスをすべてログ を指します。

アクセスログに関する設定は、accessLogDestination と accessLogFormat です。
これは、出力先のロググループと、アクセスログのフォーマットです。

これで API にアクセスすると、CloudWatch ログで、実行ログとアクセスログがそれぞれ別のログストリームに出力されます。

参考

Source Code

コード全体はこちら。
https://github.com/kazfuku/apigateway-java-lambda-authorizer/blob/master/lib/apigateway-java-lambda-authorizer-stack.ts