Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

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

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

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

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

  • Python

  • Flask (适用于 Python 的 microframework)

  • 适用于 Python 的 AWS 开发工具包 (Boto)

  • 在计算机上运行的 DynamoDB

  • Git

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

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

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

  2. 使用 Python Package Installer (PIP) 安装适用于 Python 的 Flask 和 AWS 开发工具包 (Boto):

    • 安装 PIP。

      如需说明,请转到安装 PIP。在安装页面上,选择 get-pip.py 链接,接着保存该文件。然后,以管理员身份打开命令终端,并在命令提示符中键入以下内容:

      Copy
      python.exe get-pip.py

      在 Linux 上,您不必指定 .exe 扩展名,只需指定 python get-pip.py

    • 使用 PIP,通过以下代码安装 Flask 和 Boto 软件包:

      Copy
      pip install Flask pip install boto pip install configparser
  3. 将 DynamoDB 下载到计算机上。有关运行方法的说明,请参阅 设置 DynamoDB Local (可下载版本)

  4. 下载井字游戏应用程序:

    1. 安装 Git。有关说明,请转到 git 下载

    2. 执行以下代码下载此应用程序:

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

1.2:测试游戏应用程序

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

运行井字游戏应用程序

  1. 启动 DynamoDB。

  2. 启动井字游戏应用程序的 Web 服务器。

    要执行此操作,请打开命令终端,导航到您将井字游戏应用程序下载到的文件夹,然后使用以下代码在本地运行此应用程序:

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

    在 Linux 上,您不必指定 .exe 扩展名。

  3. 打开您的 Web 浏览器,然后键入以下内容:

    Copy
    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. 打开另一个浏览器窗口,然后键入以下内容。

    Copy
    http://localhost:5000/

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

  9. 作为 user2 登录。

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

  10. 选择 accept 以接受邀请。

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

  11. 玩游戏。

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

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