Como posso desabilitar o endpoint padrão do API Gateway para APIs REST ou HTTP?

Data da última atualização: 26/08/2022

Quero permitir que os clientes invoquem minhas APIs usando apenas o nome de domínio personalizado. Como posso desabilitar o URL de endpoint da API execute-api padrão para APIs REST ou HTTP do Amazon API Gateway?

Breve descrição

As APIs REST e as APIs HTTP do API Gateway usam um endpoint de API padrão no seguinte formato: “https://{api_id}.execute-api.{region}.amazonaws.com”. Se você usar um nome de domínio personalizado para as APIs REST ou HTTP do API Gateway, poderá desabilitar o endpoint padrão. Isso permite que todo o tráfego seja roteado para suas APIs por meio do nome de domínio personalizado.

Resolução

Siga estas etapas para desabilitar o endpoint padrão usando o console do API Gateway, a AWS Command Line Interface (AWS CLI) ou o AWS CloudFormation.

Observação:

Console do API Gateway

API REST

  1. Abra o console do API Gateway.
  2. No painel de navegação, escolha APIs e, em seguida, escolha sua API REST.
  3. No painel de navegação, selecione Settings (Configurações).
  4. Para Default Endpoint (Endpoint padrão), escolha Disabled (Desabilitado) e, em seguida, selecione Save Changes (Salvar alterações).
  5. No painel de navegação, escolha Resources (Recursos), Actions (Ações) e, em seguida, escolha Deploy API (Implantar API).

API HTTP

  1. Abra o console do API Gateway.
  2. No painel de navegação, escolha APIs e, em seguida, escolha sua API HTTP.
  3. No painel de navegação, selecione Settings (Configurações).
  4. Para Default Endpoint (Endpoint padrão), escolha Disabled (Desabilitado) e, em seguida, selecione Save Changes (Salvar alterações).
  5. No painel de navegação, escolha Resources (Recursos), Actions (Ações) e, em seguida, escolha Deploy API (Implantar API).

AWS CLI

API REST

Execute o comando update-rest-api da AWS CLI novamente, semelhante ao seguinte:

aws apigateway update-rest-api --rest-api-id abcdef123 --patch-operations op=replace,path=/disableExecuteApiEndpoint,value='True'

Para implantar a API atualizada, execute o comando create-deployment da AWS CLI, semelhante ao seguinte

aws apigateway create-deployment --rest-api-id abcdef123 --stage-name dev

Observação: substitua api_id abcdef123 e stage_name dev pelo ID da API REST e o respectivo estágio.

API HTTP

Execute o comando update-api da AWS CLI novamente, semelhante ao seguinte:
aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint

Para implantar a API atualizada, execute o comando create-deployment da AWS CLI, semelhante ao seguinte

aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev

Observação: substitua api_id abcdef123 e stage_name dev pelo ID da API HTTP e o respectivo estágio.

Modelo do CloudFormation

Para desativar o endpoint padrão de um modelo do CloudFormation, você pode definir o parâmetro DisableExecuteApiEndpoint como True. Atualize o modelo do CloudFormation para API REST ou API HTTP.

Importante: desabilitar o endpoint padrão resulta em erros HTTP 403 Proibido se a API for chamada usando o URL do endpoint padrão.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?