步驟 1:在本機上部署及測試 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 1:在本機上部署及測試

在此步驟中您會在您的本機電腦上下載、部署及測試井字遊戲應用程式。您並不會使用 Amazon DynamoDB Web 服務,而是將 DynamoDB 下載至您的電腦,並在該位置建立必要的資料表。

1.1:下載並安裝必要套件

若要在本機上測試此應用程式,您需要下列項目:

  • Python

  • Flask (Python 的微框架)

  • AWS SDK for Python (Boto)

  • 在您電腦上執行的 DynamoDB

  • Git

若要取得這些工具,請執行下列作業:

  1. 安裝 Python。如需 step-by-step 指示,請參閱下載 Python

    井字遊戲應用程式已使用 Python 2.7 版測試。

  2. 安裝燒瓶並 AWS SDK for Python (Boto) 使用 Python Package 安裝程序(PIP):

    • 安裝 PIP。

      如需說明,請參閱 Install 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. 下載井字遊戲應用程式:

    1. 安裝 Git。如需說明,請參閱 git Downloads

    2. 執行下列程式碼以下載應用程式。

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

1.2:測試遊戲應用程式

若要測試井字遊戲應用程式,您需要在您的電腦本機上執行 DynamoDB。

執行 tic-tac-toe 應用程式
  1. 啟動 DynamoDB。

  2. 啟動井字遊戲應用程式的 Web 伺服器。

    若要執行此作業,請開啟命令終端機,導覽至您下載井字遊戲應用程式的所在資料夾,並使用下列程式碼在本機上執行應用程式。

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

    在 Linux 上,您不需要指定 .exe 副檔名。

  3. 開啟您的 Web 瀏覽器,然後輸入如下內容。

    http://localhost:5000/

    瀏覽器會顯示出首頁。

    應用程式首頁螢幕擷取畫面,其中包含建立按鈕與遊戲、邀請和歷程記錄的連結。
  4. Log in (登入) 方塊中輸入 user1,以 user1 身分登入。

    注意

    此範例應用程式不會執行任何使用者身分驗證。使用者 ID 僅會用於識別玩家。若兩名玩家使用同一個別名登入,應用程式仍會運作,如同您在兩個不同的瀏覽器中玩遊戲一樣。

  5. 若這是您第一次玩遊戲,則會顯示一個頁面,要求您在 DynamoDB 中建立必要的資料表 (Games)。選擇 CREATE TABLE (建立資料表)。

    應用程式中建立資料表按鈕的螢幕擷取畫面。
  6. 選擇 [建立] 以建立第一個 tic-tac-toe遊戲。

  7. Choose an Opponent (選擇對手) 方塊中輸入 user2,然後選擇 Create Game! (建立遊戲!)

    顯示對手選擇對話方塊及遊戲建立按鈕的螢幕擷取畫面。

    執行此作業會在 Games 資料表中新增項目,而建立遊戲。它會將遊戲狀態設為 PENDING

  8. 開啟另一個瀏覽器視窗,並輸入如下內容。

    http://localhost:5000/

    瀏覽器會透過 Cookie 傳遞資訊,因此建議您使用無痕 (incognito) 模式或隱私瀏覽,以免留下您的 Cookie。

  9. 以 user2 登入。

    此時將出現一個頁面,顯示 user1 發送的待定邀請。

    顯示應用程式首頁及待定邀請的螢幕擷取畫面。
  10. 選擇 accept (接受) 接受邀請。

    正在進行遊戲狀態的空白 tic-tac-toe 網格的螢幕擷取畫面。

    遊戲頁面會顯示空白 tic-tac-toe 格線。該頁面也會顯示相關的遊戲資訊,例如遊戲 ID、目前輪到哪一方及遊戲狀態。

  11. 玩遊戲。

使用者每移動一步,Web 服務就會傳送請求到 DynamoDB,以條件式更新 Games 資料表中的遊戲項目。例如,條件會確保移動有效、方格可供使用者選擇,以及輪到該使用者移動。若移動有效,更新操作會為棋盤上的選擇新增對應屬性。更新操作也會將現有屬性的值設為可移動下一步的使用者。

在遊戲頁面上,應用程式每秒進行一次非同步 JavaScript 呼叫 (最多 5 分鐘),以檢查 DynamoDB 中的遊戲狀態是否已變更。若狀態已變更,應用程式會以新的資訊更新頁面。5 分鐘後,應用程式會停止發出請求,您必須重新整理頁面才能取得更新資訊。