Configuración de una API con integraciones privadas a través de OpenAPI - Amazon API Gateway

Configuración de una API con integraciones privadas a través de OpenAPI

Puede configurar una API con la integración privada importando el archivo de OpenAPI de la API. La configuración es similar a las definiciones de OpenAPI de una API con integraciones HTTP, con las siguientes excepciones:

  • Debe establecer connectionType explícitamente en VPC_LINK.

  • Debe establecer connectionId explícitamente en el ID de un enlace VpcLink o en una variable de etapa que haga referencia al ID de un enlace VpcLink.

  • El parámetro uri de la integración privada apunta a un punto de enlace HTTP/HTTPS de la VPC, pero se utiliza para configurar el encabezado Host de la solicitud de integración.

  • El parámetro uri de la integración privada que tiene un punto de enlace HTTPS en la VPC se utiliza para contrastar el nombre de dominio especificado con el del certificado instalado en el punto de enlace de la VPC.

Puede utilizar una variable de etapa para hacer referencia al ID de VpcLink. También puede asignar el valor del ID directamente a connectionId.

El archivo de OpenAPI con formato JSON contiene un ejemplo de una API con un enlace VPC al que hace referencia una variable de etapa (${stageVariables.vpcLinkId}):

OpenAPI 2.0
{ "swagger": "2.0", "info": { "version": "2017-11-17T04:40:23Z", "title": "MyApiWithVpcLink" }, "host": "p3wocvip9a.execute-api.us-west-2.amazonaws.com", "basePath": "/test", "schemes": [ "https" ], "paths": { "/": { "get": { "produces": [ "application/json" ], "responses": { "200": { "description": "200 response", "schema": { "$ref": "#/definitions/Empty" } } }, "x-amazon-apigateway-integration": { "responses": { "default": { "statusCode": "200" } }, "uri": "http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com", "passthroughBehavior": "when_no_match", "connectionType": "VPC_LINK", "connectionId": "${stageVariables.vpcLinkId}", "httpMethod": "GET", "type": "http_proxy" } } } }, "definitions": { "Empty": { "type": "object", "title": "Empty Schema" } } }