DynamoDB イベントを処理する - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DynamoDB イベントを処理する

このサンプルアプリケーションでは、概要とクイックスタートガイドで学習した内容に基づいて構築を行い、別のサンプルアプリケーションをインストールします。このアプリケーションは、DynamoDB テーブルイベントソースによって呼び出される Lambda 関数で構成されます。この Lambda 関数はきわめてシンプルで、イベントソースメッセージ経由で渡されたデータをログに記録します。

この演習は、Lambda 関数が呼び出されたときに関数に渡されるイベントソースメッセージを模倣する方法を説明します。

開始する前に

AWS SAM CLIのインストール に記載されている必要なセットアップが完了していることを確認してください。

ステップ 1: アプリケーションを初期化する

このセクションでは、AWS SAM テンプレートとアプリケーションコードで構成されるアプリケーションパッケージをダウンロードします。

アプリケーションを初期化する
  1. AWS SAM CLI コマンドプロンプトで以下のコマンドを実行します。

    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 - Read DynamoDB アプリケーションが必要とする 2 つの AWS リソース (Lambda 関数と DynamoDB テーブル) を定義します。このテンプレートは、2 つのリソース間のマッピングも定義します。

    • read_dynamodb_event/ ディレクトリ - DynamoDB アプリケーションコードが含まれています。

ステップ 2: アプリケーションのローカルでテストする

ローカルテストでは、AWS SAM CLI を使用してサンプル DynamoDB イベントを生成し、Lambda 関数を呼び出します。

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

generate-event コマンドは、すべてのコンポーネントが AWS クラウドにデプロイされたときに作成されるメッセージのようなテストイベントソースメッセージを作成します。このイベントソースメッセージは、Lambda 関数 ReadDynamoDBEvent にパイプされます。

app.py のソースコードに基づいて、期待されるメッセージがコンソールに出力されることを確認します。

ステップ 3: アプリケーションをパッケージ化する

アプリケーションをローカルでテストしたら、AWS SAM CLI を使用してデプロイパッケージを作成します。このデプロイパッケージは、アプリケーションを AWS クラウドにデプロイするために使用します。

Lambda デプロイパッケージを作成する
  1. パッケージ化されたコードを保存する場所に S3 バケットを作成します。既存の S3 バケットを使用する場合は、このステップをスキップします。

    aws s3 mb s3://bucketname
  2. コマンドプロンプトで以下の package CLI コマンドを実行して、デプロイパッケージを作成します。

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

    次のステップでアプリケーションをデプロイするときは、新しいテンプレートファイルである packaged.yaml を指定します。

ステップ 4: アプリケーションをデプロイする

デプロイパッケージを作成したところで、これを使用してアプリケーションを AWS クラウドにデプロイします。その後、アプリケーションをテストします。

サーバーレスアプリケーションを AWS クラウドにデプロイする
  • AWS SAM CLI で deploy CLI コマンドを使用して、テンプレートで定義したすべてのリソースをデプロイします。

    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 サンプルアプリケーション」を参照してください。