Mentakrifkan Sumber Tanpa Pelayan
Tulis templat SAM untuk mentakrifkan fungsi Lambda, titik akhir API Gateway, jadual DynamoDB dan komponen tanpa pelayan yang lain.
Mentakrifkan Sumber Tanpa Pelayan ialah pelajaran Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway merangkumi sejumlah 4 pelajaran.
Apakah Templat SAM?
Templat AWS Serverless Application Model (SAM) ialah cara yang berkuasa untuk mentakrifkan aplikasi tanpa pelayan anda menggunakan Infrastruktur sebagai Kod (IaC).
Daripada mengkonfigurasi sumber secara manual dalam konsol AWS, anda menerangkannya dalam fail YAML atau JSON. Hal ini menjadikan penggunaan anda boleh diulang, dikawal versinya dan lebih mudah diurus.
Anatomi Templat SAM
Templat SAM mempunyai struktur yang jelas. Bahagian yang paling penting ialah:
AWSTemplateFormatVersion: Menentukan versi format templat.Transform: SentiasaAWS::Serverless-2016-10-31untuk SAM.Description: Penerangan ringkas tentang aplikasi anda.Resources: Tempat anda mentakrifkan semua komponen AWS anda.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: My First SAM App
Resources:
# Your serverless resources go hereMentakrifkan Fungsi Tanpa Pelayan
Teras bagi banyak aplikasi tanpa pelayan ialah fungsi AWS Lambda. Dalam SAM, anda mengisytiharkan Lambda menggunakan jenis sumber AWS::Serverless::Function.
Anda perlu menentukan pengendali, masa jalan dan lokasi kodnya.
Resources:
MyLambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/my-app.zip
MemorySize: 128
Timeout: 30Sifat Utama Lambda
Mari kita huraikan beberapa sifat AWS::Serverless::Function yang biasa:
Handler: Titik masuk dalam kod anda (contohnya,filename.function_name).Runtime: Masa jalan bahasa pengaturcaraan (contohnya,python3.9,nodejs18.x).CodeUri: Laluan ke pakej penggunaan fungsi anda (setempat atau S3).MemorySize: RAM yang diperuntukkan kepada fungsi (MB).Timeout: Tempoh pelaksanaan maksimum (saat).
Gerbang API sebagai Sumber Peristiwa
Untuk membolehkan fungsi Lambda anda diakses melalui titik akhir HTTP, anda mengintegrasikannya dengan Amazon Gerbang API. Dalam SAM, anda melakukannya dengan menambahkan sifat Events kepada fungsi anda.
Jenis HttpApi sering menjadi pilihan kerana ringkas dan menjimatkan kos.
Resources:
MyApiFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/api-app.zip
Events:
MyApiEvent:
Type: HttpApi
Properties:
Path: /hello
Method: GETMentakrifkan Jadual DynamoDB
Untuk penyimpanan data berterusan, anda boleh mentakrifkan jadual DynamoDB terus dalam templat SAM anda. SAM menyediakan jenis sumber AWS::Serverless::SimpleTable yang mudah digunakan.
Ini mencipta jadual DynamoDB asas dengan kunci utama. Untuk konfigurasi yang lebih lanjut, anda boleh menggunakan AWS::DynamoDB::Table.
Resources:
MyDataTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: id
Type: String
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1Keizinan IAM untuk Sumber
Fungsi Lambda anda selalunya memerlukan keizinan untuk berinteraksi dengan perkhidmatan AWS lain seperti DynamoDB. Anda memberikan keizinan ini menggunakan dasar IAM (Pengurusan Identiti dan Akses).
SAM membolehkan anda melampirkan dasar terus kepada peranan pelaksanaan fungsi Lambda anda menggunakan sifat Policies.
Resources:
MyLambdaWithDbAccess:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/db-app.zip
Policies:
- DynamoDBReadWriteAccess:
TableName: !Ref MyDataTable # Grants access to MyDataTable
Events:
MyApiEvent:
Type: HttpApi
Properties:
Path: /items
Method: GET
MyDataTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: id
Type: StringMengeksport Nilai Penting
Selepas menggunakan aplikasi tanpa pelayan anda, anda selalunya perlu mengetahui URL titik akhir API atau nama jadual DynamoDB anda.
Bahagian Outputs dalam templat SAM anda membolehkan anda mengeksport nilai ini supaya mudah diakses selepas penggunaan.
Outputs:
ApiUrl:
Description: "API Gateway endpoint URL for Prod stage for Hello World function"
Value: !Sub "https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/hello"Templat Tanpa Pelayan Lengkap
Berikut ialah templat SAM yang lebih lengkap yang mentakrifkan titik akhir API HTTP, fungsi Lambda untuk mengendalikan permintaan dan jadual DynamoDB untuk penyimpanan data.
Perhatikan bagaimana jenis sumber yang berbeza diisytiharkan dan dipautkan antara satu sama lain.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A complete serverless API with Lambda and DynamoDB
Resources:
MyApiFunction:
Type: AWS::Serverless::Function
Properties:
Handler: app.lambda_handler
Runtime: python3.9
CodeUri: s3://my-bucket/full-app.zip
Policies:
- DynamoDBReadWriteAccess:
TableName: !Ref MyItemsTable
Events:
MyApiEvent:
Type: HttpApi
Properties:
Path: /items
Method: GET
MyItemsTable:
Type: AWS::Serverless::SimpleTable
Properties:
PrimaryKey:
Name: itemId
Type: String
Outputs:
ApiEndpoint:
Description: "API Gateway endpoint URL"
Value: !Sub "https://${ServerlessHttpApi}.execute-api.${AWS::Region}.amazonaws.com/items"Semakan Templat SAM
Antara bahagian peringkat teratas berikut, yang manakah sah dalam templat SAM?
Imbas Kembali: Mentakrifkan Sumber Tanpa Pelayan
Dalam pelajaran ini, anda telah mempelajari cara mentakrifkan pelbagai sumber tanpa pelayan dalam templat SAM. Kita telah membincangkan:
- Struktur asas templat SAM.
- Mengisytiharkan
AWS::Serverless::Functionuntuk Lambda. - Mengintegrasikan Lambda dengan Gerbang API menggunakan
Events. - Mentakrifkan
AWS::Serverless::SimpleTableuntuk DynamoDB. - Memberikan keizinan dengan
PoliciesIAM. - Menggunakan bahagian
Outputsuntuk mengeksport nilai.
Seterusnya, kita akan mempelajari cara menggunakan templat ini ke AWS!
Pelajari Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Mentakrifkan Sumber Tanpa Pelayan” percuma?
Ya — teks penuh “Mentakrifkan Sumber Tanpa Pelayan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway, tingkat taraf kepada CoddyKit PRO. Kursus Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mentakrifkan Sumber Tanpa Pelayan”?
Tulis templat SAM untuk mentakrifkan fungsi Lambda, titik akhir API Gateway, jadual DynamoDB dan komponen tanpa pelayan yang lain. Anda berlatih Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Mentakrifkan Sumber Tanpa Pelayan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway ini?
Ya. Setiap pelajaran Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pengenalan kepada AWS SAM
- Mentakrifkan Sumber Tanpa Pelayan
- Melaksanakan Aplikasi SAM
- Ujian dan Penyahpepijatan Tempatan dengan SAM CLI