I’m struggling to translate my API Gateway Integration request into Terraform code, I’m trying to pass a multipart/form-data request to a Lambda for storage.
I’ve been able to set up the API gateway manually from scratch, but when I try the terraform I receive an Internal server error and Cloudwatch tells me the gateway has been unable to transform the request.
Execution failed due to configuration error: Unable to transform request
The problem seems to be in the Integration request, because if I do the terraform deployment I can get the whole thing to work by changing the Integration Type in the UI to Lambda Proxy, changing it back again and adding re-adding the Mapping Template.
Terraform block for the Integration;
- My aws_api_gateway_integration
resource "aws_api_gateway_integration" "docuemnt-api-method-integration" {
rest_api_id = aws_api_gateway_rest_api.document-api.id
resource_id = aws_api_gateway_resource.document-resource.id
http_method = aws_api_gateway_method.document-post-method.http_method
type = "AWS"
uri = aws_lambda_function.document_function.invoke_arn
integration_http_method = "POST"
passthrough_behavior = "WHEN_NO_TEMPLATES"
request_templates = {
"multipart/form-data" = file("${path.module}/mapping/mapping_template.json")
}
}
- The Mapping template
{
"body":"$input.body",
"content-type": "$util.escapeJavaScript($input.params().header.get('Content-Type'))"
}