代码之家  ›  专栏  ›  技术社区  ›  mon

Terraform-如何启用API网关执行日志记录?

  •  0
  • mon  · 技术社区  · 6 年前

    问题

    如何使用Terraform设置API网关级执行日志记录?还不支持吗?

    背景

    API网关阶段编辑器具有 execution logging 配置。但是,似乎没有参数来设置它们 aws_api_gateway_stage 尽管它有 access loggging 配置参数。

    想知道是否还有其他资源可以使用,或者仅仅是那些参数还没有实现。

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  9
  •   dasrick    6 年前

    你必须使用 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
      }
    }
    

    CloudWatch日志组应该如下所示 API-Gateway-Execution-Logs_{YOU_API_ID}/{YOU_STAGENAME}

    ... 也许你需要设置所有的IAM角色。。。

        2
  •  1
  •   atom88    4 年前

    您可以在整个“stage”级别设置这些日志记录级别,也可以覆盖stage级别并在方法级别定义它,如本例所示:(注意此处的“method\u path”值)

    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"
    }
    }
    

    在此处找到:

    另请参见此处: