在AWS_API_GATEWAY_INTEGRATION 的 Terraform 文档中,支持以下参数:
- rest_api_id
- resource_id
- http_method
- 类型
- 乌里
- 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"
}
但我想指定一个映射模板(以及 Lambda 集成),就像您可以使用 UI 一样:
但是,我认为无法使用 Terraform 做到这一点。有可能吗?
注意:我目前正在做的是apply
配置其余部分(lambda、s3、iam 等),然后手动添加映射模板(以及 lambda 的集成类型)。
但是每次我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" => ""