AWS_API_GATEWAY_INTEGRATIONのTerraform ドキュメントでは、次のパラメータがサポートされています。
- rest_api_id
- resource_id
- http_メソッド
- タイプ
- うり
- 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"
}
しかし、UI でできるように、マッピング テンプレート (および Lambda 統合) を指定したいと思います。
ただし、Terraform でそれを行う方法はありません。可能ですか?
注:私が現在行っているのはapply
、構成の残りの部分 (ラムダ、s3、iam など) を作成し、後でマッピング テンプレートを手動で追加することです (ラムダの統合タイプも同様です)。
しかし、他の構成 (例: s3) を適用するたびにterraform apply
、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" => ""