Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

ステップ 1: ローカルにデプロイおよびテストを実行する

このステップでは、Tic-Tac-Toe ゲームアプリケーションをローカルコンピュータにダウンロード、デプロイ、およびテストします。Amazon DynamoDB ウェブサービスを使用する代わりに、DynamoDB をコンピュータにダウンロードして必要なテーブルを作成します。

1.1: 必要なパッケージのダウンロードとインストール

このアプリケーションをローカルでテストするには、次のものが必要です。

  • Python

  • Flask(Python 用のマイクロフレームワーク)

  • AWS SDK for Python(Boto)

  • コンピュータ上で実行される DynamoDB

  • Git

これらのツールを入手するには、以下の作業を実行します。

  1. Python をインストールします。詳しい手順については、「Python のダウンロード」を参照してください。

    Tic-Tac-Toe アプリケーションは、Python バージョン 2.7 を使用してテスト済みです。

  2. Python パッケージインストーラ(PIP)を使用して Flask および AWS SDK for Python(Boto)をインストールします。

    • PIP をインストールします。

      手順については、「PIP のインストール」を参照してください。インストールページで、get-pip.py リンクを選択して、ファイルを保存します。次に、管理者としてコマンドターミナルを開き、コマンドプロンプトで以下のように入力します。

      python.exe get-pip.py

      Linux では、.exe 拡張子を指定しません。python get-pip.py のみを指定します。

    • PIP で、次に示すコードを使用して Flask と Boto パッケージをインストールします。

      pip install Flask pip install boto pip install configparser
  3. DynamoDB をコンピュータにダウンロードします。その実行方法については、「DynamoDB ローカル (ダウンロード可能バージョン) のセットアップ」を参照してください。

  4. Tic-Tac-Toe アプリケーションをダウンロードします。

    1. Git をインストールします。手順については、「Git のダウンロード」を参照してください。

    2. アプリケーションをダウンロードするには、次のコードを実行します。

      git clone https://github.com/awslabs/dynamodb-tictactoe-example-app.git

1.2: ゲームアプリケーションをテストする

Tic-Tac-Toe アプリケーションをテストするには、ローカルコンピュータで DynamoDB を実行する必要があります。

Tic-Tac-Toe アプリケーションを実行するには

  1. DynamoDB を起動します。

  2. Tic-Tac-Toe アプリケーション用のウェブサーバーを起動します。

    そのためには、コマンドターミナルを開き、Tic-Tac-Toe アプリケーションをダウンロードしたフォルダに移動し、次に示すコードを使用してアプリケーションをローカルに実行します。

    python.exe application.py --mode local --serverPort 5000 --port 8000

    Linux では、.exe 拡張子を指定しません。

  3. ウェブブラウザを開き、次のように入力します。

    http://localhost:5000/

    ブラウザにホームページが表示されます。

  4. [Log in (ログイン)] ボックスに「user1」と入力し、user1 としてログインします。

    注記

    このサンプルアプリケーションは、ユーザー認証を実行しません。ユーザー ID のみがプレーヤーを識別するために使用されます。2 人のプレーヤーが同じエイリアスでログインすると、アプリケーションは 2 つの別のブラウザでプレイしているかのように動作します。

  5. 初めてゲームを実行する場合、DynamoDB で必要なテーブル(Games)を作成するようにリクエストするページが表示されます。[テーブルの作成] を選択します。

  6. [作成] を選択して、最初の Tic-Tac-Toe ゲームを作成します。

  7. [Choose an Opponent (対戦相手を選択)] ボックスに「user2」と入力し、[Create Game! (ゲームを作成!)] を選択します。

    この操作を行うと、Games テーブルに項目を追加してゲームが作成されます。これにより、ゲームのステータスが PENDING に設定されます。

  8. 別のブラウザウィンドウを開き、次のように入力します。

    http://localhost:5000/

    ブラウザは Cookie を通じて情報を渡すので、Cookie を引き継がないように、匿名モードまたはプライベートブラウジングを使用します。

  9. user2 としてログインします。

    user1 からの保留中の招待を示すページが表示されます。

  10. [accept (受け入れる)] を選択して招待を受け入れます。

    ゲームページが、空の Tic-Tac-Toe グリッドとともに表示されます。このページには、ゲーム ID、誰の番か、ゲームのステータスなど、関連するゲーム情報も表示されます。

  11. ゲームをプレイします。

ユーザーが動くたびに、ウェブサービスは Games テーブルのゲーム項目を条件付きで更新するリクエストを DynamoDB に送信します。たとえば、条件により、動きが有効で、ユーザーが選択した四角形が利用可能で、動いたユーザーの番であったことを確認できます。動きが有効な場合、更新操作により、ボードでの選択に対応する新しい属性が追加されます。また、既存の属性値が、次に動くことができるユーザーに設定されます。

アプリケーションは、ゲームページで非同期 JavaScript 呼び出しを毎秒行い、最大 5 分にわたり、DynamoDB のゲーム状態が変わったかどうかを確認します。変わった場合、アプリケーションは新しい情報でページを更新します。5 分後に、アプリケーションはリクエストを中止します。ユーザーはページを更新して、更新された情報を取得する必要があります。