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
Inicie sesión en la consola de API Gateway, en https://console.aws.amazon.com/apigateway.
Elija una API de REST con una integración privada.
Elija el recurso y el método que utiliza una integración privada.
En la pestaña Solicitud de integración, en Configuración de solicitud de integración, elija Editar.
-
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.
Seleccione Save.
-
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\"}]"