ラボの概要
このラボは、Developing with DynamoDB カリキュラムの最後のラボとなります。このラボは、今までのラボで扱ったスキルを踏まえたものとなっています。単に与えられた解答を使用するのではなく、ドキュメントを参照しながら今までの経験を生かして開発を完了する必要があるため、これまでのラボより難しいかもしれません。ただし、このラボでは解答が一式用意されています。サポートが必要な場合は、「解答集」を参照してください。
AnyCompany 社は、映画データベースアプリケーションを補完する新しいウェブベースの音楽アプリケーションを展開しようとしています。同社は、Amazon DynamoDB とサーバーレスの AWS Lambda ベースのアーキテクチャを使用してこれを実現することにしました。
このアプリケーションには 4 つの主要な機能を実装します。まず、データベース内のすべての音楽アルバム、または特定のジャンルの音楽アルバムをユーザーが表示できるようにします。また、データベースエントリの追加と削除、および特定のアルバムの非キー属性の変更をユーザーが行えるようにします。あなたは、Amazon DynamoDB、AWS Lambda、Amazon API Gateway を指定されたフロントエンドウェブサイトと組み合わせてこれらの機能を作成および実装する作業を任されました。また、オプションのタスクとして、ユーザー認証用に Amazon Cognito をアプリケーションに組み込む作業があります。
この音楽アプリケーションは、以下のコンポーネントで構成されます。
- HTML/Javascript で記述され、Amazon S3 にホストされる静的フロントエンド
- Amazon API Gateway、AWS Lambda、Amazon Cognito を使用するサーバーレスバックエンド
- 永続レイヤーの DynamoDB テーブル
上の画像では、完成したラボの全体的なアーキテクチャが示されています。 Amazon Cognito で検証されたユーザーは、Amazon API ゲートウェイと複数のラムダ関数を利用するミュージックアプリケーションを使用して、Albums という名前の DynamoDB テーブル内のデータを操作できます。
目標
このラボを修了すると、以下ができるようになります。
- Python で記述された Lambda 関数を作成してデプロイし、DynamoDB テーブルでオペレーションを実行する
- DynamoDB の条件式を使用する
- API Gateway エンドポイントを作成してデプロイし、Lambda 関数をプロキシ統合する
- 認証用の Amazon Cognito ユーザープールを作成して設定する
技術知識の前提条件
このラボを修了するには、AWS マネジメントコンソールの操作、統合開発環境 (IDE) を使用したスクリプトの編集、DynamoDB で CRUD オペレーションを実行するための基本的な Python スクリプトの実装に関する知識が必要です。また、Amazon Simple Storage Service (Amazon S3)、AWS Lambda、Amazon API Gateway サービスについての基本的な理解も必要です。
アイコンキー
このラボでは、ガイドの特定の部分への注意を促すため、さまざまなアイコンが使用されています。以下のリストは、各アイコンの目的を説明したものです。
- 警告: 特記事項または重要な情報を表す (この情報を読み忘れても、機器やデータに問題が発生するというわけではありませんが、特定のステップを繰り返す必要が生じる可能性があります)。
- コマンド: 実行する必要があるコマンドを表す。
- 想定される出力: 出力のサンプルであり、コマンドまたは編集済みファイルの出力を確認するときに使用する。
- 注意: ヒントや重要なガイダンス。
- 詳細: 詳細情報が記載されている場所を示す。
- ナレッジチェック: 知識を確認し、理解度をテストする。