

# Integraciones privadas para las API de REST en API Gateway
<a name="private-integration"></a>

Use una integración privada para exponer los recursos HTTP/HTTPS dentro de una Amazon VPC para que puedan acceder los clientes que están fuera de la VPC. Esto amplía el acceso a los recursos de la VPC privada más allá de los límites de esta. Puede controlar el acceso a la API mediante cualquiera de los [ métodos de autorización](apigateway-control-access-to-api.md) admitidos por API Gateway.

Para crear una integración privada, primero debe crear un enlace de la VPC. API Gateway admite enlaces de VPC V2 para las API de REST. Los enlaces de VPC V2 le permiten crear integraciones privadas que conectan la API de REST a los equilibradores de carga de aplicación sin usar un equilibrador de carga de red. El uso de un equilibrador de carga de aplicación le permite conectarse a las aplicaciones basadas en contenedores de Amazon ECS y a muchos otros backend. Los enlaces de VPC V1 se consideran un tipo de integración heredado. Aunque API Gateway los admite, le recomendamos que no cree nuevos enlaces de VPC V1.

## Consideraciones
<a name="private-integrations-considerations"></a>

Las siguientes consideraciones pueden afectar al uso de las integraciones privadas:
+ Todos los recursos deben pertenecer a la misma Cuenta de AWS. Esto incluye el equilibrador de carga, el enlace de la VPC y la API de REST.
+ De forma predeterminada, el tráfico de integración privada utiliza el protocolo HTTP. Para usar HTTPS, especifique un [https://docs.aws.amazon.com/apigateway/latest/api/API_PutIntegration.html#apigw-PutIntegration-request-uri](https://docs.aws.amazon.com/apigateway/latest/api/API_PutIntegration.html#apigw-PutIntegration-request-uri) que contenga un nombre de servidor seguro, como `https://example.com:443/test`.
+ En una integración privada, API Gateway incluye la parte de [etapa](set-up-stages.md) del punto de conexión de la API en la solicitud a los recursos de backend. Por ejemplo, si solicita la etapa `test` de una API, API Gateway incluye `test/path` en la solicitud a la integración privada. Para eliminar el nombre de etapa de la solicitud a los recursos de backend, utilice [Asignación de parámetros](rest-api-parameter-mapping.md) para crear una invalidación para la variable `$context.requestOverride.path`.
+ No se admiten las integraciones privadas con AWS Cloud Map.

**Topics**
+ [Consideraciones](#private-integrations-considerations)
+ [Configuración de enlaces de VPC V2 en API Gateway](apigateway-vpc-links-v2.md)
+ [Configuración de una integración privada](set-up-private-integration.md)
+ [Integración privada mediante enlaces de VPC V1 (heredado)](vpc-links-v1.md)

# Configuración de enlaces de VPC V2 en API Gateway
<a name="apigateway-vpc-links-v2"></a>

Los enlaces de la VPC le permiten crear integraciones privadas que conectan las rutas de la API a los recursos privados de una VPC, como equilibradores de carga de aplicaciones o aplicaciones basadas en contenedores de Amazon ECS. Una integración privada utiliza un enlace de VPC V2 para encapsular las conexiones entre API Gateway y los recursos de la VPC de destino. Puede reutilizar enlaces de VPC a través de diferentes recursos y API.

Cuando crea un enlace de la VPC, API Gateway crea y administra [interfaces de red elástica](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) para el enlace de VPC V2 en la cuenta. Este proceso puede tardar unos minutos. Cuando un enlace de VPC V2 está listo para usar, su estado cambia de `PENDING` a `AVAILABLE`. 

**nota**  
Si no se envía tráfico a través del enlace de la VPC durante 60 días, se convierte en `INACTIVE`. Cuando un enlace de la VPC tiene el estado `INACTIVE`, API Gateway elimina todas las interfaces de red del enlace de la VPC. Esto hace que las solicitudes de API que dependen del enlace de la VPC fallen. Si las solicitudes de la API se reanudan, API Gateway reaprovisiona las interfaces de red. Puede tardar unos minutos en crear las interfaces de red y reactivar el enlace de la VPC. Puede utilizar el estado del enlace de la VPC para supervisar el estado del enlace de la VPC.

## Creación de un enlace de VPC V2 mediante la AWS CLI
<a name="apigateway-vpc-links-v2-create"></a>

Para crear un enlace de VPC V2, todos los recursos involucrados deben ser propiedad de la misma cuenta de AWS. El siguiente comando [create-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-vpc-link.html) permite crear un enlace de la VPC:

```
aws apigatewayv2 create-vpc-link --name MyVpcLink \
    --subnet-ids subnet-aaaa subnet-bbbb \
    --security-group-ids sg1234 sg5678
```

**nota**  
Los enlaces de VPC V2 son inmutables. Después de crear un enlace de VPC V2, no puede cambiar sus subredes o grupos de seguridad.

## Eliminación de un enlace de VPC V2 mediante la AWS CLI
<a name="apigateway-vpc-links-v2-delete"></a>

El siguiente comando [delete-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/delete-vpc-link.html) permite eliminar un enlace de la VPC.

```
aws apigatewayv2 delete-vpc-link --vpc-link-id abcd123
```

## Disponibilidad por región
<a name="apigateway-vpc-links-v2-availability"></a>

Los enlaces de VPC V2 se admiten en las siguientes regiones y zonas de disponibilidad:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/apigateway-vpc-links-v2.html)

# Configuración de una integración privada
<a name="set-up-private-integration"></a>

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](apigateway-vpc-links-v2.md) 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 [https://docs.aws.amazon.com/apigateway/latest/api/API_PutIntegration.html#apigw-PutIntegration-request-uri](https://docs.aws.amazon.com/apigateway/latest/api/API_PutIntegration.html#apigw-PutIntegration-request-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](getting-started-with-private-integration.md).

## Creación de una integración privada
<a name="set-up-private-integration-create"></a>

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](getting-started-with-private-integration.md).

------
#### [ AWS CLI ]

El siguiente comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/latest/api/API_PutIntegration.html) 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](https://docs.aws.amazon.com/cli/latest/reference/latest/api/API_PutIntegration.html) 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 (\$1\$1stageVariables.vpcLinkV2Id\$1) y utilizar caracteres de escape con \$1.

------
#### [ 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
<a name="set-up-private-integration-update"></a>

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](https://console.aws.amazon.com/apigateway).

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

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

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

1. 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.

1. Seleccione **Save**.

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

------
#### [ AWS CLI ]

El siguiente comando [update-integration](https://docs.aws.amazon.com/cli/latest/reference/latest/api/API_PutIntegration.html) 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\"}]"
```

------

# Integración privada mediante enlaces de VPC V1 (heredado)
<a name="vpc-links-v1"></a>

**nota**  
La siguiente implementación de integraciones privadas utiliza enlaces de VPC V1. Los enlaces de VPC V1 son recursos heredados. Se recomienda utilizar los [enlaces de VPC V2 para las API de REST](apigateway-vpc-links-v2.md).

Para crear una integración privada, primero debe crear un Network Load Balancer. El Network Load Balancer debe tener un [agente de escucha](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) que envíe las solicitudes a los recursos de la VPC. Para mejorar la disponibilidad de la API, asegúrese de que el Network Load Balancer dirija el tráfico a los recursos de varias zonas de disponibilidad de Región de AWS. A continuación, debe crear un vínculo de VPC que utilizará para conectar la API y el Network Load Balancer. Después de crear un vínculo de VPC, se crean integraciones privadas para enviar el tráfico de la API a los recursos de esta a través de dicho vínculo y el Network Load Balancer. El equilibrador de carga de red y la API deben pertenecer a la misma Cuenta de AWS.

**Topics**
+ [Configuración de un equilibrador de carga de red para integraciones privadas de API Gateway (heredado)](set-up-nlb-for-vpclink-using-console.md)
+ [Concesión de permisos para API Gateway para crear un enlace de VPC (heredado)](grant-permissions-to-create-vpclink.md)
+ [Configuración de una API de API Gateway con integraciones privadas a través de la AWS CLI (heredado)](set-up-api-with-vpclink-cli.md)
+ [Cuentas de API Gateway utilizadas para integraciones privadas (heredado)](set-up-api-with-vpclink-accounts.md)

# Configuración de un equilibrador de carga de red para integraciones privadas de API Gateway (heredado)
<a name="set-up-nlb-for-vpclink-using-console"></a>

**nota**  
La siguiente implementación de integraciones privadas utiliza enlaces de VPC V1. Los enlaces de VPC V1 son recursos heredados. Se recomienda utilizar los [enlaces de VPC V2 para las API de REST](apigateway-vpc-links-v2.md).

 En el siguiente procedimiento, se describen los pasos necesarios para configurar un Network Load Balancer para integraciones privadas de API Gateway utilizando la consola de Amazon EC2 y se incluyen referencias a instrucciones detalladas sobre cada paso. 

Para cada VPC en la que disponga de recursos, solo necesita configurar un NLB y un VPCLink. El NLB admite varios [agentes de escucha](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) y [grupos de destino](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html) por NLB. Puede configurar cada servicio como un agente de escucha específico en el NLB y utilizar un único VPCLink para conectarse al NLB. Al crear la integración privada en API Gateway, defina cada servicio utilizando el puerto específico asignado a cada servicio. Para obtener más información, consulte [Tutorial: Creación de una API de REST con una integración privada](getting-started-with-private-integration.md). El equilibrador de carga de red y la API deben pertenecer a la misma Cuenta de AWS.

**Si desea crear un Network Load Balancer privada para una integración privada con la consola de API Gateway**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Instale un servidor web en una instancia de Amazon EC2. Para ver una configuración de ejemplo, consulte [Instalación de un servidor web LAMP en Amazon Linux 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html). 

1. Cree un Network Load Balancer, registre la instancia EC2 con un grupo de destino y agregue el grupo de destino a un agente de escucha del Network Load Balancer. Para obtener información más detallada, siga las instrucciones que se describen en [Introducción a los balanceadores de carga de red](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancer-getting-started.html). 

1. Una vez que se haya creado el equilibrador de carga de red, haga lo siguiente:

   1.  Anote el ARN del equilibrador de carga de red. Lo necesitará para crear un enlace VPC en API Gateway e integrar la API con los recurso de la VPC detrás del Network Load Balancer.

   1.  Desactive la evaluación del grupo de seguridad para PrivateLink.
      + Para desactivar la evaluación de grupos de seguridad para el tráfico de PrivateLink mediante la consola, puede seleccionar la pestaña **Seguridad** y, a continuación, **Editar**. En **Configuración de seguridad**, seleccione **Aplicar reglas de entrada al tráfico de PrivateLink**.
      + Utilice el siguiente comando [set-security-groups](https://docs.aws.amazon.com/cli/latest/reference/elbv2/set-security-groups.html) para desactivar la evaluación de grupos de seguridad para el tráfico de PrivateLink:

        ```
        aws elbv2 set-security-groups --load-balancer-arn arn:aws:elasticloadbalancing:us-east-2:111122223333:loadbalancer/net/my-loadbalancer/abc12345 \
          --security-groups sg-123345a --enforce-security-group-inbound-rules-on-private-link-traffic off
        ```

**nota**  
No agregue ninguna dependencia a los CIDR de API Gateway, ya que es probable que cambien sin previo aviso.

# Concesión de permisos para API Gateway para crear un enlace de VPC (heredado)
<a name="grant-permissions-to-create-vpclink"></a>

**nota**  
La siguiente implementación de integraciones privadas utiliza enlaces de VPC V1. Los enlaces de VPC V1 son recursos heredados. Se recomienda utilizar los [enlaces de VPC V2 para las API de REST](apigateway-vpc-links-v2.md).

Para que usted o un usuario de la cuenta puedan crear y mantener un enlace VPC, deben tener permiso para crear, eliminar y consultar configuraciones de servicios de punto de conexión de VPC y examinar los balanceadores de carga. Para conceder este tipo de permisos, siga estos pasos. 

**Para conceder permisos para crear, actualizar y eliminar un enlace VPC**

1. Cree una política de IAM similar a la siguiente:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "apigateway:POST",
                   "apigateway:GET",
                   "apigateway:PATCH",
                   "apigateway:DELETE"
               ],
               "Resource": [
                   "arn:aws:apigateway:us-east-1::/vpclinks",
                   "arn:aws:apigateway:us-east-1::/vpclinks/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticloadbalancing:DescribeLoadBalancers"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateVpcEndpointServiceConfiguration",
                   "ec2:DeleteVpcEndpointServiceConfigurations",
                   "ec2:DescribeVpcEndpointServiceConfigurations",
                   "ec2:ModifyVpcEndpointServicePermissions"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   Si desea habilitar el etiquetado para el enlace de VPC, asegúrese de permitir las operaciones de etiquetado. Para obtener más información, consulte [Permitir operaciones de etiquetado](apigateway-tagging-iam-policy.md#allow-tagging).

1. Cree o seleccione un rol de IAM y asocie la política anterior al rol.

1. Asigne el rol de IAM a sí mismo o al usuario de la cuenta que está creando los enlaces VPC.

# Configuración de una API de API Gateway con integraciones privadas a través de la AWS CLI (heredado)
<a name="set-up-api-with-vpclink-cli"></a>

**nota**  
La siguiente implementación de integraciones privadas utiliza enlaces de VPC V1. Los enlaces de VPC V1 son recursos heredados. Se recomienda utilizar los [enlaces de VPC V2 para las API de REST](apigateway-vpc-links-v2.md).

En el siguiente tutorial se muestra cómo utilizar la AWS CLI para crear un enlace de VPC y una integración privada. Los siguientes requisitos previos son necesarios:
+ Es necesario haber creado y configurado un Equilibrador de carga de red con el origen de la VPC como el objetivo. Para obtener más información, consulte [Configuración de un equilibrador de carga de red para integraciones privadas de API Gateway (heredado)](set-up-nlb-for-vpclink-using-console.md). Este debe estar en la misma Cuenta de AWS que la API. Necesita el ARN del Equilibrador de carga de red para crear el enlace de la VPC.
+ Para crear y administrar un `VpcLink`, necesita los permisos necesarios para crear un `VpcLink` en la API. No necesita los permisos para utilizar el `VpcLink`. Para obtener más información, consulte [Concesión de permisos para API Gateway para crear un enlace de VPC (heredado)](grant-permissions-to-create-vpclink.md).

**Para configurar una API con integración privada a través de la AWS CLI**

1. Utilice el siguiente comando [create-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-vpc-link.html) para crear un `VpcLink` que apunte al equilibrador de carga de red especificado:

   ```
   aws apigateway create-vpc-link \
       --name my-test-vpc-link \
       --target-arns arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef
   ```

   El resultado de este comando confirma la recepción de la solicitud y muestra el estado `PENDING` para `VpcLink` que se está creando.

   ```
   {
       "status": "PENDING", 
       "targetArns": [
           "arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-vpclink-test-nlb/1234567890abcdef"
       ], 
       "id": "gim7c3", 
       "name": "my-test-vpc-link"
   }
   ```

   API Gateway tarda de 2 a 4 minutos en completar la creación de `VpcLink`. Si la operación finaliza correctamente, el valor de `status` es `AVAILABLE`. Puede verificarlo llamando al siguiente comando [get-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-vpc-link.html):

   ```
   aws apigateway get-vpc-link --vpc-link-id gim7c3
   ```

   Si se produce un error en la operación, obtendrá el estado `FAILED` y `statusMessage` contendrá el mensaje de error. Por ejemplo, si intenta crear un enlace `VpcLink` con un equilibrador de carga de red que ya está asociado a un punto de conexión de VPC, obtendrá lo siguiente en la propiedad `statusMessage`:

   ```
   "NLB is already associated with another VPC Endpoint Service"
   ```

   Después de que se cree `VpcLink` correctamente, puede crear una API e integrarla con el recurso de la VPC a través de `VpcLink`. 

   Anote el valor de `id` del `VpcLink` recién creado. En este resultado de ejemplo, es `gim7c3`. Lo necesitará para configurar la integración privada.

1. Utilice el siguiente comando [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html) para crear un recurso [https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html) de API Gateway:

   ```
   aws apigateway create-rest-api --name 'My VPC Link Test'
   ```

   Anote el valor de `id` de `RestApi` y el valor de `rootResourceId` de `RestApi` del resultado devuelto. Necesitará este valor para realizar otras operaciones en la API. 

   A continuación, cree una API con solo un método `GET` en el recurso raíz (`/`) e integre el método con el `VpcLink`.

1. Utilice el siguiente comando [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) para crear el método `GET /`:

   ```
   aws apigateway put-method \
          --rest-api-id  abcdef123 \
          --resource-id skpp60rab7 \
          --http-method GET \
          --authorization-type "NONE"
   ```

   Si no utiliza la integración de proxy con `VpcLink`, también debe configurar al menos un método de respuesta del código de estado `200`. En este caso, utilizará la integración de proxy.

1. Tras crear el método `GET /`, se configura la integración. En el caso de una integración privada, se utiliza el parámetro `connection-id` para proporcionar el ID de `VpcLink`. Puede utilizar una variable de fase o ingresar directamente el ID de `VpcLink`. El parámetro `uri` no se utiliza para direccionar las solicitudes al punto de conexión, sino para configurar el encabezado `Host` y validar el certificado. 

------
#### [ Use the VPC link ID ]

   Utilice el siguiente comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) para usar el ID de `VpcLink` directamente en la integración:

   ```
   aws apigateway put-integration \
       --rest-api-id abcdef123 \
       --resource-id skpp60rab7 \
       --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \
       --http-method GET \
       --type HTTP_PROXY \
       --integration-http-method GET \
       --connection-type VPC_LINK \
       --connection-id gim7c3
   ```

------
#### [ Use a stage variable ]

   Utilice el siguiente comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) para usar una variable de etapa para hacer referencia al ID de enlace de VPC. Cuando implementa la API en una etapa, se establece el ID de enlace de la VPC.

   ```
   aws apigateway put-integration \
       --rest-api-id abcdef123 \
       --resource-id skpp60rab7 \
       --uri 'http://my-vpclink-test-nlb-1234567890abcdef.us-east-2.amazonaws.com' \
       --http-method GET \
       --type HTTP_PROXY \
       --integration-http-method GET \
       --connection-type VPC_LINK \
       --connection-id "\${stageVariables.vpcLinkId}"
   ```

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

------

   En cualquier momento, también puede actualizar la integración para cambiar el `connection-id`. Utilice el siguiente comando [update-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-integration.html) para actualizar su integración:

   ```
    aws apigateway update-integration \
       --rest-api-id abcdef123 \
       --resource-id skpp60rab7 \
       --http-method GET \
       --patch-operations '[{"op":"replace","path":"/connectionId","value":"${stageVariables.vpcLinkId}"}]'
   ```

   No olvide utilizar una lista JSON con forma de cadena como valor del parámetro `patch-operations`.

   Puesto que ha utilizado la integración de proxy privada, ahora la API está lista para la implementación y ejecuciones de pruebas.

1. Si usó la variable de etapa para definir el `connection-id`, necesita implementar la API para probarla. Utilice el siguiente comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) para implementar la API con una variable de etapa:

   ```
   aws apigateway create-deployment \
       --rest-api-id abcdef123 \
       --stage-name test \
       --variables vpcLinkId=gim7c3
   ```

   Para actualizar la variable de etapa con un ID de `VpcLink` diferente (por ejemplo, `asf9d7`), utilice el siguiente comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html):

   ```
   aws apigateway update-stage \
       --rest-api-id abcdef123 \
       --stage-name test \
       --patch-operations op=replace,path='/variables/vpcLinkId',value='asf9d7'
   ```

   Si codifica la propiedad `connection-id` con el literal del ID de `VpcLink`, no necesita implementar la API para probarla. Use el comando [test-invoke-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html) para probar la API antes de implementarla. 

1. Use los siguientes comandos para invocar la API:

   ```
   curl -X GET https://abcdef123.execute-api.us-east-2.amazonaws.com/test
   ```

   Si lo desea, también puede ingresar la URL de invocación de la API en un navegador web para ver los resultados.

# Cuentas de API Gateway utilizadas para integraciones privadas (heredado)
<a name="set-up-api-with-vpclink-accounts"></a>

Los siguientes ID de cuenta de API Gateway específicos de la región se agregan automáticamente al servicio de punto de conexión de VPC como `AllowedPrincipals` cuando se crea un `VpcLink`.


| **Región** | **ID de cuenta** | 
| --- | --- | 
| us-east-1 | 392220576650 | 
| us-east-2 | 718770453195 | 
| us-west-1 | 968246515281 | 
| us-west-2 | 109351309407 | 
| ca-central-1 | 796887884028 | 
| eu-west-1 | 631144002099 | 
| eu-west-2 | 544388816663 | 
| eu-west-3 | 061510835048 | 
| eu-central-1 | 474240146802 | 
| eu-central-2 | 166639821150 | 
| eu-north-1 | 394634713161 | 
| eu-south-1 | 753362059629 | 
| eu-south-2 | 359345898052 | 
| ap-northeast-1 | 969236854626 | 
| ap-northeast-2 | 020402002396 | 
| ap-northeast-3 | 360671645888 | 
| ap-southeast-1 | 195145609632 | 
| ap-southeast-2 | 798376113853 | 
| ap-southeast-3 | 652364314486 | 
| ap-southeast-4 | 849137399833 | 
| ap-south-1 | 507069717855 | 
| ap-south-2 | 644042651268 | 
| ap-east-1 | 174803364771 | 
| sa-east-1 | 287228555773 | 
| me-south-1 | 855739686837 | 
| me-central-1 | 614065512851 | 