Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel : Création d'une REST API intégration avec un proxy Lambda
L'intégration de proxy Lambda est un type d'APIintégration de API passerelle léger et flexible qui vous permet d'intégrer une API méthode (ou une méthode complète) à une API fonction Lambda. La fonction Lambda peut être écrite dans n'importe quelle langue prise en charge par Lambda. Comme il s'agit d'une intégration par proxy, vous pouvez modifier l'implémentation de la fonction Lambda à tout moment sans avoir à redéployer votre. API
Dans ce didacticiel, vous effectuez les opérations suivantes :
-
Création d'une fonction Fonction Lambda destinée à être le backend du. API
-
Créez et testez une API « Hello, World! » APIavec intégration du proxy Lambda.
Rubriques
Création d'une fonction Fonction Lambda
Pour créer un « Hello, World! » Fonction Lambda dans la console Lambda
Connectez-vous à la console Lambda à l'adresse /lambda. https://console.aws.amazon.com
-
Dans la barre AWS de navigation, choisissez un Région AWS.
Note
Notez la région où vous avez créé la fonction Lambda. Vous en aurez besoin pour créer leAPI.
-
Choisissez Fonctions dans le panneau de navigation.
-
Sélectionnez Create function (Créer une fonction).
-
Choisissez Créer à partir de zéro.
-
Sous Informations de base, procédez comme suit :
-
Sous Nom de la fonction, entrez
GetStartedLambdaProxyIntegration
. -
Pour Exécution, choisissez le dernier environnement d’exécution Node.js ou Python compatible.
Pour Architecture, conservez le paramètre par défaut.
-
Sous Permissions (Autorisations), développez Change default execution role (Modifier le rôle d'exécution par défaut). Dans la liste déroulante Rôle d’exécution, choisissez Créer un nouveau rôle à partir de modèles de stratégie AWS .
-
Sous Nom du rôle, entrez
GetStartedLambdaBasicExecutionRole
. -
Laissez vide le champ Modèles de stratégie.
-
Sélectionnez Create function (Créer une fonction).
-
-
Sous Function code (Code de fonction), dans l'éditeur de code en ligne, copiez-collez le code suivant :
-
Choisissez Deploy (Déployer).
Créez un message « Hello, World ! » API
Créez maintenant une annonce API pour votre message « Hello, World ! » Fonction Lambda à l'aide de la console API Gateway.
Pour créer un message « Hello, World ! » API
Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.
-
Si c'est la première fois que vous utilisez API Gateway, une page vous présentant les fonctionnalités du service s'affiche. Sous RESTAPI, choisissez Build. Lorsque la API fenêtre contextuelle Create Example apparaît, cliquez sur OK.
Si ce n'est pas la première fois que vous utilisez API Gateway, choisissez Create API. Sous RESTAPI, choisissez Build.
Pour APIle nom, entrez
LambdaProxyAPI
.(Facultatif) Sous Description, entrez une description.
Conservez le type de API point de terminaison défini sur Régional.
Choisissez Create API.
Après avoir créé unAPI, vous créez une ressource. Généralement, les API ressources sont organisées dans une arborescence de ressources conformément à la logique de l'application. Pour cet exemple, vous créez une ressource /helloworld.
Pour créer une ressource
Choisissez Créer une ressource.
Maintenez Ressource proxy désactivée.
Conservez Chemin de la ressource sous la forme
/
.Sous Resource Name (Nom de la ressource), entrez
helloworld
.Maintenez CORS(Cross Origin Resource Sharing) désactivé.
Choisissez Créer une ressource.
Dans une intégration par proxy, l'intégralité de la demande est envoyée à la fonction Lambda principale telle quelle, via une méthode ANY
fourre-tout qui représente n'importe quelle méthode. HTTP La HTTP méthode réelle est spécifiée par le client au moment de l'exécution. La ANY
méthode vous permet d'utiliser une seule configuration de API méthode pour toutes les HTTP méthodes prises en charge : DELETE
GET
,HEAD
,OPTIONS
,PATCH
,POST
, etPUT
.
Pour créer une méthode ANY
Sélectionnez la ressource /helloworld, puis choisissez Créer une méthode.
Pour Type de méthode, sélectionnez ANY.
Pour Type d'intégration, sélectionnez Fonction Lambda.
Activez Intégration de proxy Lambda.
Pour la fonction Lambda, sélectionnez l' Région AWS endroit où vous avez créé votre fonction Lambda, puis entrez le nom de la fonction.
-
Pour utiliser la valeur de délai d'expiration par défaut de 29 secondes, gardez Délai d'expiration activé. Pour définir un délai d'expiration personnalisé, choisissez Délai d'expiration et entrez une valeur de délai d'expiration comprise entre
50
et29000
millisecondes. Choisissez Créer une méthode.
Déployez et testez API
Pour déployer votre API
Choisissez DeployAPI (Déployer).
Pour Étape, sélectionnez Nouvelle étape.
Sous Stage name (Nom de l'étape), entrez
test
.(Facultatif) Sous Description, entrez une description.
Choisissez Deploy (Déployer).
Sous Détails de l'étape, cliquez sur l'icône de copie pour copier votre API appelURL.
Utilisez le navigateur et c URL pour tester l'intégration d'un API proxy avec Lambda
Vous pouvez utiliser un navigateur ou c URL
Pour tester les GET
demandes en utilisant uniquement des paramètres de chaîne de requête, vous pouvez saisir la API helloworld
ressource URL for dans la barre d'adresse d'un navigateur.
Pour créer la ressource URL for, ajoutez la API helloworld
ressource helloworld
et le paramètre de chaîne de requête ?greeter=John
à votre appel. URL Vous URL devriez ressembler à ce qui suit.
https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld?greeter=John
Pour les autres méthodes, vous devez utiliser des utilitaires de REST API test plus avancés, tels que POSTMAN
Pour tester votre déploiement à API l'aide de c URL :
-
Ouvrez une fenêtre du terminal.
-
Copiez la URL commande c suivante et collez-la dans la fenêtre du terminal, remplacez l'appel URL par celui que vous avez copié à l'étape précédente et ajoutez-le
/helloworld
à la fin duURL.Note
Si vous exécutez la commande sous Windows, utilisez plutôt cette syntaxe :
curl -v -X POST "https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld" -H "content-type: application/json" -d "{ \"greeter\": \"John\" }"Pour appeler le API avec le paramètre de chaîne de requête suivant
?greeter=John
:curl -X GET 'https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld?greeter=John'Pour appeler le API avec un paramètre d'en-tête de
greeter:John
:curl -X GET https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld \ -H 'content-type: application/json' \ -H 'greeter: John'Pour appeler le API avec un corps de
{"greeter":"John"}
:curl -X POST https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld \ -H 'content-type: application/json' \ -d '{ "greeter": "John" }'
Dans tous les cas, la sortie est une réponse 200 avec le corps de réponse suivant :
Hello, John!