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.
Didacticiel : crĂ©ation dâune API REST avec une intĂ©gration de proxy Lambda
LâintĂ©gration de proxy Lambda est un type dâintĂ©gration dâAPI avec API Amazon Gateway lĂ©ger et flexible qui permet dâintĂ©grer une mĂ©thode dâAPI, ou une API complĂšte, avec une fonction Lambda. La fonction Lambda peut ĂȘtre Ă©crite dans nâimporte quelle langue prise en charge par Lambda. Puisquâil sâagit dâune intĂ©gration de proxy, vous pouvez modifier la mise en Ćuvre de la fonction Lambda Ă tout moment, sans avoir Ă redĂ©ployer votre API.
Dans ce didacticiel, vous allez effectuer les opérations suivantes :
-
CrĂ©er une fonction Lambda « Hello, World! » pour ĂȘtre le backend de lâAPI.
-
Créer et tester une API « Hello, World! » avec intégration de proxy Lambda.
Rubriques
CrĂ©ation dâune fonction Lambda « Hello, World! »
Pour créer une fonction Lambda « Hello, World! » 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 lors de la crĂ©ation de lâAPI.
-
Choisissez Fonctions dans le panneau de navigation.
-
Choisissez 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 politique AWS .
-
Sous Nom du rĂŽle, entrez
GetStartedLambdaBasicExecutionRole
. -
Laissez vide le champ ModĂšles de politique.
-
Choisissez Créer une fonction.
-
-
Sous Code de fonction, dans l'éditeur de code en ligne, copy/paste le code suivant :
-
Choisissez Deploy (Déployer).
CrĂ©ation dâune API « Hello, World! »
Maintenant, crĂ©ez une API pour votre fonction Lambda « Hello, World ! » Ă lâaide de la console API Gateway.
Pour créer une API « Hello, World! »
Connectez-vous Ă la console API Gateway Ă l'adresse https://console.aws.amazon.com/apigateway.
-
Si vous utilisez API Gateway pour la premiĂšre fois, vous voyez une page qui vous prĂ©sente les fonctions du service. Sous REST API (API REST), choisissez Build (CrĂ©ation). Lorsque la fenĂȘtre contextuelle Create Example API (CrĂ©er API exemple) sâaffiche, cliquez sur OK.
Si ce nâest pas la premiĂšre fois que vous utilisez API Gateway, choisissez Create API (CrĂ©er une API). Sous REST API (API REST), choisissez Build (CrĂ©ation).
Sous API name (Nom de lâAPI), saisissez
LambdaProxyAPI
.(Facultatif) Sous Description, entrez une description.
Laissez Type de point de terminaison dâAPI dĂ©fini sur RĂ©gional.
Pour le type d'adresse IP, sélectionnez IPv4.
Sélectionnez Create API (Créer une API).
Une fois que vous avez créé une API, vous crĂ©ez une ressource. En rĂšgle gĂ©nĂ©rale, les ressources API sont organisĂ©es dans une arborescence des ressources selon 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 (Partage des ressources entre origines multiples) désactivé.
Choisissez Créer une ressource.
Dans une intĂ©gration de proxy, la totalitĂ© de la demande est envoyĂ©e Ă la fonction Lambda du backend en lâĂ©tat, via une mĂ©thode ANY
fourre-tout qui reprĂ©sente nâimporte quelle mĂ©thode HTTP. La mĂ©thode HTTP concrĂšte est spĂ©cifiĂ©e par le client au moment de lâexĂ©cution. La mĂ©thode ANY
vous permet dâutiliser une seule configuration de mĂ©thode dâAPI pour toutes les mĂ©thodes HTTP prises en charge, DELETE
, GET
, HEAD
, OPTIONS
, PATCH
, POST
et PUT
.
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Ă©ploiement et test de lâAPI
Pour déployer votre API
Sélectionnez Deploy API (Déployer une API).
Pour Ătape, sĂ©lectionnez Nouvelle Ă©tape.
Sous Stage name (Nom de lâĂ©tape), entrez
test
.(Facultatif) Sous Description, entrez une description.
Choisissez Déployer.
Sous DĂ©tails de lâĂ©tape, choisissez lâicĂŽne de copie pour copier lâURL dâinvocation de votre API.
Utilisation du navigateur et de cURL pour tester une API avec lâintĂ©gration de proxy Lambda
Pour tester votre API, vous pouvez utiliser un navigateur ou cURL
Pour tester les demandes GET
en utilisant uniquement les paramĂštres de chaĂźne de requĂȘte, vous pouvez saisir lâURL de la ressource helloworld
de lâAPI dans la barre dâadresse dâun navigateur.
Pour crĂ©er lâURL de la ressource helloworld
de lâAPI, ajoutez la ressource helloworld
et le paramĂštre de chaĂźne de requĂȘte ?greeter=John
Ă votre URL dâinvocation. Votre URL doit 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 les utilitaires de test plus avancĂ©s de lâAPI REST, tels que POSTMAN
Pour tester lâAPI dĂ©ployĂ©e Ă lâaide de cURL :
-
Ouvrez une fenĂȘtre du terminal.
-
Copiez la commande cURL suivante et collez-la dans la fenĂȘtre du terminal, et remplacez lâURL dâinvocation par celle que vous avez copiĂ©e Ă lâĂ©tape prĂ©cĂ©dente et ajoutez
/helloworld
Ă la fin de lâURL.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 lâAPI avec le paramĂštre de chaĂźne de requĂȘte de
?greeter=John
:curl -X GET 'https://
r275xc9bmd
.execute-api.us-east-1
.amazonaws.com/test/helloworld?greeter=John'Pour appeler lâ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 lâAPI avec un corps
{"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!