В документации Terraform для AWS_API_GATEWAY_INTEGRATION поддерживаются следующие параметры:
- rest_api_id
- resource_id
- http_method
- типа
- URI
- integration_http_method
Они приводят этот пример:
resource "aws_api_gateway_integration" "MyDemoIntegration" {
rest_api_id = "${aws_api_gateway_rest_api.MyDemoAPI.id}"
resource_id = "${aws_api_gateway_resource.MyDemoResource.id}"
http_method = "${aws_api_gateway_method.MyDemoMethod.http_method}"
type = "MOCK"
}
Но я хотел бы указать шаблон сопоставления (а также интеграцию лямбда), как вы можете с пользовательским интерфейсом:
Однако я не вижу никакого способа сделать это с Terraform. Возможно ли?
Примечание. То, что я сейчас делаю, - это apply
остальная конфигурация (lambda, s3, iam и т.д.), а затем добавление шаблона сопоставления вручную после этого (а также тип интеграции лямбда).
Но тогда каждый раз, когда я terraform apply
применяет другую конфигурацию (например: s3), Terraform возвращает шаблон отображения и тип интеграции.
План "возврата" выглядит следующим образом:
~ aws_api_gateway_integration.post_hit_integration
request_templates.#: "1" => "0"
request_templates.application/json: "{\n \"body\" : $input.json('$'),\n \"headers\": {\n #foreach($param in $input.params().header.keySet())\n \"$param\": \"$util.escapeJavaScript($input.params().header.get($param))\" #if($foreach.hasNext),#end\n \n #end \n },\n \"stage\" : \"$context.stage\"\n}" => ""
uri: "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:000000000000:function:create_hit/invocations" => ""