Configurar uma integração privada - Amazon API Gateway

Configurar uma integração privada

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

Criar uma integração privada

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.

AWS CLI

O comando put-integration 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 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 (${stageVariables.vpcLinkV2Id}) e insira um caractere de escape para $.

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

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.

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

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

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

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

  6. Escolha Salvar.

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

AWS CLI

O seguinte comando update-integration 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\"}]"