Skip to content

Instantly share code, notes, and snippets.

@cam8001
Created May 13, 2023 07:43
Show Gist options
  • Select an option

  • Save cam8001/31a8c5fd71f4afd6ebd88f55a71d70cf to your computer and use it in GitHub Desktop.

Select an option

Save cam8001/31a8c5fd71f4afd6ebd88f55a71d70cf to your computer and use it in GitHub Desktop.
Logging config for API Gateway JSON format with all variable included
{ "accountId": "$context.accountId", "apiId": "$context.apiId", "authorizer.error": "$context.authorizer.error", "authorizer.principalId": "$context.authorizer.principalId", "authorizer.property": "$context.authorizer.property", "awsEndpointRequestId": "$context.awsEndpointRequestId", "awsEndpointRequestId2": "$context.awsEndpointRequestId2", "customDomain.basePathMatched": "$context.customDomain.basePathMatched", "dataProcessed": "$context.dataProcessed", "domainName": "$context.domainName", "domainPrefix": "$context.domainPrefix", "error.message": "$context.error.message", "error.messageString": "$context.error.messageString", "error.responseType": "$context.error.responseType", "extendedRequestId": "$context.extendedRequestId", "httpMethod": "$context.httpMethod", "identity.accountId": "$context.identity.accountId", "identity.caller": "$context.identity.caller", "identity.cognitoAuthenticationProvider": "$context.identity.cognitoAuthenticationProvider", "identity.cognitoAuthenticationType": "$context.identity.cognitoAuthenticationType", "identity.cognitoIdentityId": "$context.identity.cognitoIdentityId", "identity.cognitoIdentityPoolId": "$context.identity.cognitoIdentityPoolId", "identity.principalOrgId": "$context.identity.principalOrgId", "identity.clientCert.clientCertPem": "$context.identity.clientCert.clientCertPem", "identity.clientCert.subjectDN": "$context.identity.clientCert.subjectDN", "identity.clientCert.issuerDN": "$context.identity.clientCert.issuerDN", "identity.clientCert.serialNumber": "$context.identity.clientCert.serialNumber", "identity.clientCert.validity.notBefore": "$context.identity.clientCert.validity.notBefore", "identity.clientCert.validity.notAfter": "$context.identity.clientCert.validity.notAfter", "identity.sourceIp": "$context.identity.sourceIp", "identity.user": "$context.identity.user", "identity.userAgent": "$context.identity.userAgent", "identity.userArn": "$context.identity.userArn", "integration.error": "$context.integration.error", "integration.integrationStatus": "$context.integration.integrationStatus", "integration.latency": "$context.integration.latency", "integration.requestId": "$context.integration.requestId", "integration.status": "$context.integration.status", "integrationErrorMessage": "$context.integrationErrorMessage", "integrationLatency": "$context.integrationLatency", "integrationStatus": "$context.integrationStatus", "path": "$context.path", "protocol": "$context.protocol", "requestId": "$context.requestId", "requestTime": "$context.requestTime", "requestTimeEpoch": "$context.requestTimeEpoch", "responseLatency": "$context.responseLatency", "responseLength": "$context.responseLength", "routeKey": "$context.routeKey", "stage": "$context.stage", "status": "$context.status" }
@cam8001
Copy link
Copy Markdown
Author

cam8001 commented May 13, 2023

APIGW requires it to all be on one line, so that's why its uggo. List of variables is from here: https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-logging-variables.html

Formatted:

{
  "accountId": "$context.accountId",
  "apiId": "$context.apiId",
  "authorizer.error": "$context.authorizer.error",
  "authorizer.principalId": "$context.authorizer.principalId",
  "authorizer.property": "$context.authorizer.property",
  "awsEndpointRequestId": "$context.awsEndpointRequestId",
  "awsEndpointRequestId2": "$context.awsEndpointRequestId2",
  "customDomain.basePathMatched": "$context.customDomain.basePathMatched",
  "dataProcessed": "$context.dataProcessed",
  "domainName": "$context.domainName",
  "domainPrefix": "$context.domainPrefix",
  "error.message": "$context.error.message",
  "error.messageString": "$context.error.messageString",
  "error.responseType": "$context.error.responseType",
  "extendedRequestId": "$context.extendedRequestId",
  "httpMethod": "$context.httpMethod",
  "identity.accountId": "$context.identity.accountId",
  "identity.caller": "$context.identity.caller",
  "identity.cognitoAuthenticationProvider": "$context.identity.cognitoAuthenticationProvider",
  "identity.cognitoAuthenticationType": "$context.identity.cognitoAuthenticationType",
  "identity.cognitoIdentityId": "$context.identity.cognitoIdentityId",
  "identity.cognitoIdentityPoolId": "$context.identity.cognitoIdentityPoolId",
  "identity.principalOrgId": "$context.identity.principalOrgId",
  "identity.clientCert.clientCertPem": "$context.identity.clientCert.clientCertPem",
  "identity.clientCert.subjectDN": "$context.identity.clientCert.subjectDN",
  "identity.clientCert.issuerDN": "$context.identity.clientCert.issuerDN",
  "identity.clientCert.serialNumber": "$context.identity.clientCert.serialNumber",
  "identity.clientCert.validity.notBefore": "$context.identity.clientCert.validity.notBefore",
  "identity.clientCert.validity.notAfter": "$context.identity.clientCert.validity.notAfter",
  "identity.sourceIp": "$context.identity.sourceIp",
  "identity.user": "$context.identity.user",
  "identity.userAgent": "$context.identity.userAgent",
  "identity.userArn": "$context.identity.userArn",
  "integration.error": "$context.integration.error",
  "integration.integrationStatus": "$context.integration.integrationStatus",
  "integration.latency": "$context.integration.latency",
  "integration.requestId": "$context.integration.requestId",
  "integration.status": "$context.integration.status",
  "integrationErrorMessage": "$context.integrationErrorMessage",
  "integrationLatency": "$context.integrationLatency",
  "integrationStatus": "$context.integrationStatus",
  "path": "$context.path",
  "protocol": "$context.protocol",
  "requestId": "$context.requestId",
  "requestTime": "$context.requestTime",
  "requestTimeEpoch": "$context.requestTimeEpoch",
  "responseLatency": "$context.responseLatency",
  "responseLength": "$context.responseLength",
  "routeKey": "$context.routeKey",
  "stage": "$context.stage",
  "status": "$context.status"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment