ステップ 1: ローカルにデプロイおよびテストを実行します
このステップでは、Tic-Tac-Toe ゲームアプリケーションをローカルコンピュータにダウンロード、デプロイ、およびテストします。Amazon DynamoDB ウェブサービスを使用する代わりに、DynamoDB をコンピュータにダウンロードして必要なテーブルを作成します。
1.1: 必要なパッケージのダウンロードとインストール
このアプリケーションをローカルでテストするには、次のものが必要です。
-
Python
-
Flask(Python 用のマイクロフレームワーク)
-
AWS SDK for Python (Boto)
-
ローカルコンピュータ上で実行される DynamoDB
-
Git
これらのツールを入手するには、以下の作業を実行します。
-
Python をインストールします。詳しい手順については、「Python のダウンロード
」を参照してください。 Tic-Tac-Toe アプリケーションは、Python バージョン 2.7 を使用してテスト済みです。
-
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
-
-
DynamoDB をローカルのコンピュータにダウンロードします。その実行方法については、「 DynamoDB local (ダウンロード可能バージョン) のセットアップ 」を参照してください。
-
Tic-Tac-Toe アプリケーションをダウンロードします。
-
Git をインストールします。手順については、「Git のダウンロード
」を参照してください。 -
アプリケーションをダウンロードするには、次のコードを実行します。
git clone https://github.com/awslabs/dynamodb-tictactoe-example-app.git
-
1.2: ゲームアプリケーションをテストします
Tic-Tac-Toe アプリケーションをテストするには、ローカルコンピュータで DynamoDB を実行する必要があります。
tic-tac-toe アプリケーションを実行するには
-
DynamoDB を起動します。
-
Tic-Tac-Toe アプリケーション用のウェブサーバーを起動します。
そのためには、コマンドターミナルを開き、Tic-Tac-Toe アプリケーションをダウンロードしたフォルダに移動し、次に示すコードを使用してアプリケーションをローカルに実行します。
python.exe application.py --mode local --serverPort 5000 --port 8000
Linux では、
.exe
拡張子を指定しません。 -
ウェブブラウザを開き、次のように入力します。
http://localhost:5000/
ブラウザにホームページが表示されます。
-
[Log in] (ログイン) ボックスに
user1
と入力し、user1 としてログインします。注記
このサンプルアプリケーションは、ユーザー認証を実行しません。ユーザー ID のみがプレーヤーを識別するために使用されます。2 人のプレーヤーが同じエイリアスでログインすると、アプリケーションは 2 つの別のブラウザでプレイしているかのように動作します。
-
初めてゲームを実行する場合は、DynamoDB で必要なテーブル (
Games
) を作成するように促すページが表示されます。[テーブルの作成] を選択します。 -
[作成] を選択して、最初の Tic-Tac-Toe ゲームを作成します。
-
[Choose an Opponent] (対戦相手の選択) ボックスに
user2
と入力し、[Create Game!] (ゲームを作成する!) を選択します。この操作を行うと、
Games
テーブルに項目を追加してゲームが作成されます。これにより、ゲームのステータスがPENDING
に設定されます。 -
別のブラウザウィンドウを開き、次のように入力します。
http://localhost:5000/
ブラウザは Cookie を通じて情報を渡すので、Cookie を引き継がないように、匿名モードまたはプライベートブラウジングを使用します。
-
user2 としてログインします。
user1 からの保留中の招待を示すページが表示されます。
-
[accept (受け入れる)] を選択して招待を受け入れます。
ゲームページが、空の Tic-Tac-Toe グリッドとともに表示されます。このページには、ゲーム ID、誰の番か、ゲームのステータスなど、関連するゲーム情報も表示されます。
-
ゲームをプレイします。
ユーザーが動くたびに、ウェブサービスは、Games
テーブルのゲーム項目に条件付き更新を実行するためのリクエストを DynamoDB に送信します。たとえば、条件により、動きが有効で、ユーザーが選択した四角形が利用可能で、動いたユーザーの番であったことを確認できます。動きが有効な場合、更新操作により、ボードでの選択に対応する新しい属性が追加されます。また、既存の属性値が、次に動くことができるユーザーに設定されます。
アプリケーションは、ゲームページから非同期の JavaScript 呼び出しを毎秒、最大 5 分にわたって実行し、DynamoDB 内のゲームの状態に変化があったかどうかを確認します。変わった場合、アプリケーションは新しい情報でページを更新します。5 分後に、アプリケーションはリクエストを中止します。ユーザーはページを更新して、更新された情報を取得する必要があります。