第 1 步:在本地进行部署和测试 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 1 步:在本地进行部署和测试

在本步骤中,您将在本地计算机上下载、部署和测试井字游戏应用程序。您可以将 DynamoDB 下载到计算机上并在其中创建所需的表,而不是使用 Amazon DynamoDB Web 服务。

1.1:下载和安装所需的软件包

您需要以下软件包在本地测试此应用程序:

  • Python

  • Flask(适用于 Python 的 microframework)

  • Amazon SDK for Python (Boto)

  • 在计算机中运行的 DynamoDB

  • Git

要获取这些工具,请执行以下操作:

  1. 安装 Python。如需分步说明,请参见下载 Python

    已经使用 Python 版本 2.7 对该井字游戏应用程序进行了测试。

  2. 使用 Python Package Installer (PIP) 安装 Flask 和 Amazon 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. 下载井字游戏应用程序:

    1. 安装 Git。有关说明,请参阅 git 下载

    2. 运行下面的代码,下载应用程序。

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

1.2:测试游戏应用程序

要测试井字游戏应用程序,您需要在计算机上本地运行 DynamoDB。

运行井字游戏应用程序
  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. 选择 CREATE (创建) 以创建第一个井字游戏。

  7. Choose an Opponent (选择对手) 框中输入 user2,然后选择 Create Game! (创建游戏!)

    
                            显示“选择对手”对话框和“创建游戏”按钮的屏幕截图。

    执行此操作将通过在 Games 表中添加项目来创建游戏。它将游戏状态设置为 PENDING

  8. 打开另一个浏览器窗口,然后输入以下内容。

    http://localhost:5000/

    浏览器通过 Cookie 传递信息,因此,您应使用无痕模式或私密浏览,这样就不会传输您的 Cookie。

  9. 作为 user2 登录。

    此时将显示一个页面,其中显示有一个来自 user1 的邀请等待接受。

    
                            显示带有待处理邀请的应用程序主页的屏幕截图。
  10. 选择接受以接受邀请。

    
                            游戏状态为正在进行的空井字游戏网格的屏幕截图。

    游戏页面显示空的井字游戏网格。该页面还会显示相关的游戏信息,例如游戏 ID、发起游戏的用户以及游戏状态。

  11. 玩游戏。

对于用户的每一次移动,Web 服务都会向 DynamoDB 发送请求,以在 Games 表中有条件地更新游戏项目。例如,条件可确保移动有效,用户选择的方框可用,以及轮到进行移动的用户。对于有效的移动,更新操作会添加与面板中的选择对应的新属性。更新操作还会将现有属性的值设置到可以进行下一次移动的用户。

在游戏页面上,应用程序每秒进行若干次异步 JavaScript 调用,持续时间最多达五分钟,以检查 DynamoDB 中的游戏状态是否已更改。如果游戏状态有更改,则应用程序使用新信息更新页面。五分钟之后,应用程序停止发出请求,您需要刷新页面以获取更新后的信息。