Menyebarkan fungsi C# Lambda menggunakan AWS CDK - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyebarkan fungsi C# Lambda menggunakan AWS CDK

AWS Cloud Development Kit (AWS CDK) Ini adalah kerangka pengembangan perangkat lunak open-source untuk mendefinisikan infrastruktur cloud sebagai kode dengan bahasa pemrograman modern dan kerangka kerja seperti .NET. AWS CDK proyek dijalankan untuk menghasilkan AWS CloudFormation template yang kemudian digunakan untuk menyebarkan kode Anda.

Untuk membangun dan menyebarkan contoh aplikasi Hello world .NET menggunakan AWS CDK, ikuti petunjuk di bagian berikut. Aplikasi sampel mengimplementasikan backend API dasar yang terdiri dari titik akhir API Gateway dan fungsi Lambda. API Gateway memanggil fungsi Lambda saat Anda mengirim permintaan HTTP GET ke titik akhir. Fungsi mengembalikan pesan Hello world, bersama dengan alamat IP dari instance Lambda yang memproses permintaan Anda.

Prasyarat

.NET 8 SDK

Instal .NET 8 SDK dan Runtime.

AWS CDK versi 2

Untuk mempelajari cara menginstal versi terbaru, AWS CDK lihat Memulai dengan AWS CDK di Panduan Pengembang AWS Cloud Development Kit (AWS CDK) v2.

Menyebarkan aplikasi sampel AWS CDK

  1. Buat direktori proyek untuk aplikasi sampel dan navigasikan ke dalamnya.

    mkdir hello-world cd hello-world
  2. Menginisialisasi AWS CDK aplikasi baru dengan menjalankan perintah berikut.

    cdk init app --language csharp

    Perintah membuat file dan direktori berikut di direktori proyek Anda

    ├── README.md ├── cdk.json └── src ├── HelloWorld │   ├── GlobalSuppressions.cs │   ├── HelloWorld.csproj │   ├── HelloWorldStack.cs │   └── Program.cs └── HelloWorld.sln
  3. Buka src direktori dan buat fungsi Lambda baru menggunakan .NET CLI. Ini adalah fungsi yang akan Anda terapkan menggunakan. AWS CDK Dalam contoh ini, Anda membuat fungsi Hello world bernama HelloWorldLambda menggunakan lambda.EmptyFunction template.

    cd src dotnet new lambda.EmptyFunction -n HelloWorldLambda

    Setelah langkah ini, struktur direktori Anda di dalam direktori proyek Anda akan terlihat seperti berikut.

    ├── 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
  4. Buka HelloWorldStack.cs file dari src/HelloWorld direktori. Ganti isi file dengan kode berikut.

    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 }), }); } } }

    Ini adalah kode untuk mengkompilasi dan menggabungkan kode aplikasi, serta definisi fungsi Lambda itu sendiri. BundlingOptions objek memungkinkan file zip dibuat, bersama dengan serangkaian perintah yang digunakan untuk menghasilkan konten file zip. Dalam hal ini, dotnet lambda package perintah digunakan untuk mengkompilasi dan menghasilkan file zip.

  5. Untuk menyebarkan aplikasi Anda, jalankan perintah berikut.

    cdk deploy
  6. Memanggil fungsi Lambda yang Anda gunakan menggunakan .NET Lambda CLI.

    dotnet lambda invoke-function HelloWorldFunction -p "hello world"
  7. Setelah selesai menguji, Anda dapat menghapus sumber daya yang Anda buat, kecuali jika Anda ingin mempertahankannya. Jalankan perintah berikut untuk menghapus sumber daya Anda.

    cdk destroy

Langkah selanjutnya

Untuk mempelajari selengkapnya tentang penggunaan AWS CDK untuk membangun dan menerapkan fungsi Lambda menggunakan.NET, lihat sumber daya berikut: