ステップ 1: ローカルにデプロイおよびテストを実行します - Amazon DynamoDB

ステップ 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 local (ダウンロード可能バージョン) のセットアップ 」を参照してください。

  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 (受け入れる)] を選択して招待を受け入れます。

    ゲームのステータスが進行中の空の TAC-TAC-TOE グリッドのスクリーンショット。

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

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

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

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