Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway · Pelajaran

Mentakrifkan Sumber Tanpa Pelayan

Tulis templat SAM untuk mentakrifkan fungsi Lambda, titik akhir API Gateway, jadual DynamoDB dan komponen tanpa pelayan yang lain.

Pelajaran 2 daripada 411 langkah

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: Sentiasa AWS::Serverless-2016-10-31 untuk 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 here

Mentakrifkan 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: 30

Sifat 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: GET

Mentakrifkan 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: 1

Keizinan 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: String

Mengeksport 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::Function untuk Lambda.
  • Mengintegrasikan Lambda dengan Gerbang API menggunakan Events.
  • Mentakrifkan AWS::Serverless::SimpleTable untuk DynamoDB.
  • Memberikan keizinan dengan Policies IAM.
  • Menggunakan bahagian Outputs untuk mengeksport nilai.

Seterusnya, kita akan mempelajari cara menggunakan templat ini ke AWS!

Percuma untuk bermula

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

  1. Pengenalan kepada AWS SAM
  2. Mentakrifkan Sumber Tanpa Pelayan
  3. Melaksanakan Aplikasi SAM
  4. Ujian dan Penyahpepijatan Tempatan dengan SAM CLI
← Kembali ke Bahagian Belakang Tanpa Pelayan dengan AWS Lambda dan API Gateway