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

cam8001 commented May 13, 2023

Copy link
Copy Markdown
Author

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