

# 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\"}]"
```

------