Configuración de una integración privada - Amazon API Gateway

Configuración de una integración privada

Para crear una integración privada con un equilibrador de carga de aplicación o un equilibrador de carga de red, cree una integración de proxy HTTP, especifique el enlace de VPC V2 que se va a utilizar y proporcione el ARN de un equilibrador de carga de red o un equilibrador de carga de aplicación. De forma predeterminada, el tráfico de integración privada utiliza el protocolo HTTP. Para usar HTTPS, especifique un uri que contenga un nombre de servidor seguro, como https://example.com:443/test. Para ver un tutorial completo sobre cómo crear una API de REST con una integración privada, consulte Tutorial: Creación de una API de REST con una integración privada.

Creación de una integración privada

El procedimiento siguiente muestra cómo crear una integración privada que se conecte a un equilibrador de carga mediante un enlace de VPC V2.

Consola de administración de AWS

Para ver un tutorial sobre cómo crear una integración privada, consulte Tutorial: Creación de una API de REST con una integración privada.

AWS CLI

El siguiente comando put-integration permite crear una integración privada que se conecta a un equilibrador de carga mediante un enlace de VPC V2:

aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id aaa000 \ --integration-target 'arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011' \ --uri 'https://example.com:443/path' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id bbb111

En lugar de proporcionar directamente el ID de conexión, puede utilizar una variable de etapa. Cuando implementa la API en una etapa, se establece el ID de enlace de VPC V2. El siguiente comando put-integration crea una integración privada mediante una variable de etapa para el ID de enlace de VPC V2:

aws apigateway put-integration \ --rest-api-id abcdef123 \ --resource-id aaa000 \ --integration-target 'arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011' \ --uri 'https://example.com:443/path' \ --http-method GET \ --type HTTP_PROXY \ --integration-http-method GET \ --connection-type VPC_LINK \ --connection-id "\${stageVariables.vpcLinkV2Id}"

No olvide utilizar comillas dobles en la expresión de la variable de etapa (${stageVariables.vpcLinkV2Id}) y utilizar caracteres de escape con $.

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 VpcLinkV2 o en una variable de etapa que haga referencia al ID de un enlace VpcLinkV2.

  • El parámetro uri de la integración privada apunta a un punto de conexión 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 conexión HTTPS en la VPC se utiliza para contrastar el nombre de dominio especificado con el del certificado instalado en el punto de conexión de VPC.

Puede utilizar una variable de etapa para hacer referencia al ID de VpcLinkV2. 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.vpcLinkIdV2}):

{ "swagger": "2.0", "info": { "version": "2017-11-17T04:40:23Z", "title": "MyApiWithVpcLinkV2" }, "host": "abcdef123.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": "https://example.com:443/path", "passthroughBehavior": "when_no_match", "connectionType": "VPC_LINK", "connectionId": "${stageVariables.vpcLinkV2Id}", "integration-target": "arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011", "httpMethod": "GET", "type": "http_proxy" } } } }, "definitions": { "Empty": { "type": "object", "title": "Empty Schema" } } }

Actualización de una integración privada

En el siguiente ejemplo se actualiza el enlace de VPC V2 para una integración privada.

Consola de administración de AWS
Actualización de una integración privada
  1. Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway.

  2. Elija una API de REST con una integración privada.

  3. Elija el recurso y el método que utiliza una integración privada.

  4. En la pestaña Solicitud de integración, en Configuración de solicitud de integración, elija Editar.

  5. Puede editar la configuración de la integración privada. Si actualmente utiliza un enlace de VPC V1, puede cambiar el enlace de la VPC por un enlace de VPC V2.

  6. Seleccione Save.

  7. Vuelva a implementar la API para que los cambios se apliquen.

AWS CLI

El siguiente comando update-integration actualiza una integración privada para usar un enlace de VPC V2:

aws apigateway update-integration \ --rest-api-id a1b2c3d4e5 \ --resource-id a1b2c3 \ --http-method GET \ --patch-operations "[{\"op\":\"replace\",\"path\":\"/connectionId\",\"value\":\"pk0000\"}, {\"op\":\"replace\",\"path\":\"/uri\",\"value\":\"http://example.com\"}, {\"op\":\"replace\",\"path\":\"/integrationTarget\",\"value\":\"arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/app/myLoadBalancerName/1234567891011\"}]"