本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 API Gateway 中設定 HTTP API 的記錄
您可以開啟記錄,將記錄寫入記 CloudWatch 錄檔。您可以使用記錄變數來自訂日誌的內容。
若要開啟 HTTP API 的記錄功能,您必須執行下列動作。
確定您的使用者具有啟用記錄所需的許可。
建立 CloudWatch 記錄檔記錄群組。
針對 API 的某個階段提供 CloudWatch 記錄檔記錄群組的 ARN。
用以啟用記錄的許可。
若要開啟 API 的記錄功能,您的使用者必須具有下列許可。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "arn:aws:logs:
us-east-2
:123456789012
:log-group:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:PutResourcePolicy", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:CreateLogGroup", "logs:DescribeResourcePolicies", "logs:GetLogDelivery", "logs:ListLogDeliveries" ], "Resource": "*" } ] }
建立日誌群組並啟動 HTTP API 的記錄
您可以使用 AWS Management Console 或建立記錄群組並啟動存取記錄 AWS CLI。
日誌格式範例
一些常用存取日誌格式範例會顯示在 API Gateway 主控台中,並列出如下。
-
CLF
(通用日誌格式): $context.identity.sourceIp - - [$context.requestTime] "$context.httpMethod $context.routeKey $context.protocol" $context.status $context.responseLength $context.requestId $context.extendedRequestId
-
JSON
:{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "responseLength":"$context.responseLength", "extendedRequestId": "$context.extendedRequestId" }
-
XML
:<request id="$context.requestId"> <ip>$context.identity.sourceIp</ip> <requestTime>$context.requestTime</requestTime> <httpMethod>$context.httpMethod</httpMethod> <routeKey>$context.routeKey</routeKey> <status>$context.status</status> <protocol>$context.protocol</protocol> <responseLength>$context.responseLength</responseLength> <extendedRequestId>$context.extendedRequestId</extendedRequestId> </request>
-
CSV
(逗號分隔值):$context.identity.sourceIp,$context.requestTime,$context.httpMethod,$context.routeKey,$context.protocol,$context.status,$context.responseLength,$context.requestId,$context.extendedRequestId