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.
Déploiement de fonctions Lambda C# à l’aide d’AWS SAM
L’AWS Serverless Application Model (AWS SAM) est une boîte à outils qui permet de rationaliser le processus de création et d’exécution d’applications sans serveur sur AWS. Vous définissez les ressources de votre application dans un modèle YAML ou JSON et vous utilisez l’interface de ligne de commande AWS SAM (AWS SAM CLI) pour créer, empaqueter et déployer vos applications. Lorsque vous créez une fonction Lambda à partir d’un modèle AWS SAM, AWS SAM crée automatiquement un package de déploiement .zip ou une image de conteneur avec le code de votre fonction et toutes les dépendances que vous spécifiez. Ensuite, AWS SAM déploie votre fonction à l’aide d’une pile AWS CloudFormation. Pour en savoir plus sur l’utilisation d’AWS SAM pour créer et déployer des fonctions Lambda, veuillez consulter la rubrique Premiers pas avec AWS SAM dans le Guide du développeur AWS Serverless Application Model.
Les étapes suivantes vous montrent comment télécharger, créer et déployer un exemple d’application Hello World en .NET à l’aide de AWS SAM. Cet exemple d’application utilise une fonction Lambda et un point de terminaison Amazon API Gateway pour implémenter une API backend de base. Lorsque vous envoyez une requête HTTP GET à votre point de terminaison API Gateway, API Gateway invoque votre fonction Lambda. La fonction renvoie un message « hello world », ainsi que l’adresse IP de l’instance de la fonction Lambda qui traite votre requête.
Lorsque vous créez et déployez votre application à l’aide de AWS SAM, en arrière-plan, la CLI AWS SAM utilise la commande dotnet lambda package
pour empaqueter les différents paquets de code de la fonction Lambda.
Prérequis
- Kit SDK .NET 8
-
Installez l’environnement d’exécution et le kit SDK .NET 8
. - Version 1.39 ou ultérieure de la CLI AWS SAM
-
Pour savoir comment installer la dernière version de la CLI AWS SAM, consultez la section Installation de la CLI AWS SAM.
Déployer un exemple d’application AWS SAM
-
Initialisez l’application en utilisant le modèle Hello world .NET à l’aide de la commande suivante.
sam init --app-template hello-world --name sam-app \ --package-type Zip --runtime dotnet8
Cette commande crée les fichiers et répertoires suivants dans le répertoire de votre projet.
└── sam-app ├── README.md ├── events │ └── event.json ├── omnisharp.json ├── samconfig.toml ├── src │ └── HelloWorld │ ├── Function.cs │ ├── HelloWorld.csproj │ └── aws-lambda-tools-defaults.json ├── template.yaml └── test └── HelloWorld.Test ├── FunctionTest.cs └── HelloWorld.Tests.csproj
-
Accédez au répertoire contenant le
template.yaml file
. Ce fichier est un modèle qui définit les ressources AWS de votre application, notamment votre fonction Lambda et API Gateway.cd sam-app
-
Pour créer la source de votre application, exécutez la commande suivante.
sam build
-
Pour déployer votre application sur AWS, exécutez la commande suivante.
sam deploy --guided
Cette commande permet d’empaqueter et de déployer votre application à l’aide de la série d’invites suivante. Pour accepter les options par défaut, appuyez sur Entrée.
Note
Pour HelloWorldFunction peut ne pas avoir d’autorisation définie, est-ce correct ?, assurez-vous de saisir
y
.-
Nom de la pile : nom de la pile à déployer sur AWS CloudFormation. Ce nom doit être propre à votre Compte AWS et à votre Région AWS.
-
Région AWS : la Région AWS dans laquelle vous souhaitez déployer votre application.
-
Confirmer les modifications avant le déploiement : sélectionnez oui pour examiner manuellement tous les ensembles de modifications avant que AWS SAM ne déploie les modifications de l’application. Si vous sélectionnez non, la CLI AWS SAM déploie automatiquement les modifications de l’application.
-
Autoriser la création de rôles IAM par la CLI SAM : de nombreux modèles AWS SAM, y compris celui de Hello world dans cet exemple, créent des rôles (IAM) AWS Identity and Access Management pour donner à vos fonctions Lambda l’autorisation d’accéder à d’autres Services AWS. Sélectionnez Oui pour autoriser le déploiement d’une pile AWS CloudFormation qui crée ou modifie des rôles IAM.
-
Désactiver le retour en arrière : par défaut, si AWS SAM rencontre une erreur lors de la création ou du déploiement de votre pile, il revient à la version précédente. Sélectionnez Non pour accepter cette valeur par défaut.
-
HelloWorldFunction n’a peut-être pas d’autorisation définie, est-ce correct : Saisissez
y
. -
Enregistrer les arguments dans samconfig.toml : sélectionnez oui pour enregistrer vos choix de configuration. À l’avenir, vous pourrez à nouveau exécuter
sam deploy
sans paramètres pour déployer les modifications apportées à votre application.
-
-
Une fois le déploiement de votre application terminé, la CLI renvoie l’Amazon Resource Name (ARN) de la fonction Lambda Hello World et le rôle IAM créé pour cette fonction. Elle affiche également le point de terminaison de votre API Gateway. Pour tester votre application, ouvrez le point de terminaison dans un navigateur. Vous devriez voir une réponse similaire à la suivante.
{"message":"hello world","location":"34.244.135.203"}
-
Pour supprimer vos ressources, exécutez la commande suivante. Notez que le point de terminaison de l’API que vous avez créé est un point de terminaison public accessible via le réseau Internet. Nous vous recommandons de supprimer ce point de terminaison après les tests.
sam delete
Étapes suivantes
Pour en savoir plus sur l’utilisation de AWS SAM pour créer et déployer des fonctions Lambda à l’aide de .NET, consultez les ressources suivantes :