Objeto x-amazon-apigateway-integration - Amazon API Gateway

Objeto x-amazon-apigateway-integration

Especifica los detalles de la integración del backend utilizada para este método. Esta extensión es una propiedad extendida del objeto Operation de OpenAPI. El resultado es un objeto de integración de API Gateway.

Nombre de la propiedad Tipo Descripción
cacheKeyParameters Matriz de string Una lista de parámetros de la solicitud cuyos valores se van a almacenar en caché.
cacheNamespace string Un grupo de etiquetas específicas de la API de parámetros almacenados en caché relacionados.
connectionId string ID de un enlace VpcLink de la integración privada.
connectionType string Tipo de conexión de la integración. El valor válido es "VPC_LINK" para la integración privada o "INTERNET" para los demás casos.
credentials string

Para las credenciales basadas en roles de AWS IAM, especifique el ARN de un rol de IAM. Si no se especifica, las credenciales adoptan de manera predeterminada los permisos basados en recursos que se deben añadir manualmente para permitir a la API tener acceso al recurso. Para obtener más información, consulte Concesión de permisos mediante una política de recursos.

Nota: Cuando utilice credenciales de IAM, asegúrese de que los puntos de enlace regionales STS de AWS están habilitados para la región en la que se implementa esta API para obtener un rendimiento óptimo.

contentHandling string Tipos de conversión de codificación de la carga de solicitud. Los valores válidos son 1) CONVERT_TO_TEXT, para convertir una carga binaria en una cadena codificada en base64 o para convertir una carga de texto en una cadena codificada en utf-8 o para transferir la carga de texto de forma nativa sin modificaciones, y 2) CONVERT_TO_BINARY, para convertir una carga de texto en un blob descodificado en base64 o para transferir una carga binaria de forma nativa sin modificaciones.
httpMethod string El método HTTP utilizado en la solicitud de integración. Para las invocaciones de funciones de Lambda, el valor debe ser POST.
integrationSubtype string Especifica el subtipo de integración para una integración del servicio de AWS. Solo se admite para API HTTP. Para obtener información sobre los subtipos de integración compatibles, consulte Referencia del subtipo de integración.
passthroughBehavior string Especifica cómo se pasa una carga de solicitud de tipo de contenido sin asignar a través de la solicitud de integración sin modificación. Los valores admitidos son when_no_templates, when_no_match y never. Para obtener más información, consulte Integration.passthroughBehavior.
payloadFormatVersion string Especifica el formato de la carga enviada a una integración. Es necesario para las API HTTP. Para las API HTTP, los valores admitidos para las integraciones de proxy Lambda son 1.0 y 2.0. Para el resto de integraciones, 1.0 es el único valor admitido. Para obtener más información, consulte Creación de integraciones de proxy de AWS Lambda para las API de HTTP en API Gateway y Referencia del subtipo de integración.
requestParameters Objeto x-amazon-apigateway-integration.requestParameters

Para API REST, especifica las asignaciones de los parámetros de solicitud de método a los parámetros de solicitud de integración. Los parámetros de solicitud admitidos son querystring, path, header y body.

Para las API HTTP, los parámetros de solicitud son un mapeo de clave-valor que especifica los parámetros que se pasan a integraciones de AWS_PROXY con integrationSubtype especificado. Puede proporcionar valores estáticos o datos de solicitud de mapeo, variables de etapa o variables de contexto que se evalúan en tiempo de ejecución. Para obtener más información, consulte Creación de integraciones de servicio de AWS para las API de HTTP en API Gateway.

requestTemplates Objeto x-amazon-apigateway-integration.requestTemplates Plantillas de mapeo para una carga de solicitud de tipos MIME especificados.
responses Objeto x-amazon-apigateway-integration.responses Define las respuestas del método y especifica las asignaciones de parámetros o de carga deseadas desde respuestas de integración a respuestas de método.
timeoutInMillis integer Tiempos de espera de la integración comprendidos entre 50 ms y 29.000 ms.
type string

El tipo de integración con el backend especificado. Los valores válidos son:

  • http o http_proxy: para la integración con un backend HTTP.

  • aws_proxy: para la integración con las funciones de AWS Lambda.

  • aws: para la integración con las funciones de AWS Lambda u otros servicios de AWS, como Amazon DynamoDB, Amazon Simple Notification Service o Amazon Simple Queue Service.

  • mock, para la integración con API Gateway sin invocar ningún backend.

Para obtener más información sobre los tipos de integración, consulte integration:type.

tlsConfig Objeto x-amazon-apigateway-integration.tlsConfig Especifica la configuración de TLS para una integración.
uri string El URI del punto de enlace del backend. Para integraciones del tipo aws, este es un valor de ARN. Para la integración HTTP, esta es la dirección URL del punto de enlace HTTP incluido el esquema https o http.

Ejemplos de x-amazon-apigateway-integration

En API HTTP, puede definir integraciones en la sección de componentes de la definición de OpenAPI. Para obtener más información, consulte Objeto x-amazon-apigateway-integrations.

"x-amazon-apigateway-integration": { "$ref": "#/components/x-amazon-apigateway-integrations/integration1" }

El siguiente ejemplo se crea una integración con una función de Lambda. Para fines de demostración, en las plantillas de asignación de ejemplo en requestTemplates y responseTemplates de los ejemplos que aparecen a continuación se asume que se aplica la siguiente carga con formato JSON: { "name":"value_1", "key":"value_2", "redirect": {"url" :"..."} } para generar una salida JSON { "stage":"value_1", "user-id":"value_2" } o una salida XML <stage>value_1</stage>.

"x-amazon-apigateway-integration" : { "type" : "aws", "uri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:012345678901:function:HelloWorld/invocations", "httpMethod" : "POST", "credentials" : "arn:aws:iam::012345678901:role/apigateway-invoke-lambda-exec-role", "requestTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " }, "requestParameters" : { "integration.request.path.stage" : "method.request.querystring.version", "integration.request.querystring.provider" : "method.request.querystring.vendor" }, "cacheNamespace" : "cache namespace", "cacheKeyParameters" : [], "responses" : { "2\\d{2}" : { "statusCode" : "200", "responseParameters" : { "method.response.header.requestId" : "integration.response.header.cid" }, "responseTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " } }, "302" : { "statusCode" : "302", "responseParameters" : { "method.response.header.Location" : "integration.response.body.redirect.url" } }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" } } } }

Tenga en cuenta que las comillas dobles (") de la cadena JSON en las plantillas de mapeo deben incluirse en una secuencia de escape (\").