Ausgabe
Ich habe eine Lambda-Funktion mit einem API-Gateway und einer Cloudfront-Verteilung im Vordergrund erstellt
In den Cloudfront-Verhalten habe ich das Caching deaktiviert
Dies ist die Lambda-Funktion:
exports.handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('rawQueryString is: ' + event.rawQueryString),
};
return response;
};
Wenn ich das API-Gateway aufrufe, sehe ich die Abfragezeichenfolge in der Lambda-Antwort
https://xxx.execute-api.us-east-1.amazonaws.com/api?name=john
rawQueryString is: '?name=john'
Beim Aufrufen der Cloudfront-Distribution kann ich die Abfragezeichenfolge in der Lambda-Antwort
https://xxx.cloudfront.net/api?name=john nicht sehen
rawQueryString is: ''
Ich habe es mit “Origin Request Policy” versucht
aber jetzt, wenn ich https://xxx.cloudfront.net/api?name=john aufrufe
Ich bekomme
{
"message": "Forbidden"
}
Lösung
Sie sollten Ursprungsanforderungsrichtlinien für Ihr Cache-Verhalten einrichten. Sie können es mit der von AWS verwalteten Managed-AllViewer- Richtlinie versuchen oder eine neue erstellen, nur um die Abfragezeichenfolgen weiterzuleiten:
Beantwortet von – Marcin
Antwort geprüft von – Pedro (FixError Volunteer)