Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Terapkan fungsi C# Lambda menggunakan AWS CDK
Ini AWS Cloud Development Kit (AWS CDK) adalah kerangka pengembangan perangkat lunak sumber terbuka untuk mendefinisikan infrastruktur cloud sebagai kode dengan bahasa pemrograman modern dan kerangka kerja seperti.NET. AWS CDK proyek dieksekusi untuk menghasilkan CloudFormation template yang kemudian digunakan untuk menerapkan kode Anda.
Untuk membangun dan menerapkan 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 instance Lambda yang memproses permintaan Anda.
Prasyarat
- .NET8 SDK
-
Instal SDK
.NET 8 dan Runtime. - AWS CDK versi 2
-
Untuk mempelajari cara menginstal versi terbaru, AWS CDK lihat Memulai dengan Panduan Pengembang AWS Cloud Development Kit (AWS CDK) v2. AWS CDK
Menyebarkan sampel AWS CDK application
-
Buat direktori proyek untuk aplikasi sampel dan navigasikan ke dalamnya.
mkdir hello-world cd hello-world -
Inisialisasi AWS CDK aplikasi baru dengan menjalankan perintah berikut.
cdk init app --language csharpPerintah ini 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 -
Buka
srcdirektori dan buat fungsi Lambda baru menggunakan.NET CLI. Ini adalah fungsi yang Anda terapkan menggunakan AWS CDK. Dalam contoh ini, Anda membuat fungsi Hello world bernamaHelloWorldLambdamenggunakanlambda.EmptyFunctiontemplate.cd src dotnet new lambda.EmptyFunction -n HelloWorldLambdaSetelah langkah ini, struktur direktori Anda di dalam direktori proyek Anda akan terlihat seperti berikut ini.
├── 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 -
Buka
HelloWorldStack.csfile darisrc/HelloWorlddirektori. 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.
BundlingOptionsobjek memungkinkan file zip dibuat, bersama dengan serangkaian perintah yang digunakan untuk menghasilkan konten file zip. Dalam hal ini,dotnet lambda packageperintah digunakan untuk mengkompilasi dan menghasilkan file zip. -
Untuk menerapkan aplikasi Anda, jalankan perintah berikut.
cdk deploy -
Memanggil fungsi Lambda yang Anda gunakan menggunakan .NET Lambda CLI.
dotnet lambda invoke-function HelloWorldFunction -p "hello world" -
Setelah selesai pengujian, Anda dapat menghapus sumber daya yang Anda buat, kecuali Anda ingin mempertahankannya. Jalankan perintah berikut untuk menghapus sumber daya Anda.
cdk destroy
Langkah selanjutnya
Untuk mempelajari selengkapnya tentang menggunakan AWS CDK untuk membangun dan menerapkan fungsi Lambda menggunakan.NET, lihat sumber daya berikut: