De retour JSON avec Lambda par le biais de la Passerelle API avec la cartographie
Je suis à essayer de comprendre comment mapper une Réponse de Lambda dans la Passerelle API pour les différents codes d'état et en même temps recevoir un objet JSON à partir de mon Lambda-fonction.
J'ai de la suite dans les Lambda:
context.done('Not Found:',jsonObject);
Et dans mon API Gateway, intégration réponse j'ai un Lambda erreur regex sur 403 disant Pas Trouvé:.*.
Cela fonctionne, la méthode retourne un retour d'un 403.
Le problème est que je n'arrive pas à retourner le jsonObject.
J'ai essayé de créer une application/json modèle de mappage qui ressemble à ceci (voir aussi l'intégration de la réponse):
{"error" : $input.json('$')}
Mais que seuls les résultats dans ma réponse comme ceci:
{"error" : {"errorMessage":"Not Found:"}}
Suis-je mauvaise compréhension du modèle de mappage?
OriginalL'auteur mysanders | 2015-10-29
Vous devez vous connecter pour publier un commentaire.
Si vous voulez coller avec le Lambda de liaison par défaut du comportement, cette approche semble prometteuse.
Est-il un moyen de changer les codes d'état http retourné par Amazon API Gateway?
Également Lambda ignore le deuxième paramètre si le premier
error
paramètre est non-nulle.Voici quelques cas comment Lambda fonctionne.
Cas 1: Le premier paramètre est null.
Résultat: Lambda retourne seulement la deuxième paramètre dans un objet JSON.
Cas 2: Le premier paramètre est l'objet non-null.
Résultat: Lambda lie automatiquement le premier paramètre à
errorMessage
valeur. Remarquez le second paramètre{hello: 'world'}
est tombé.Mieux vaut ne pas passer de l'objet, car les résultats[object Object]
.Cas 3: Le premier paramètre est non nul chaîne de caractères.
Résultat: Lambda lie automatiquement le premier paramètre à
errorMessage
valeur. Remarquez le second paramètre{hello: 'world'}
est tombé.OriginalL'auteur tomodian
Essayez de changer votre modèle:
$d'entrée.json('$') est censé représenter l'objet JSON renvoyé par lambda.
OriginalL'auteur Arlo Carreon