

# Integrações privadas para APIs REST no API Gateway
<a name="private-integration"></a>

Utilize uma integração privada para expor seus recursos HTTP/HTTPS em uma Amazon VPC para acesso por clientes fora da VPC. Isso estende o acesso a seus recursos privados da VPC além dos limites da VPC. Você pode controlar o acesso à sua API usando qualquer um dos [ métodos de autorização](apigateway-control-access-to-api.md) compatíveis com o API Gateway.

Para criar uma integração privada, primeiro crie um link de VPC. O API Gateway aceita links da VPC V2 para APIs REST. Os links da VPC V2 permitem criar integrações privadas que conectam sua API REST aos Application Load Balancers sem utilizar um Network Load Balancer. O uso de um Application Load Balancer permite que você se conecte às aplicações baseadas em contêineres do Amazon ECS e a muitos outros backends. Os links da VPC V1 são considerados um tipo de integração legado. Embora sejam aceitos no API Gateway, recomendamos que você não crie outros links da VPC V1.

## Considerações
<a name="private-integrations-considerations"></a>

As considerações a seguir podem afetar o uso de integrações privadas:
+ Todos os recursos devem ser de propriedade da mesma Conta da AWS. Isso inclui o balanceador de carga, o link de VPC e a API REST.
+ Por padrão, o tráfego de integração privada usa o protocolo HTTP. Para usar HTTPS, especifique um [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 contenha um nome de servidor seguro, como `https://example.com:443/test`.
+ Em uma integração privada, o API Gateway inclui a parte do [estágio](set-up-stages.md) do endpoint da API na solicitação para seus recursos de backend. Por exemplo, se você solicitar o estágio `test` de uma API, o API Gateway incluirá `test/path` na solicitação para sua integração privada. Para remover o nome do estágio da solicitação para os seus recursos de backend, use o [mapeamento de parâmetros](rest-api-parameter-mapping.md) para criar uma substituição para a variável `$context.requestOverride.path`.
+ Integrações privadas com AWS Cloud Map não são aceitas.

**Topics**
+ [Considerações](#private-integrations-considerations)
+ [Configurar links da VPC V2 no API Gateway](apigateway-vpc-links-v2.md)
+ [Configurar uma integração privada](set-up-private-integration.md)
+ [Integração privada utilizando links da VPC V1 (legado)](vpc-links-v1.md)

# Configurar links da VPC V2 no API Gateway
<a name="apigateway-vpc-links-v2"></a>

Os links de VPC permitem criar integrações privadas que conectem suas rotas de API a recursos privados em uma VPC, como Application Load Balancers ou aplicações baseadas em contêiner do Amazon ECS. A integração privada usa um link de VPC V2 para encapsular conexões entre o API Gateway e os recursos de VPC desejados. Você pode reutilizar links da VPC em diferentes recursos e APIs.

Quando um link de VPC é criado, o API Gateway cria e gerencia [interfaces de rede elásticas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) para o link de VPC V2 em sua conta. Esse processo pode levar alguns minutos. Quando um link de VPC V2 está pronto para uso, seu estado faz a transição de `PENDING` para `AVAILABLE`. 

**nota**  
Se nenhum tráfego for enviado pelo link da VPC por 60 dias, ele se tornará `INACTIVE`. Quando um link de VPC está em um estado `INACTIVE`, o API Gateway exclui todas as interfaces de rede do link de VPC. Isso faz com que as solicitações de API que dependem do link da VPC falhem. Se as solicitações de API forem retomadas, o API Gateway provisionará as interfaces de rede novamente. Pode levar alguns minutos para criar as interfaces de rede e reativar o link da VPC. Você pode usar o status do link da VPC para monitorar o estado do link da VPC.

## Criar um link da VPC V2 usando a AWS CLI
<a name="apigateway-vpc-links-v2-create"></a>

Para criar um link de VPC V2, todos os recursos envolvidos devem pertencer à mesma conta da AWS. O comando [create-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/create-vpc-link.html) indicado abaixo cria um link de VPC:

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

**nota**  
Os links da VPC V2 são imutáveis. Depois de criar um link de VPC V2, você não poderá alterar suas sub-redes ou grupos de segurança.

## Excluir um link da VPC V2 usando a AWS CLI
<a name="apigateway-vpc-links-v2-delete"></a>

O comando [delete-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/delete-vpc-link.html) indicado a seguir exclui um link de VPC.

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

## Disponibilidade por região
<a name="apigateway-vpc-links-v2-availability"></a>

Os links da VPC V2 são aceitos nas seguintes regiões e zonas de disponibilidade:

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

# Configurar uma integração privada
<a name="set-up-private-integration"></a>

Para criar uma integração privada com um Application Load Balancer ou Network Load Balancer, crie uma integração de proxy HTTP, especifique o [link da VPC V2](apigateway-vpc-links-v2.md) a ser usado e forneça o ARN de um Network Load Balancer ou um Application Load Balancer. Por padrão, o tráfego de integração privada usa o protocolo HTTP. Para usar HTTPS, especifique um [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 contenha um nome de servidor seguro, como `https://example.com:443/test`. Para ver um tutorial completo sobre como criar uma API REST com uma integração privada, consulte [Tutorial: Crie uma API REST com uma integração privada](getting-started-with-private-integration.md).

## Criar uma integração privada
<a name="set-up-private-integration-create"></a>

O procedimento a seguir mostra como criar uma integração privada que se conecte a um balanceador de carga utilizando um link da VPC V2.

------
#### [ Console de gerenciamento da AWS ]

Para ver um tutorial sobre como criar uma integração privada, consulte [Tutorial: Crie uma API REST com uma integração privada](getting-started-with-private-integration.md).

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

O comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/latest/api/API_PutIntegration.html) indicado abaixo cria uma integração privada que se conecta a um balanceador de carga utilizando um link da 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
```

Em vez de fornecer diretamente o ID da conexão, você pode usar uma variável de estágio. Ao implantar a API em um estágio, você define o ID do link da VPC V2. O comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/latest/api/API_PutIntegration.html) a seguir cria uma integração privada utilizando uma variável de estágio para o ID do link da 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}"
```

Inclua aspas duplas na expressão da variável de estágio (\$1\$1stageVariables.vpcLinkV2Id\$1) e insira um caractere de escape para \$1.

------
#### [ OpenAPI ]

Você pode configurar uma API com a integração privada importando o arquivo OpenAPI da API. As configurações são semelhantes às definições do OpenAPI de uma API com integrações de HTTP, com as seguintes exceções: 
+ Você deve definir explicitamente `connectionType` como `VPC_LINK`.
+ Você deve definir explicitamente `connectionId` como o ID de um `VpcLinkV2` ou como uma variável de estágio que faça referência ao ID de um `VpcLinkV2`.
+ O parâmetro `uri` na integração privada aponta para um endpoint de HTTP/HTTPS na VPC, mas é usado para configurar o cabeçalho `Host` da solicitação de integração.
+ O parâmetro `uri` na integração privada com um endpoint de HTTPS na VPC é usado para verificar o nome de domínio mencionado em relação ao nome no certificado instalado no VPC endpoint.

 Você pode usar uma variável de estágio para fazer referência ao ID do `VpcLinkV2`. Ou você pode atribuir o valor do ID diretamente ao `connectionId`. 

O arquivo OpenAPI em formato JSON a seguir mostra um exemplo de API com um link de VPC referenciado por uma variável de estágio (`${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"
    }
  }
}
```

------

## Atualizar uma integração privada
<a name="set-up-private-integration-update"></a>

O exemplo a seguir atualiza o link da VPC V2 para uma integração privada.

------
#### [ Console de gerenciamento da AWS ]

**Como atualizar uma integração privada**

1. Faça login no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API REST com uma integração privada.

1. Escolha o recurso e o método que usa uma integração privada.

1. Na guia **Solicitação de integração** em **Configurações de solicitação de integração**, selecione **Editar**.

1. Você pode editar a configuração da sua integração privada. Se você estiver usando atualmente um link da VPC V1, poderá alterá-lo para um link da VPC V2.

1. Escolha **Salvar**.

1. Implante a API novamente para que as alterações entrem em vigor.

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

O seguinte comando [update-integration](https://docs.aws.amazon.com/cli/latest/reference/latest/api/API_PutIntegration.html) atualiza uma integração privada para usar um link da 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\"}]"
```

------

# Integração privada utilizando links da VPC V1 (legado)
<a name="vpc-links-v1"></a>

**nota**  
A implementação de integrações privadas a seguir utiliza links da VPC V1. Os links da VPC V1 são recursos legados. Recomendamos que você utilize [links da VPC V2 para APIs REST](apigateway-vpc-links-v2.md).

Para criar uma integração privada, primeiro crie um link do Network Load Balancer. Seu Network Load Balancer deve ter um [listener](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) que envia solicitações para recursos em sua VPC. Para melhorar a disponibilidade da sua API, certifique-se de que o seu Network Load Balancer encaminhe o tráfego para recursos em mais de uma zona de disponibilidade na Região da AWS. Em seguida, você cria um link de VPC usado para conectar sua API e seu Network Load Balancer. Depois de criar um link de VPC, você cria integrações privadas para rotear o tráfego de sua API para recursos na VPC pelo link de VPC e pelo Network Load Balancer. O Network Load Balancer e a API devem pertencer à mesma Conta da AWS.

**Topics**
+ [Configurar um Network Load Balancer para integrações privadas do API Gateway (legado)](set-up-nlb-for-vpclink-using-console.md)
+ [Conceder permissões para o API Gateway criar um link de VPC (legado)](grant-permissions-to-create-vpclink.md)
+ [Configurar uma API do API Gateway com integrações privadas usando a AWS CLI (legado)](set-up-api-with-vpclink-cli.md)
+ [Contas do API Gateway usadas para integrações privadas (legado)](set-up-api-with-vpclink-accounts.md)

# Configurar um Network Load Balancer para integrações privadas do API Gateway (legado)
<a name="set-up-nlb-for-vpclink-using-console"></a>

**nota**  
A implementação de integrações privadas a seguir utiliza links da VPC V1. Os links da VPC V1 são recursos legados. Recomendamos que você utilize [links da VPC V2 para APIs REST](apigateway-vpc-links-v2.md).

 O procedimento a seguir descreve as etapas para configurar um Network Load Balancer (NLB) para as integrações privadas do API Gateway usando o console do Amazon EC2 e fornece referências para a obtenção de instruções detalhadas em cada etapa. 

Para cada VPC na qual você tem recursos, só é necessário configurar um NLB e um VPCLink. O NLB oferece suporte a vários [listeners](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) e [grupos de destino](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html) por NLB. É possível configurar cada serviço como um listener específico no NLB e usar um único VPCLink para se conectar ao NLB. Ao criar a integração privada no API Gateway, você define cada serviço usando a porta específica que é atribuída para cada serviço. Para obter mais informações, consulte [Tutorial: Crie uma API REST com uma integração privada](getting-started-with-private-integration.md). O Network Load Balancer e a API devem pertencer à mesma Conta da AWS.

**Para criar um Network Load Balancer para a integração privada usando o console do API Gateway**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Configure um servidor web em uma instância do Amazon EC2. Para ver um exemplo de configuração, consulte [Tutorial: Instalar um servidor web LAMP no Amazon Linux 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html). 

1. Crie um Network Load Balancer, registre a instância do EC2 com um grupo de destino e adicione o grupo de destino a um listener do Network Load Balancer. Para obter detalhes, siga as instruções em [Conceitos básicos de Network Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancer-getting-started.html). 

1. Após a criação do Network Load Balancer, faça o seguinte:

   1.  Anote o ARN do Network Load Balancer. Você precisará dele para criar um link de VPC no API Gateway para integrar a API aos recursos da VPC por trás do Network Load Balancer.

   1.  Desative a avaliação do grupo de segurança para o PrivateLink.
      + Para desativar a avaliação do grupo de segurança para o tráfego do PrivateLink usando o console, escolha a guia **Segurança** e **Editar**. Em **Configurações de segurança**, desmarque a opção **Aplicar regras de entrada ao tráfego do PrivateLink**.
      + Use o comando [set-security-groups](https://docs.aws.amazon.com/cli/latest/reference/elbv2/set-security-groups.html) indicado abaixo para desativar a avaliação do grupo de segurança referente ao tráfego do 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**  
Não adicione nenhuma dependência aos CIDRs do API Gateway, pois elas podem ser alteradas sem aviso prévio.

# Conceder permissões para o API Gateway criar um link de VPC (legado)
<a name="grant-permissions-to-create-vpclink"></a>

**nota**  
A implementação de integrações privadas a seguir utiliza links da VPC V1. Os links da VPC V1 são recursos legados. Recomendamos que você utilize [links da VPC V2 para APIs REST](apigateway-vpc-links-v2.md).

Para que possa criar e manter um link de VPC, você, ou um usuário em sua conta, deve ter as permissões para criar, excluir e visualizar as configurações de serviço do VPC endpoint, alterar as permissões de serviço do VPC endpoint e examinar os load balancers. Para conceder essas permissões, use as seguintes etapas. 

**Para conceder as permissões de criação, atualização e exclusão de um link da VPC**

1. Crie uma política do IAM semelhante a esta:

------
#### [ 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": "*"
           }
       ]
   }
   ```

------

   Se você quiser habilitar a marcação para o link de VPC, permita as operações de marcação. Para obter mais informações, consulte [Permitir operações de marcação](apigateway-tagging-iam-policy.md#allow-tagging).

1. Crie ou escolha uma função do IAM e anexe a política anterior à função.

1. Atribua a função do IAM a si mesmo ou ao usuário em sua conta que está criando os links da VPC.

# Configurar uma API do API Gateway com integrações privadas usando a AWS CLI (legado)
<a name="set-up-api-with-vpclink-cli"></a>

**nota**  
A implementação de integrações privadas a seguir utiliza links da VPC V1. Os links da VPC V1 são recursos legados. Recomendamos que você utilize [links da VPC V2 para APIs REST](apigateway-vpc-links-v2.md).

O tutorial a seguir mostra como usar a AWS CLI para criar um link de VPC e uma integração privada. Os seguintes pré-requisitos se aplicam:
+ É necessário ter um Network Load Balancer criado e configurado com a origem da VPC como o destino. Para obter mais informações, consulte [Configurar um Network Load Balancer para integrações privadas do API Gateway (legado)](set-up-nlb-for-vpclink-using-console.md). Isso deve ser feito na mesma Conta da AWS que a API. É necessário ter o ARN do Network Load Balancer para criar o link da VPC.
+ Para criar e gerenciar um `VpcLink`, é preciso ter permissões para criar um `VpcLink` na API. Não é necessário ter permissões para usar o `VpcLink`. Para obter mais informações, consulte [Conceder permissões para o API Gateway criar um link de VPC (legado)](grant-permissions-to-create-vpclink.md).

**Para configurar uma API com a integração privada usando a AWS CLI**

1. Use o comando [create-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-vpc-link.html) a seguir para criar um `VpcLink` para o Network Load Balancer 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
   ```

   A saída desse comando confirma o recebimento da solicitação e mostra o status `PENDING` da `VpcLink` que está sendo criada.

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

   Demora de 2 a 4 minutos para que o API Gateway conclua a criação do `VpcLink`. Quando a operação é concluída com êxito, o `status` é `AVAILABLE`. É possível verificar isso usando o comando [get-vpc-link](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-vpc-link.html) indicado abaixo:

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

   Se a operação falhar, você obterá o status `FAILED` e a `statusMessage` conterá uma mensagem de erro. Por exemplo, se você tentar criar um `VpcLink` com um Network Load Balancer que já esteja associado a um VPC endpoint, obterá a seguinte mensagem na propriedade `statusMessage`:

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

   Depois que a `VpcLink` for criada com sucesso, você poderá criar uma API e integrá-la ao recurso da VPC por meio da `VpcLink`. 

   Anote o valor de `id` do `VpcLink` recém-criado. Neste exemplo de saída, é `gim7c3`. Você precisará dele para configurar a integração privada.

1. Use o comando [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html) indicado abaixo para criar um recurso [https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html) do API Gateway:

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

   Anote o valor de `id` da `RestApi` e o valor de `rootResourceId` da `RestApi` no resultado obtido. Você precisa desse valor para executar outras operações na API. 

   Em seguida, crie uma API com apenas um método `GET` no recurso raiz (`/`) e integre o método ao `VpcLink`.

1. Use o comando [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) indicado abaixo para criar o método `GET /`:

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

   Se você não usa a integração de proxy com o `VpcLink`, também deve configurar pelo menos uma resposta do método para o código de status `200`. Use a integração de proxy aqui.

1. Depois de criar o método `GET /`, você configura a integração. Em uma integração privada, use o parâmetro `connection-id` para fornecer o ID do `VpcLink`. É possível usar uma variável de estágio ou inserir diretamente o ID do `VpcLink`. O parâmetro `uri` não é usado para rotear solicitações para o endpoint, mas sim para configurar o cabeçalho do `Host` e para a validação do certificado. 

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

   Use o comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) indicado abaixo para utilizar o ID do `VpcLink` diretamente na integração:

   ```
   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 ]

   Use o comando [put-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-integration.html) a seguir para fazer referência ao ID do link de VPC por meio de uma variável de estágio. Ao implantar a API em um estágio, você define o ID do link da 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}"
   ```

   Inclua aspas duplas na expressão da variável de estágio (`${stageVariables.vpcLinkId}`) e insira um caractere de escape para o caractere `$`.

------

   A qualquer momento, também é possível atualizar a integração para alterar o `connection-id`. Use o comando [update-integration](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-integration.html) indicado abaixo para atualizar a integração:

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

   Certifique-se de usar uma lista JSON transformada em string como o valor do parâmetro `patch-operations`.

   Como você usou a integração de proxy privada, a API agora está pronta para implantação e execução de testes.

1. Se você usou a variável de estágio para definir o `connection-id`, precisará implantar a API para testá-la. Use o comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) indicado abaixo para implantar a API com uma variável de estágio:

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

   Para atualizar a variável de estágio com um ID do `VpcLink` diferente (por exemplo, `asf9d7`), use o comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) indicado abaixo:

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

   Ao codificar a propriedade `connection-id` com o ID literal do `VpcLink`, não é necessário implantar a API para testá-la. Use o comando [test-invoke-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html) para testar a API antes que ela seja implantada. 

1. Use o seguinte comando para invocar a API:

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

   Também é possível inserir o URL de invocação da API em um navegador da web para visualizar o resultado.

# Contas do API Gateway usadas para integrações privadas (legado)
<a name="set-up-api-with-vpclink-accounts"></a>

Os seguintes IDs de conta do API Gateway específicos da região são adicionados automaticamente ao serviço de VPC endpoint como `AllowedPrincipals` quando você cria um `VpcLink`.


| **Região** | **ID da conta** | 
| --- | --- | 
| 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 | 