使用以下方式處理動態 B 事件 AWS SAM - AWS Serverless Application Model

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用以下方式處理動態 B 事件 AWS SAM

使用此範例應用程式,您可以根據您在概觀和快速入門指南中學到的內容建置,並安裝另一個範例應用程式。此應用程式由 DynamoDB 表格事件來源叫用的 Lambda 函數組成。Lambda 函數非常簡單 — 它會記錄透過事件來源訊息傳入的資料。

本練習說明如何模擬在叫用 Lambda 函數時傳遞給 Lambda 函數的事件來源訊息。

開始之前

請確定您已在中完成所需的設定安裝 AWS SAM CLI

步驟 1:初始化應用程序

在本節中,您將下載包含 AWS SAM 範本和應用程式程式碼的應用程式套件。

初始化應用程式
  1. 在命令提示字元中執行下列 AWS SAMCLI命令。

    sam init \ --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \ --no-input

    請注意,gh:在上面的命令中被擴展到 GitHub url https://github.com/

  2. 檢閱命令所建立目錄的內容 (dynamodb_event_reader/):

    • template.yaml— 定義讀取 DynamoDB 應用程式需要的兩個 AWS 資源:Lambda 函數和一個 DynamoDB 表。範本也會定義兩個資源之間的對應。

    • read_dynamodb_event/目錄 — 包含 DynamoDB 應用程式程式碼。

步驟 2:在本機測試應用程式

若要進行本機測試,請使用 AWS SAMCLI來產生 DynamoDB 事件範例並叫用 Lambda 函數:

sam local generate-event dynamodb update | sam local invoke --event - ReadDynamoDBEvent

此命generate-event令會建立測試事件來源訊息,例如將所有元件部署至 AWS 雲端時所建立的訊息。此事件來源訊息會傳送至 Lambda 函數 ReadDynamoDBEvent。

根據中的原始程式碼,確認預期的訊息已列印到主控台app.py

步驟 3:打 Package 應用程序

在本機測試應用程式之後,您可 AWS SAMCLI以使用建立部署套件,以便將應用程式部署到 AWS 雲端。

若要建立 Lambda 部署套件
  1. 在要儲存封裝程式碼的位置建立一個 S3 儲存貯體。如果您想使用現有的 S3 儲存貯體,請跳過此步驟。

    aws s3 mb s3://bucketname
  2. 在命令提示字元中執行下列packageCLI命令,以建立部署套件。

    sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

    當您在下一個步驟中部署應用程式時packaged.yaml,請指定新的範本檔案。

步驟 4:部署應用程式

現在您已經建立了部署套件,您可以使用它將應用程式部署到 AWS 雲端。然後,您可以測試應用程式。

將無伺服器應用程式部署到雲端 AWS
  • 在中 AWS SAMCLI,使用命deployCLI令部署您在範本中定義的所有資源。

    sam deploy \ --template-file packaged.yaml \ --stack-name sam-app \ --capabilities CAPABILITY_IAM \ --region us-east-1

    在命令中,該--capabilities參數允許創 AWS CloudFormation建一個IAM角色。

    AWS CloudFormation 會建立範本中定義的 AWS 資源。您可以在 AWS CloudFormation 主控台中存取這些資源的名稱。

在雲端測試無伺服器應用程式 AWS
  1. 開啟 DynamoDB 主控台。

  2. 將記錄插入您剛剛建立的表格中。

  3. 移至表格的「測量結果」頁籤,然後選擇檢視所有 CloudWatch 測量結果。在主 CloudWatch 控台中,選擇 [記錄檔] 以檢視記錄輸出。

後續步驟

該 AWS SAM GitHub 存儲庫包含其他示例應用程序供您下載和實驗。若要存取此儲存庫,請參閱AWS SAM 範例應用程式