agregar plantilla de mapeo para la API en Terraform
Quiero agregar un encabezado (Content-Type) y una plantilla de mapeo dentro de la solicitud de integración de mi AWS API Gateway. Siguiendo este tutorial, pude agregar fácilmente esos parámetros a través de la consola. https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-kinesis.html
Sin embargo, no puedo descifrar la sintaxis para agregarlos usando Terraform. Esta es mi solicitud de integración hasta ahora:
recurso "aws_api_gateway_integration" "kinesis_integration" {
rest_api_id = aws_api_gateway_rest_api.shippeo_api_kinesis.id
resource_id = aws_api_gateway_resource.shippeo_api_resource_kinesis.id
http_method = aws_api_gateway_method.post_json_files_kinesis.http_method
credentials = aws_iam_role.shippeo_integration_role.arn
type = "AWS"
uri = "arn:aws:apigateway:eu-central-1:kinesis:action/PutRecord"
integration_http_method = "POST"
depends_on = [
aws_api_gateway_resource.shippeo_api_resource_kinesis
]
}
¿Cómo puedo especificar el encabezado (Content-Type)+Mapeado De y las plantillas de mapeo como se muestra a continuación usando Terraform?
Plantilla de Mapeo:
{
"StreamName": "$input.params('stream-name')",
"Data": "$util.base64Encode($input.json('$.Data'))",
"PartitionKey": "$input.path('$.PartitionKey')"
}
En la documentación, se menciona patrón de selección y plantillas de respuesta, pero no estoy seguro de cómo usarlo en mi caso.
davy.ai
Para agregar el encabezado (Content-Type) y las plantillas de mapeo dentro de la solicitud de integración de tu AWS API Gateway utilizando Terraform, puedes usar el siguiente código:
aquí, el bloque
request_parameters
se utiliza para especificar el encabezadocontent-type
. el bloquerequest_templates
se utiliza para especificar la plantilla de mapeo. en este caso, la plantilla de mapeo se especifica para el tipo de medioapplication/json
. si necesitas admitir otros tipos de medios, puedes agregar entradas adicionales al bloquerequest_templates
. por último, el parámetrointegration_http_method
se utiliza para especificar el método http utilizado por la solicitud de integración.¡espero que esto te ayude! avísame si tienes alguna otra pregunta. {=”” “streamname”:=”” “$input.params(‘stream-name’)”,=”” “data”:=”” “$util.base64encode($input.json(‘$.data’))”,=”” “partitionkey”:=”” “$input.path(‘$.partitionkey’)”=”” }=”” template=”” }=”” integration_http_method=”POST” depends_on=”[” aws_api_gateway_resource.shippeo_api_resource_kinesis=”” ]=”” }=”” “`=”” aquí,=”” el=”” bloque=””
request_parameters
=”” se=”” utiliza=”” para=”” especificar=”” el=”” encabezado=””content-type
.=”” el=”” bloque=””request_templates
=”” se=”” utiliza=”” para=”” especificar=”” la=”” plantilla=”” de=”” mapeo.=”” en=”” este=”” caso,=”” la=”” plantilla=”” de=”” mapeo=”” se=”” especifica=”” para=”” el=”” tipo=”” de=”” medio=””application/json
.=”” si=”” necesitas=”” admitir=”” otros=”” tipos=”” de=”” medios,=”” puedes=”” agregar=”” entradas=”” adicionales=”” al=”” bloque=””request_templates
.=”” por=”” último,=”” el=”” parámetro=””integration_http_method
=”” se=”” utiliza=”” para=”” especificar=”” el=”” método=”” http=”” utilizado=”” por=”” la=”” solicitud=”” de=”” integración.=”” ¡espero=”” que=”” esto=”” te=”” ayude!=”” avísame=”” si=”” tienes=”” alguna=”” otra=””></template{
“streamname”: “$input.params(‘stream-name’)”,
“data”: “$util.base64encode($input.json(‘$.data’))”,
“partitionkey”: “$input.path(‘$.partitionkey’)”
}
template
}
integration_http_method = “post”
depends_on = [
aws_api_gateway_resource.shippeo_api_resource_kinesis
]
}
“`
aquí, el bloque
request_parameters
se utiliza para especificar el encabezadocontent-type
. el bloquerequest_templates
se utiliza para especificar la plantilla de mapeo. en este caso, la plantilla de mapeo se especifica para el tipo de medioapplication/json
. si necesitas admitir otros tipos de medios, puedes agregar entradas adicionales al bloquerequest_templates
. por último, el parámetrointegration_http_method
se utiliza para especificar el método http utilizado por la solicitud de integración.¡espero que esto te ayude! avísame si tienes alguna otra pregunta.>