Terraform - How to enable API Gateway execution logging?

Viewed 6657

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

2 Answers

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 ...

You can set these logging levels either at the entire "stage" level or override the stage level and define it at the method level as in this example: (notice the "method_path" value here)

resource "aws_api_gateway_method_settings" "s" {
rest_api_id = aws_api_gateway_rest_api.test.id
stage_name  = aws_api_gateway_stage.test.stage_name
method_path = 
"${aws_api_gateway_resource.test.path_part}/${aws_api_gateway_method.test.http_method}"

settings {
metrics_enabled = true
logging_level   = "INFO"
}
}

Found here:

See also here:

Related