Come posso disattivare l'endpoint predefinito di Gateway API per le REST API o API HTTP?

3 minuti di lettura
0

Desidero consentire ai client di richiamare le mie API solo con il nome di dominio personalizzato.

Breve descrizione

Le REST API e le API HTTP di Gateway Amazon API utilizzano un endpoint API predefinito con il seguente formato: https://API_ID.execute-api.REGION.amazonaws.com. Se utilizzi un nome di dominio personalizzato per le REST API o API HTTP di Gateway API, puoi disattivare l'endpoint predefinito. Ciò consente di indirizzare tutto il traffico alle API tramite il nome di dominio personalizzato.

Risoluzione

Per disattivare l'endpoint predefinito, utilizza la console Gateway API, l'interfaccia della linea di comando AWS (AWS CLI) o AWS CloudFormation. Dopo aver disattivato l'endpoint predefinito, è necessario avviare un'implementazione affinché l'aggiornamento entri in funzione.

Nota: se appaiono errori durante l'esecuzione dei comandi di AWS CLI, assicurati di utilizzare la versione più recente di AWS CLI.

Console Gateway API

REST API

  1. Apri la console Gateway API.
  2. Nel riquadro di navigazione, scegli API, quindi scegli la tua REST API.
  3. Nel riquadro di navigazione, scegli Impostazioni.
  4. Per Endpoint predefinito, scegli Disabilitato, poi scegli Salva le modifiche.
  5. Nel riquadro di navigazione, scegli Risorse, Operazioni, poi scegli Distribuisci l'API.

API HTTP

  1. Apri la console Gateway API.
  2. Nel riquadro di navigazione, scegli API, quindi scegli la tua API HTTP.
  3. Nel riquadro di navigazione, scegli API: API_NAME(API_ID).
  4. Scegli Modifica.
  5. Per Endpoint predefinito, scegli Disabilitato, poi scegli Salva.

AWS CLI

REST API
Esegui il comando di AWS CLI update-rest-api:

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

Per implementare l'API aggiornata, esegui il comando di AWS CLI create-deployment:

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

Nota: sostituisci api-id abcdef123 e stage_name dev con l'ID della REST API e la rispettiva fase.

API HTTP

Esegui il comando di AWS CLI update-api:

aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint

Per implementare l'API aggiornata, esegui il comando di AWS CLI create-deployment:

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

Nota: sostituisci api_id abcdef123 e stage_name dev con l'ID della API HTTP e la rispettiva fase.

Modello CloudFormation

Per disattivare l'endpoint predefinito da un modello CloudFormation, imposta il parametro DisableExecuteApiEndpoint su Vero. Aggiorna il modello CloudFormation per una REST API o una API HTTP.

Importante: se richiami l'API con l'URL dell'endpoint predefinito, la disattivazione dell'endpoint predefinito genera un errore. Viene visualizzato un errore HTTP 403 Non consentito per le REST API o un errore HTTP 404 Non trovato per le API HTTP.

Informazioni correlate

Richiamo di un'API REST in Amazon API Gateway

Come posso risolvere gli errori HTTP 403 di API Gateway?