使用模拟器进行测试

Google Cloud CLI 为 Bigtable 提供了一个本地内存模拟器,您可以使用该模拟器来测试您的应用。由于模拟器仅将数据存储在内存中,因此数据在各次运行之间不会保留。它旨在帮助您在本地开发和测试中使用 Bigtable,而不是用于生产部署。

您可以将该模拟器与所有 Cloud Bigtable 客户端库搭配使用。

该模拟器不提供用于创建或管理实例和集群的管理 API。模拟器启动后,您可以使用任何项目和实例名称连接到该模拟器,以便创建表并读取或写入数据。 模拟器不支持安全连接。

安装并运行模拟器

运行模拟器的最常用方法是使用 gcloud CLIDocker。选择适合您的应用开发和测试工作流的方式。

设置身份验证

您可以从以下任一开发环境使用本页面上的 gcloud CLI 示例:

  • Cloud Shell:如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。

    Cloud Shell 会话会在页面底部启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。

  • 本地 shell:如需在本地开发环境中使用 gcloud CLI,请安装初始化 gcloud CLI。

gcloud CLI

  1. 更新您的 gcloud CLI 安装以获取最新功能:

    gcloud components update beta
    
  2. 运行以下命令启动模拟器:

    gcloud beta emulators bigtable start
    

    如果尚未安装模拟器,系统会提示您下载并安装模拟器的二进制文件。

    该模拟器将输出其运行所在的主机和端口号。

    默认情况下,该模拟器会选择 localhost:8086。如需将模拟器绑定到特定主机和端口,请使用可选的 --host-port 标志,并替换 HOSTPORT

    gcloud beta emulators bigtable start --host-port=HOST:PORT
    

    下面给出了一个示例:

    gcloud beta emulators bigtable start --host-port=localhost:8086
    
  3. 按 Control-C 停止模拟器。

Docker

  1. 确保您的系统上安装了 Docker,并且可通过系统路径访问。

  2. 启动模拟器:

    docker run -p 127.0.0.1:8086:8086 --rm -ti google/cloud-sdk gcloud beta emulators bigtable start --host-port=0.0.0.0:8086
    

    此命令运行模拟器,将容器中的端口映射到本地主机上的相同端口。

您还可以将模拟器用作现有 Docker Compose 配置 (.yaml) 文件的一部分。如需详细了解 Docker Compose,请参阅 Docker Compose 概览

将客户端库与模拟器搭配使用

设置 BIGTABLE_EMULATOR_HOST 环境变量,以在模拟器中使用客户端库:

Linux/macOS

  export BIGTABLE_EMULATOR_HOST=localhost:8086

Windows

  set BIGTABLE_EMULATOR_HOST=localhost:8086

应用启动时,客户端库会自动检查 BIGTABLE_EMULATOR_HOST 并连接到模拟器(如果其正在运行)。

设置 BIGTABLE_EMULATOR_HOST 后,您可以按照 hello world 示例中的说明测试模拟器。

要停止模拟器,请按 Ctrl+C,然后使用以下命令取消设置 BIGTABLE_EMULATOR_HOST

    unset BIGTABLE_EMULATOR_HOST

适用于模拟器的 Java 封装容器

Java 封装容器捆绑了内置的 Bigtable 模拟器,并提供用于编写测试的 Java 接口。

如需详细了解如何使用 Java 封装容器,请参阅 GitHub 代码库

以下文档详细介绍了模拟器 Java 软件包:

过滤条件

模拟器支持所有过滤器,但 Sink 限制过滤器除外。

google-cloud-go GitHub 代码库会跟踪与 Bigtable 模拟器有关的问题。您可以在该代码库中提交错误报告和功能请求,或对现有问题发表评论。