web-dev-qa-db-fra.com

Comment passer des arguments aux fonctions AWS Lambda à l'aide de requêtes GET?

Supposons que je veuille passer val1 et val2 dans la chaîne d'URL lors de l'envoi d'une demande GET depuis mon point de terminaison de passerelle Api vers ma fonction Lambda:

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

Et j'ai une fonction simple qui additionne les deux entrées, val1 et val2:

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

J'ai ajouté val1 et val2 aux paramètres de chaîne de requête d'URL dans la demande de méthode de la passerelle AWS API. Mais comment puis-je y accéder à l'intérieur de la fonction?

17
capitalistcuttle

Après avoir défini les paramètres de chaîne de requête dans la section Method Request de la passerelle API, vous devez définir un modèle de mappage dans la section Method Execution.

Dans la section Méthode d'exécution, sélectionnez Modèles de mappage, puis cliquez sur Ajouter un modèle de mappage. Entrez application/json pour le type de contenu , puis créez un modèle de mappage ressemblant à ceci:

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

Cela indiquera à API Gateway de prendre les paramètres d'entrée (transmis sur le chemin, dans les en-têtes ou dans les paramètres de requête) appelés val1 et val2 et de les envoyer à la fonction Lambda dans les données d'événement sous la forme val1 et val2.

18
garnaat

Toutes les informations peuvent être extraites d'un objet événement.

Par exemple: val1 peut être récupéré en tant qu'événement ["valeur1"] etc.

0
Batman