[FIXED] Abfrageparameter von Cloudfront an API-Gateway übergeben

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

Geben Sie hier die Bildbeschreibung ein

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

Geben Sie hier die Bildbeschreibung ein

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:

Geben Sie hier die Bildbeschreibung ein


Beantwortet von –
Marcin


Antwort geprüft von –
Pedro (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like