ステップ 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 ローカル (ダウンロード可能バージョン) のセットアップ」を参照してください。
-
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 分後に、アプリケーションはリクエストを中止します。ユーザーはページを更新して、更新された情報を取得する必要があります。