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éployez les fonctions Lambda C# à l'aide de AWS CDK
AWS Cloud Development Kit (AWS CDK) Il s'agit d'un framework de développement logiciel open source permettant de définir l'infrastructure cloud comme du code avec des langages de programmation modernes et des frameworks tels que .NET. AWS CDK les projets sont exécutés pour générer des AWS CloudFormation modèles qui sont ensuite utilisés pour déployer votre code.
Pour créer et déployer un exemple d'application Hello world .NET à l'aide de AWS CDK, suivez les instructions des sections suivantes. L’exemple d’application implémente une API backend de base composée d’un point de terminaison API Gateway et d’une fonction Lambda. Lorsque vous envoyez une requête HTTP GET au point de terminaison, API Gateway invoque la fonction Lambda. La fonction renvoie un message Hello world, ainsi que l’adresse IP de l’instance Lambda qui traite votre requête.
Prérequis
- KIT DE DÉVELOPPEMENT LOGICIEL .NET 8
-
Installez le SDK .NET 8
et le Runtime. - AWS CDK version 2
-
Pour savoir comment installer la dernière version de la version 2, AWS CDK voir Getting started with the AWS CDK in the AWS Cloud Development Kit (AWS CDK) v2 Developer Guide.
Déployer un exemple d' AWS CDK application
-
Créez un répertoire de projet pour l’application modèle et accédez à ce répertoire.
mkdir hello-world cd hello-world
-
Initialisez une nouvelle AWS CDK application en exécutant la commande suivante.
cdk init app --language csharp
La commande crée les fichiers et répertoires suivants dans votre répertoire de projet.
├── README.md ├── cdk.json └── src ├── HelloWorld │ ├── GlobalSuppressions.cs │ ├── HelloWorld.csproj │ ├── HelloWorldStack.cs │ └── Program.cs └── HelloWorld.sln
-
Ouvrez le répertoire
src
et créez une nouvelle fonction Lambda à l’aide de la CLI .NET. Il s’agit de la fonction que vous allez déployer à l’aide de AWS CDK. Dans cet exemple, vous créez une fonction Hello world nomméeHelloWorldLambda
à l’aide du modèlelambda.EmptyFunction
.cd src dotnet new lambda.EmptyFunction -n HelloWorldLambda
Après cette étape, la structure de votre répertoire à l’intérieur de votre répertoire de projet devrait ressembler à ce qui suit.
├── README.md ├── cdk.json └── src ├── HelloWorld │ ├── GlobalSuppressions.cs │ ├── HelloWorld.csproj │ ├── HelloWorldStack.cs │ └── Program.cs ├── HelloWorld.sln └── HelloWorldLambda ├── src │ └── HelloWorldLambda │ ├── Function.cs │ ├── HelloWorldLambda.csproj │ ├── Readme.md │ └── aws-lambda-tools-defaults.json └── test └── HelloWorldLambda.Tests ├── FunctionTest.cs └── HelloWorldLambda.Tests.csproj
-
Ouvrez le fichier
HelloWorldStack.cs
à partir du répertoiresrc/HelloWorld
. Remplacez le contenu du fichier par le code suivant.using Amazon.CDK; using Amazon.CDK.AWS.Lambda; using Amazon.CDK.AWS.Logs; using Constructs; namespace CdkTest { public class HelloWorldStack : Stack { internal HelloWorldStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { var buildOption = new BundlingOptions() { Image = Runtime.DOTNET_8.BundlingImage, User = "root", OutputType = BundlingOutput.ARCHIVED, Command = new string[]{ "/bin/sh", "-c", " dotnet tool install -g Amazon.Lambda.Tools"+ " && dotnet build"+ " && dotnet lambda package --output-package /asset-output/function.zip" } }; var helloWorldLambdaFunction = new Function(this, "HelloWorldFunction", new FunctionProps { Runtime = Runtime.DOTNET_8, MemorySize = 1024, LogRetention = RetentionDays.ONE_DAY, Handler = "HelloWorldLambda::HelloWorldLambda.Function::FunctionHandler", Code = Code.FromAsset("./src/HelloWorldLambda/src/HelloWorldLambda", new Amazon.CDK.AWS.S3.Assets.AssetOptions { Bundling = buildOption }), }); } } }
Il s’agit du code permettant de compiler et de regrouper le code de l’application, ainsi que de la définition de la fonction Lambda elle-même. L’objet
BundlingOptions
permet de créer un fichier zip, ainsi qu’un ensemble de commandes utilisées pour générer le contenu du fichier zip. Dans ce cas, la commandedotnet lambda package
est utilisée pour compiler et générer le fichier zip. -
Pour déployer votre application, exécutez la commande suivante.
cdk deploy
-
Invoquez votre fonction Lambda déployée à l’aide de la CLI .NET Lambda.
dotnet lambda invoke-function HelloWorldFunction -p "hello world"
-
Une fois les tests terminés, vous pouvez supprimer les ressources que vous avez créées, à moins que vous souhaitez les conserver. Exécutez la commande suivante pour supprimer vos ressources.
cdk destroy
Étapes suivantes
Pour en savoir plus sur la création et le déploiement de fonctions Lambda AWS CDK à l'aide de .NET, consultez les ressources suivantes :