Criar integrações privadas para APIs HTTP - Amazon API Gateway

Criar integrações privadas para APIs HTTP

As integrações privadas permitem que você crie integrações de API com recursos privados em uma VPC, como Application Load Balancers ou aplicações baseadas em contêiner do Amazon ECS.

Você pode expor seus recursos em uma VPC para acesso por clientes fora da VPC usando integrações privadas. Você pode controlar o acesso à sua API usando qualquer um dos métodos de autorização compatíveis com o API Gateway.

Para criar uma integração privada, primeiro crie um link de VPC. Para saber mais sobre links de VPC, consulte Configurar links de VPC para APIs HTTP.

Depois de criar um link de VPC, é possível configurar integrações privadas que se conectam a um Application Load Balancer, Network Load Balancer ou a recursos registrados em um serviço do AWS Cloud Map.

Para criar uma integração privada, todos os recursos devem pertencer à mesma conta da AWS (incluindo o balanceador de carga ou o serviço do AWS Cloud Map, link de VPC e API HTTP).

Por padrão, o tráfego de integração privada usa o protocolo HTTP. Você pode especificar um tlsConfig se o tráfego de integração privada for necessário para usar HTTPS.

nota

Para integrações privadas, o API Gateway inclui a parte do estágio do endpoint da API na solicitação para seus recursos de backend. Por exemplo, uma solicitação para o estágio test de uma API inclui test/route-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 para substituir o caminho da solicitação para $request.path.

Criar uma integração privada usando um Application Load Balancer ou Network Load Balancer

Antes de criar uma integração privada, crie um link de VPC. Para saber mais sobre links de VPC, consulte Configurar links de VPC para APIs HTTP.

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 de VPC a ser usado e forneça o ARN de listener do balanceador de carga.

Use o comando a seguir para criar uma integração privada que se conecte a um load balancer usando um link VPC.

aws apigatewayv2 create-integration --api-id api-id --integration-type HTTP_PROXY \ --integration-method GET --connection-type VPC_LINK \ --connection-id VPC-link-ID \ --integration-uri arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/my-load-balancer/50dc6c495c0c9188/0467ef3c8400ae65 --payload-format-version 1.0

Criar uma integração privada usando a descoberta de serviço do AWS Cloud Map

Antes de criar uma integração privada, crie um link de VPC. Para saber mais sobre links de VPC, consulte Configurar links de VPC para APIs HTTP.

Para integrações com o AWS Cloud Map, o API Gateway usa DiscoverInstances para identificar recursos. Você pode usar parâmetros de consulta para direcionar recursos específicos. Os atributos dos recursos registrados devem incluir endereços IP e portas. O API Gateway distribui solicitações entre recursos íntegros que são retornados de DiscoverInstances. Para saber mais, consulte DiscoverInstances na Referência da API do AWS Cloud Map.

nota

Se usar o Amazon ECS para preencher entradas no AWS Cloud Map, você deverá configurar a tarefa do Amazon ECS para usar registros SRV com a descoberta de serviços do Amazon ECS ou ativar o Amazon ECS Service Connect. Para obter mais informações, consulte Interconexão de serviços no Guia do desenvolvedor do Amazon Elastic Container Service.

Para criar uma integração privada com o AWS Cloud Map, crie uma integração de proxy HTTP, especifique o link de VPC a ser usado e forneça o ARN do serviço AWS Cloud Map.

Use o comando a seguir para criar uma integração privada que use a Descoberta de serviço do AWS Cloud Map para identificar recursos.

aws apigatewayv2 create-integration --api-id api-id --integration-type HTTP_PROXY \ --integration-method GET --connection-type VPC_LINK \ --connection-id VPC-link-ID \ --integration-uri arn:aws:servicediscovery:us-east-2:123456789012:service/srv-id?stage=prod&deployment=green_deployment --payload-format-version 1.0