Tutorial: Membangun dan Menguji Aplikasi Tanpa Server dengan AWS Lambda - AWS Toolkit dengan Amazon Q

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

Tutorial: Membangun dan Menguji Aplikasi Tanpa Server dengan AWS Lambda

Anda dapat membangun aplikasi Lambda tanpa server dengan menggunakan template. AWS Toolkit for Visual Studio Template proyek Lambda menyertakan satu untuk Aplikasi AWS Tanpa Server, yang merupakan AWS Toolkit for Visual Studio implementasi dari Model Aplikasi AWS Tanpa Server (SAM).AWS Dengan menggunakan jenis proyek ini, Anda dapat mengembangkan kumpulan AWS Lambda fungsi dan menyebarkannya dengan AWS sumber daya yang diperlukan sebagai keseluruhan aplikasi, menggunakan AWS CloudFormation untuk mengatur penyebaran.

Untuk prasyarat dan informasi tentang pengaturan AWS Toolkit for Visual Studio, lihat Menggunakan Template AWS Lambda di Toolkit for Visual Studio. AWS

Buat Proyek Aplikasi AWS Tanpa Server Baru

AWS Proyek Aplikasi Tanpa Server membuat fungsi Lambda dengan template tanpa server. AWS CloudFormation AWS CloudFormation template memungkinkan Anda untuk menentukan sumber daya tambahan seperti database, menambahkan peran IAM, dan menyebarkan beberapa fungsi pada satu waktu. Ini berbeda dari proyek AWS Lambda, yang berfokus pada pengembangan dan penerapan fungsi Lambda tunggal.

Prosedur berikut menjelaskan cara membuat Proyek Aplikasi AWS Tanpa Server baru.

  1. Dari Visual Studio, perluas menu File, perluas Baru, lalu pilih Project.

  2. Di kotak dialog Proyek Baru, pastikan bahwa kotak drop-down Bahasa, Platform, dan Jenis Proyek diatur ke “Semua...” dan masukkan aws lambda di bidang Pencarian.

  3. Pilih template AWS Serverless Application with Tests (.NET Core - C#).

    catatan

    Ada kemungkinan bahwa template Aplikasi AWS Tanpa Server dengan Tes (.NET Core - C#) mungkin tidak terisi di bagian atas hasil.

  4. Klik Berikutnya untuk membuka dialog Configure your new project.

  5. Dari dialog Konfigurasi proyek baru Anda, masukkan ServerlessPowertools untuk Nama, lalu lengkapi bidang yang tersisa sesuai preferensi Anda. Pilih Buat tombol untuk melanjutkan ke dialog Select Blueprint.

  6. Dari dialog Select Blueprint pilih Powertools untuk AWS Lambda cetak biru, lalu pilih Selesai untuk membuat proyek Visual Studio.

Meninjau file Aplikasi Tanpa Server

Bagian berikut memberikan tampilan rinci pada tiga file Aplikasi Tanpa Server yang dibuat untuk proyek Anda:

  1. template tanpa server

  2. Functions.cs

  3. aws-lambda-tools-defaults.json

1. tanpa servers.template

serverless.templateFile adalah AWS CloudFormation template untuk mendeklarasikan fungsi Tanpa Server dan sumber daya lainnya. AWS File yang disertakan dengan proyek ini berisi deklarasi untuk satu fungsi Lambda yang akan diekspos melalui Amazon API Gateway sebagai HTTP *Get* operasi. Anda dapat mengedit template ini untuk menyesuaikan fungsi yang ada atau menambahkan lebih banyak fungsi dan sumber daya lain yang diperlukan oleh aplikasi Anda.

Berikut ini adalah contoh serverless.template file:

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Description": "An AWS Serverless Application.", "Resources": { "Get": { "Type": "AWS::Serverless::Function", "Properties": { "Architectures": [ "x86_64" ], "Handler": "ServerlessPowertools::ServerlessPowertools.Functions::Get", "Runtime": "dotnet8", "CodeUri": "", "MemorySize": 512, "Timeout": 30, "Role": null, "Policies": [ "AWSLambdaBasicExecutionRole" ], "Environment": { "Variables": { "POWERTOOLS_SERVICE_NAME": "ServerlessGreeting", "POWERTOOLS_LOG_LEVEL": "Info", "POWERTOOLS_LOGGER_CASE": "PascalCase", "POWERTOOLS_TRACER_CAPTURE_RESPONSE": true, "POWERTOOLS_TRACER_CAPTURE_ERROR": true, "POWERTOOLS_METRICS_NAMESPACE": "ServerlessGreeting" } }, "Events": { "RootGet": { "Type": "Api", "Properties": { "Path": "/", "Method": "GET" } } } } } }, "Outputs": { "ApiURL": { "Description": "API endpoint URL for Prod environment", "Value": { "Fn::Sub": "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/" } } } }

Perhatikan bahwa banyak bidang ...AWS:: Serverless::Function... deklarasi mirip dengan bidang penyebaran proyek Lambda. Powertools Logging, Metrics, dan Tracing dikonfigurasi melalui variabel lingkungan berikut:

  • POWERTOOLS_SERVICE_NAME= ServerlessGreeting

  • PowerTools_log_level=Info

  • POWERTOOLS_LOGGER_CASE = PascalCase

  • PowerTools_TRACER_CAPTURE_RESPONSE=Benar

  • PowerTools_TRACER_CAPTURE_ERROR=Benar

  • POWERTOOLS_METRICS_NAMESPACE= ServerlessGreeting

Untuk definisi dan detail tambahan tentang variabel lingkungan, lihat situs web Powertools untuk AWS Lambda referensi.

2. Functions.cs

Functions.csadalah file kelas yang berisi metode C # yang dipetakan ke satu fungsi yang dideklarasikan dalam file template. Fungsi Lambda merespons HTTP Get metode dari API Gateway. Berikut ini adalah contoh Functions.cs file:

public class Functions { [Logging(LogEvent = true, CorrelationIdPath = CorrelationIdPaths.ApiGatewayRest)] [Metrics(CaptureColdStart = true)] [Tracing(CaptureMode = TracingCaptureMode.ResponseAndError)] public APIGatewayProxyResponse Get(APIGatewayProxyRequest request, ILambdaContext context) { Logger.LogInformation("Get Request"); var greeting = GetGreeting(); var response = new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = greeting, Headers = new Dictionary (string, string) { { "Content-Type", "text/plain" } } }; return response; } [Tracing(SegmentName = "GetGreeting Method")] private static string GetGreeting() { Metrics.AddMetric("GetGreeting_Invocations", 1, MetricUnit.Count); return "Hello Powertools for AWS Lambda (.NET)"; } }

3. aws-lambda-tools-defaults.json

aws-lambda-tools-defaults.jsonmenyediakan nilai default untuk wizard AWS penerapan di dalam Visual Studio dan AWS Lambda perintah yang ditambahkan ke.NET Core CLI. Berikut ini adalah contoh aws-lambda-tools-defaults.json file yang disertakan dengan proyek ini:

{ "profile": "Default", "region": "us-east-1", "configuration": "Release", "s3-prefix": "ServerlessPowertools/", "template": "serverless.template", "template-parameters": "" }

Menerapkan Aplikasi Tanpa Server

Untuk menerapkan aplikasi tanpa server Anda, selesaikan langkah-langkah berikut

  1. Dari Solution Explorer, buka menu konteks untuk (klik kanan) proyek Anda dan pilih Publish to AWS Lambda untuk membuka dialog Publish AWS Serverless Application.

  2. Dari dialog Publish AWS Serverless Application, masukkan nama untuk wadah AWS CloudFormation tumpukan di bidang Stack Name.

  3. Di bidang S3 Bucket, pilih bucket Amazon S3 yang akan diunggah bundel aplikasi Anda atau pilih New... tombol dan masukkan nama bucket Amazon S3 baru. Kemudian pilih Publish to publish untuk menyebarkan aplikasi Anda.

    catatan

    AWS CloudFormation Tumpukan dan Bucket Amazon S3 Anda harus ada di wilayah yang sama AWS . Pengaturan yang tersisa untuk proyek Anda ditentukan dalam serverless.template file.

    Gambar dialog Publikasikan Aplikasi AWS Tanpa Server.
  4. Jendela tampilan Stack terbuka selama proses penerbitan, saat penerapan selesai, bidang Status menampilkan:CREATE_COMPLETE.

    Gambar jendela tampilan tumpukan penyebaran di studio visual.

Uji Aplikasi Tanpa Server

Ketika pembuatan tumpukan selesai, Anda dapat melihat aplikasi Anda menggunakan URL AWS Tanpa Server. Jika Anda telah menyelesaikan tutorial ini tanpa menambahkan fungsi atau parameter tambahan, mengakses URL AWS tanpa server Anda akan menampilkan frasa berikut di browser web Anda: Hello Powertools for AWS Lambda (.NET)