J'ai un script de terraform pour api_gateway
qui fonctionne très bien. J'ai beaucoup de modèles dupliqués. Je veux extraire tous les modèles en utilisant "data" "template_file"
.Terraform - response_parameters: devrait être une carte
Solution de travail:
resource "aws_api_gateway_integration_response" "ApiResponse" {
//something goes here
response_parameters = {
"method.response.header.Access-Control-Allow-Headers" = "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
"method.response.header.Access-Control-Allow-Methods" = "'GET,DELETE,PUT,OPTIONS'"
"method.response.header.Access-Control-Allow-Origin" = "'*'"
}
}
Après refactoring:
resource "aws_api_gateway_integration_response" "ApiResponse" {
//something goes here
response_parameters = "${data.template_file.response_parameters.template}"
}
data "template_file" "response_parameters" {
template = "${file("${path.module}/response_parameters.tptl")}"
}
response_parameters.tptl:
{
"method.response.header.Access-Control-Allow-Headers" = "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
"method.response.header.Access-Control-Allow-Methods" = "'GET,DELETE,PUT,OPTIONS'"
"method.response.header.Access-Control-Allow-Origin" = "'*'"
}
Erreur:
* aws_api_gateway_integration_response.ApiResponse: response_parameters: should be a map
Puisque les paramètres de réponse sont communs à tous mes aws_api_gateway_integration_response
, je veux avoir un modèle commun et réutiliser dans toutes les ressources.
Pourquoi ai-je cette erreur?