Come posso risolvere gli errori 500 con l'integrazione del collegamento VPC per API Gateway?

6 minuti di lettura
0

Ho configurato Gateway Amazon API con le integrazioni dei collegamenti per il cloud privato virtuale (VPC). Quando chiamo la mia API, ricevo un errore interno o di configurazione con un codice di stato HTTP 500.

Breve descrizione

AWS API Gateway con collegamenti VPC potrebbe non riuscire a inoltrare il traffico alle risorse di back-end e restituire un codice di stato HTTP 500 per i seguenti motivi:

  • Il collegamento VPC si trova nello stato Fallito. Oppure il servizio endpoint è stato eliminato o si trova nello stato Rifiutato.
  • Il target registrato per il gruppo target è danneggiato o non è in uso.
    Nota: se per 60 giorni non viene inviato traffico tramite il collegamento VPC, questo diventa INATTIVO. Per ulteriori informazioni, consulta la sezione Utilizzo dei collegamenti VPC per le API HTTP.
  • I gruppi di sicurezza non consentono il traffico su porte specifiche.
  • La lista di controllo degli accessi alla rete (ACL) blocca il traffico.
  • Il target non è in ascolto sulle porte di destinazione.
  • Il certificato del nome dominio non corrisponde al Network Load Balancer o all'Application Load Balancer con abilitazione TLS.

Se File di log Amazon CloudWatch è stato attivato per l'API, nei log di esecuzione verrà visualizzato un messaggio di errore che indica la causa dell'errore.

Esempi di messaggi di errore HTTP 500 nei log di CloudWatch

"Thu Aug 04 17:48:21 UTC 2022: Esecuzione non riuscita a causa di un errore di configurazione: si è verificato un errore interno durante l'esecuzione della richiesta Thu Aug 04 17:48:21 UTC 2022: Metodo completato con lo stato: 500"

-oppure-

"Thu Aug 04 19:50:21 UTC 2022: Esecuzione non riuscita a causa di un errore di configurazione: il nome host 'domain.com.com' non corrisponde all'oggetto del certificato fornito dal peer (CN=myinstance.com)
Thu Aug 04 19:50:21 UTC 2022: Metodo completato con lo stato: 500"

Risoluzione

Verifica la causa dell'errore

Attiva la registrazione dell'API CloudWatch. Assicurati di configurare laregistrazione dell'esecuzione.

Nota: durante la configurazione delle impostazioni di registrazione, in Livello log scegli INFO. Quindi, scegli Registra tutti i dati delle richieste/risposte.

Per identificare la causa degli errori, visualizza i log di esecuzione delle REST API in CloudWatch.

Controlla il messaggio di errore nei log di esecuzione

Errore: Esecuzione non riuscita a causa di un errore di configurazione: si è verificato un errore interno durante l'esecuzione della richiesta

Controlla le seguenti configurazioni:

  • Verifica che il sistema di bilanciamento del carico del collegamento VPC esista e non sia stato eliminato.
  • Verifica che il collegamento VPC si trovi nello stato DISPONIBILE. Se il collegamento VPC si trova nello stato FALLITO, dovrai creare un nuovo collegamento VPC e associarlo all'API.
    Nota: implementa l'API dopo aver modificato la richiesta di integrazione.
  • Verifica che la connessione endpoint del collegamento VPC si trovi nello stato DISPONIBILE.
  • Se viene fatto riferimento a un ID VPC con una variabile di fase, verifica che l'ID del collegamento VPC sia corretto.
  • Verifica che il sistema di bilanciamento del carico del collegamento VPC sia in ascolto sulla porta HTTP/HTTPS per cui è configurata la richiesta. Verifica che gli ascoltatori siano configurati per la porta corretta. Assicurati che le ACL di rete non blocchino la richiesta.
  • Verifica che il gruppo target accetti la richiesta. Le ACL di rete devono consentire il traffico in entrata e in uscita e i gruppi di sicurezza devono consentire il traffico in entrata per le porte configurate.
  • Se la richiesta restituisce un errore 500, la connessione potrebbe ricevere pacchetti TCP RST. Verifica che il server di back-end sia in esecuzione. Verifica che sia in esecuzione un servizio sul target back-end della porta di destinazione. Verifica che il target back-end sia in ascolto sulla porta di destinazione.
  • Verifica che l'opzione Applicazione di regole in entrata sul traffico AWS PrivateLink sia disattivata. L'opzione Applicazione di regole in entrata sul traffico PrivateLink applica tutte le regole del gruppo di sicurezza in entrata e in uscita al traffico proveniente dal collegamento VPC. Se non configuri il gruppo di sicurezza in modo da consentire il traffico proveniente dal collegamento VPC, tale gruppo potrà bloccare il traffico su API Gateway. Per applicare le regole del gruppo di sicurezza al traffico non proveniente dal collegamento VPC, disattiva l'opzione Applicazione di regole in entrata sul traffico PrivateLink.

Errore: Esecuzione non riuscita a causa di un errore di configurazione: il nome host 'domain.com.com' non corrisponde all'oggetto del certificato fornito dal peer (CN=myinstance.com)

Assicurati che il nome dominio dell'endpoint corrisponda al certificato restituito dal target del sistema di bilanciamento del carico con abilitazione TLS.

Errore: Esecuzione non riuscita a causa di un errore di configurazione: creazione del percorso PKIX non riuscita: sun.security.provider.certpath.SunCertPathBuilderException: impossibile trovare un percorso di certificazione valido per il target richiesto

Questo errore si verifica quando API Gateway non riesce a trovare l'autorità di certificazione root. Anche se InsecureSkipVerification è impostato su true nella proprietà TlsConfig delle integrazioni, API Gateway esegue la convalida di base del certificato. La convalida esamina le seguenti informazioni:

  • La data di scadenza dei certificati
  • Il nome host
  • La presenza di un'autorità di certificazione root

I certificati configurati nell'istanza di destinazione devono essere considerati attendibili dall'elenco di autorità di certificazione supportate.

Errore: Esecuzione non riuscita a causa di un errore di configurazione: impossibile verificare la firma ECDH ServerKeyExchange

Questo errore si verifica perché la chiave e il certificato non corrispondono, quindi l'handshake TLS ha esito negativo. Per risolvere questo problema, verifica il contenuto dei file utilizzati per le autorità di certificazione, le chiavi e i certificati configurati.

Errore: Esecuzione non riuscita a causa di un errore interno

Questo errore si verifica quando Gateway Amazon API non si connette al sistema di bilanciamento del carico tramite il collegamento VPC a causa del ripristino del target nel sistema di bilanciamento del carico. Per risolvere questo problema, imposta un timeout più lungo sulla destinazione rispetto al timeout predefinito (350 secondi) riportato sul sistema di bilanciamento del carico.

Errore: Esecuzione non riuscita a causa di un errore di configurazione: versione del protocollo non valida: {Testo della stringa}

Questo errore si verifica quando l'integrazione ha fornito una risposta HTTP non valida che non rispetta le specifiche HTTP. Ciò potrebbe indicare che il back-end integrato sta inviando dati non validi a Gateway Amazon API.

Per risolvere questo errore, procedi come indicato di seguito:

  • Riproduci la richiesta effettuata da Gateway Amazon API. Per testare l'endpoint del servizio utilizzato da Gateway Amazon API, crea un endpoint VPC collegato all'ID dell'endpoint del servizio. È inoltre possibile eseguire acquisizioni di pacchetti per esaminare la risposta restituita dal back-end integrato.
  • Per evitare la doppia crittografia, cambia il protocollo del sistema di bilanciamento del carico in TLS o TCP, a seconda della risposta del target.
  • Assicurati che InsecureSkipVerification sia impostato su true nella proprietà TlsConfig delle integrazioni.

Informazioni correlate

Understanding VPC Links in Amazon API Gateway private Integrations

Monitoraggio dell'esecuzione delle API REST con i parametri di Amazon CloudWatch

Configurazione di un sistema Network Load Balancer per le integrazioni private di API Gateway