でaws_api_gateway_integrationのための要求テンプレートを指定するには、次のパラメータがサポートされています。<a href="https://www.terraform.io/docs/providers/aws/r/api_gateway_integration.html">Terraform documentation for AWS_API_GATEWAY_INTEGRATION</a>でテラフォーム
- は
- をrest_api_idは
- http_method
- タイプ
- URI
- が をintegration_http_method RESOURCE_ID
彼らはこの例を与える:
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"
}
しかし、私はあなたがUIでできるように、マッピングテンプレート(同様にラムダ・インテグレーション)を指定したいと思います:
をしかし、私はTerraformでそれをする方法がない。それは可能ですか?
注:私が現在やっていることはapply
その他の構成(ラムダ、S3、IAMなど...)INGの、そしてその後、手動でマッピングテンプレートを追加する(と同様にラムダの積分型)されます。
しかし、私はterraform apply
に他の設定(例:s3)を適用するたびに、Terraformはマッピングテンプレートと統合タイプを元に戻します。
"元に戻す" 計画は、次のようになります。
(あなたがのparamsuri
、
type
、
integration_http_method
と
request_templates
を使用する必要があります):、ここで働くconfigです
~ 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" => ""
私はこれのためにどこでも見てきた、どうもありがとうございました。私はヘッダーを網羅的に列挙しようとしていました。 – jstlaurent