2

J'ai une passerelle API qui est l'une des nombreuses origines derrière une distribution CloudFront que j'ai créé. J'essaye de transmettre certains en-têtes aux origines (Host, Origin, entre autres). Lorsque je ne transfère aucun en-tête, les requêtes atteignent la passerelle API très bien. Cependant, dès que j'active le transfert d'en-tête dans la distribution CloudFront (soit All ou Whitelist), la passerelle API n'est plus capable de gérer les demandes. Je reçois l'erreur suivante:AWS API Gateway derrière CloudFront, transfert d'en-têtes?

ERROR 

The request could not be satisfied. 

CloudFront wasn't able to connect to the origin. 

Tous les conseils sur la fixation de ce problème?

+0

Avez-vous une journalisation passerelle API activée? Je vérifierais les journaux de la passerelle API pour voir si elle enregistre des erreurs qui pourraient être utiles ici. –

+0

Je vois qu'il ya un groupe de journal dans CloudWatch mais il n'y a pas de cours d'eau dans ce – Marty

+1

Bien sûr, vous ne pouvez pas avancer le 'tête Host:' de la demande initiale à la passerelle API. Cela n'a pas de sens. La passerelle API doit voir le nom d'hôte qu'elle a assigné à votre noeud final dans l'en-tête de l'hôte de la requête entrante. Quels autres en-têtes cassent votre configuration si vous les activez? –

Répondre

2

Comme ci-dessus a commenté, vous ne pouvez pas transférer l'en-tête de l'hôte à l'API origine Gateway. Sans l'en-tête Host, API Gateway ne sait pas quelle API est appelée.

+2

Est-il possible d'utiliser lambda edge pour mapper l'hôte initiateur à quelque chose comme X-Forwarded-Host? – Petrogad