it-swarm.com.de

Wie kann ich mit GET-Anforderungen Argumente an AWS Lambda-Funktionen übergeben?

Angenommen, ich möchte val1 und val2 in der URL-Zeichenfolge übergeben, wenn Sie eine GET-Anforderung von meinem Api-Gateway-Endpunkt an meine Lambda-Funktion senden:

https://xyz.execute-api.amazonaws.com/prod/test?val1=5&val2=10

Und ich habe eine einfache Funktion, die die beiden Eingaben val1 und val2 summiert:

def lambda_handler(event, context):
    # How do I get at val1 and val2??
    return {'result': val1 + val2}

Ich habe val1 und val2 zu URL-Abfragezeichenfolge-Parametern in der Methodenanforderung auf dem AWS API-Gateway hinzugefügt. Aber wie kann ich innerhalb der Funktion darauf zugreifen?

17

Nachdem Sie die Abfragezeichenfolgeparameter im Abschnitt Method Request des API-Gateways definiert haben, müssen Sie im Abschnitt Method Execution eine Zuordnungsvorlage definieren.

Wählen Sie im Abschnitt Method Execution die Option Mapping-Vorlagen aus und klicken Sie auf Mapping-Vorlage hinzufügen. Geben Sie application/json für den Content Type ein und erstellen Sie eine Mapping-Vorlage, die etwa wie folgt aussieht:

{
    "va1": "$input.params('val1')",
    "val2": "$input.params('val2')"
}

Dadurch wird API Gateway angewiesen, die Eingabeparameter (entweder im Pfad oder in Kopfzeilen oder in Abfrageparametern übergeben) mit dem Namen val1 und val2 zu übernehmen und in den Ereignisdaten als val1 und val2 an die Lambda-Funktion zu senden.

18
garnaat

Alle Informationen können vom Ereignisobjekt abgerufen werden.

Zum Beispiel: val1 kann als Ereignis ["value1"] usw. abgerufen werden.

0
Batman