Nel Terraform documentation for AWS_API_GATEWAY_INTEGRATION, sono supportati i seguenti parametri:Specifica un modello di richiesta per un aws_api_gateway_integration in Terraform
- rest_api_id
- RESOURCE_ID
- http_method
- tipo
- uri
- integration_http_method
danno questo esempio:
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"
}
Ma vorrei specificare un modello di mappatura (così come un'integrazione Lambda), come è possibile con l'interfaccia utente:
Tuttavia Non vedo modo di farlo con Terraform. È possibile?
Nota: Quello che sto facendo attualmente è apply
ING il resto della configurazione (lambda, s3, iam ecc ...), e poi aggiungendo modello di mappatura manualmente in seguito (così come il tipo di integrazione di lambda) .
Ma poi ogni volta che ho terraform apply
per applicare qualche altra configurazione (ad esempio: s3), Terraform ripristina il modello di associazione e il tipo di integrazione.
Il piano "tornando" si presenta così:
~ 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" => ""
Ho cercato in tutto il mondo per questo, vi ringrazio molto. Stavo per iniziare a elencare esaustivamente le intestazioni. – jstlaurent