Search code examples
aws-api-gatewayamazon-cloudwatchterraform-provider-aws

Terraform - How to enable API Gateway execution logging?


Question

How to setup API Gateway stage level execution logging with Terraform? Is it not supported yet?

Background

API Gateway stage editor has the execution logging configurations. However, it seems there is no parameter to set them in aws_api_gateway_stage although it has access loggging configuration parameters.

Wondering if there are another resources to use or simply those parameters have not been implemented.

enter image description here


Solution

  • You have to use aws_api_gateway_method_settings ...

    resource "aws_api_gateway_method_settings" "YOUR_settings" {
      rest_api_id = "${aws_api_gateway_rest_api.YOUR.id}"
      stage_name  = "${aws_api_gateway_stage.YOUR.stage_name}"
      method_path = "*/*"
      settings {
        logging_level = "INFO"
        data_trace_enabled = true
        metrics_enabled = true
      }
    }
    

    the CloudWatch LogGroup should look like API-Gateway-Execution-Logs_{YOU_API_ID}/{YOU_STAGENAME}

    ... maybe you have to setup all the IAM role stuff ...