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 : Creating a Lambda function with a function URL (Création d’une fonction Lambda avec une URL de fonction)
Dans ce didacticiel, vous créez une fonction Lambda définie comme archive de fichier ZIP avec un point de terminaison d’URL de fonction public qui renvoie le produit de deux nombres. Pour de plus amples informations sur la configuration des URL de fonctions, consultez Création et gestion des URL de fonctions.
Prérequis
Ce didacticiel suppose que vous avez quelques connaissances des opérations Lambda de base et de la console Lambda. Si ce n’est déjà fait, suivez les instructions fournies dans Créer une fonction Lambda à l'aide de la console pour créer votre première fonction Lambda.
Pour effectuer les étapes suivantes, vous avez besoin de l’AWS Command Line Interface (AWS CLI) version 2. Les commandes et la sortie attendue sont répertoriées dans des blocs distincts :
aws --version
Vous devriez voir la sortie suivante:
aws-cli/2.13.27 Python/3.11.6 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.amzn.2
Pour les commandes longues, un caractère d’échappement (\
) est utilisé pour les fractionner en plusieurs lignes.
Sur Linux et macOS, utilisez votre gestionnaire de shell et de package préféré.
Note
Sous Windows, certaines commandes CLI Bash que vous utilisez couramment avec Lambda (par exemple zip
) ne sont pas prises en charge par les terminaux intégrés du système d’exploitation. Installez le sous-système Windows pour Linux
Créer un rôle d’exécution
Créez le rôle d’exécution qui donne à votre fonction Lambda l’autorisation d’accéder aux ressources AWS .
Pour créer un rôle d’exécution
-
Ouvrez la page Rôles
de la console AWS Identity and Access Management (IAM). -
Sélectionnez Créer un rôle.
-
Pour Type d'entité fiable, sélectionnez AWS service, puis pour Cas d'utilisation, sélectionnez Lambda.
-
Choisissez Suivant.
-
Dans le volet Permissions policies, entrez
AWSLambdaBasicExecutionRole
dans le champ de recherche. -
Cochez la case à côté de la politique
AWSLambdaBasicExecutionRole
AWS gérée, puis choisissez Next. -
Entrez
lambda-url-role
le nom du rôle, puis choisissez Créer un rôle.
La AWSLambdaBasicExecutionRole
politique dispose des autorisations dont la fonction a besoin pour écrire des CloudWatch journaux sur Amazon Logs. Plus loin dans le didacticiel, vous aurez besoin du nom de ressource Amazon (ARN) du rôle pour créer votre fonction Lambda.
Pour trouver l'ARN de votre rôle d'exécution
-
Ouvrez la page Rôles
de la console AWS Identity and Access Management (IAM). -
Sélectionnez le rôle que vous venez de créer (
lambda-url-role
). -
Dans le volet Résumé, copiez l'ARN.
Création d’une fonction Lambda avec une URL de fonction (archive de fichier ZIP)
Créer une fonction Lambda avec un point de terminaison d’URL de fonction en utilisant une archive de fichier .zip.
Pour créer la fonction
-
Copiez l’exemple de code suivant dans un fichier nommé
index.js
.Exemple index.js
exports.handler = async (event) => { let body = JSON.parse(event.body); const product = body.num1 * body.num2; const response = { statusCode: 200, body: "The product of " + body.num1 + " and " + body.num2 + " is " + product, }; return response; };
-
Créez un package de déploiement.
zip function.zip index.js
-
Créez une fonction Lambda à l’aide de la commande
create-function
. Assurez-vous de remplacer l'ARN du rôle par l'ARN de votre propre rôle d'exécution que vous avez copié plus tôt dans le didacticiel.aws lambda create-function \ --function-name my-url-function \ --runtime nodejs18.x \ --zip-file fileb://function.zip \ --handler index.handler \ --role
arn:aws:iam::123456789012:role/lambda-url-role
-
Ajoutez une stratégie basée sur les ressources à votre fonction en accordant des autorisations pour autoriser l’accès public à l’URL de votre fonction.
aws lambda add-permission \ --function-name my-url-function \ --action lambda:InvokeFunctionUrl \ --principal "*" \ --function-url-auth-type "NONE" \ --statement-id url
-
Créez un point de terminaison d’URL pour la fonction avec la commande
create-function-url-config
.aws lambda create-function-url-config \ --function-name my-url-function \ --auth-type NONE
Test du point de terminaison d’URL de fonction
Appelez votre fonction Lambda en appelant le point de terminaison d’URL de la fonction avec un client HTTP tel que curl ou Postman.
curl
'https://abcdefg.lambda-url.us-east-1.on.aws/'
\ -H 'Content-Type: application/json' \ -d '{"num1": "10", "num2": "10"}'
Vous devriez voir la sortie suivante :
The product of 10 and 10 is 100
Création d'une fonction Lambda avec une URL de fonction () CloudFormation
Vous pouvez également créer une fonction Lambda avec un point de terminaison URL de fonction en utilisant le AWS CloudFormation type. AWS::Lambda::Url
Resources: MyUrlFunction: Type: AWS::Lambda::Function Properties: Handler: index.handler Runtime: nodejs18.x Role: arn:aws:iam::123456789012:role/lambda-url-role Code: ZipFile: | exports.handler = async (event) => { let body = JSON.parse(event.body); const product = body.num1 * body.num2; const response = { statusCode: 200, body: "The product of " + body.num1 + " and " + body.num2 + " is " + product, }; return response; }; Description: Create a function with a URL. MyUrlFunctionPermissions: Type: AWS::Lambda::Permission Properties: FunctionName: !Ref MyUrlFunction Action: lambda:InvokeFunctionUrl Principal: "*" FunctionUrlAuthType: NONE MyFunctionUrl: Type: AWS::Lambda::Url Properties: TargetFunctionArn: !Ref MyUrlFunction AuthType: NONE
Créer une fonction Lambda avec une URL de fonction (AWS SAM)
Vous pouvez également créer une fonction Lambda configurée avec une URL de fonction en utilisant AWS Serverless Application Model ()AWS SAM.
ProductFunction: Type: AWS::Serverless::Function Properties: CodeUri: function/. Handler: index.handler Runtime: nodejs18.x AutoPublishAlias: live FunctionUrlConfig: AuthType: NONE
Nettoyage de vos ressources
Vous pouvez maintenant supprimer les ressources que vous avez créées pour ce didacticiel, sauf si vous souhaitez les conserver. En supprimant AWS les ressources que vous n'utilisez plus, vous évitez des frais inutiles pour votre Compte AWS.
Pour supprimer le rôle d’exécution
-
Ouvrez la page Roles (Rôles)
de la console IAM. -
Sélectionnez le rôle d’exécution que vous avez créé.
-
Sélectionnez Delete (Supprimer).
-
Saisissez le nom du rôle dans le champ de saisie de texte et choisissez Delete (Supprimer).
Pour supprimer la fonction Lambda
-
Ouvrez la page Functions (Fonctions)
de la console Lambda. -
Sélectionnez la fonction que vous avez créée.
-
Sélectionnez Actions, Supprimer.
-
Saisissez
delete
dans la zone de saisie de texte et choisissez Delete (Supprimer).