使用模拟器进行测试
Google Cloud CLI 为 Bigtable 提供了一个本地内存模拟器,您可以使用该模拟器来测试您的应用。由于模拟器仅将数据存储在内存中,因此数据在各次运行之间不会保留。它旨在帮助您在本地开发和测试中使用 Bigtable,而不是用于生产部署。
您可以将该模拟器与所有 Cloud Bigtable 客户端库搭配使用。
该模拟器不提供用于创建或管理实例和集群的管理 API。模拟器启动后,您可以使用任何项目和实例名称连接到该模拟器,以便创建表并读取或写入数据。 模拟器不支持安全连接。
安装并运行模拟器
运行模拟器的最常用方法是使用 gcloud CLI 和 Docker。选择适合您的应用开发和测试工作流的方式。
设置身份验证
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
gcloud CLI
更新您的 gcloud CLI 安装以获取最新功能:
gcloud components update beta
运行以下命令启动模拟器:
gcloud beta emulators bigtable start
如果尚未安装模拟器,系统会提示您下载并安装模拟器的二进制文件。
该模拟器将输出其运行所在的主机和端口号。
默认情况下,该模拟器会选择
localhost:8086
。如需将模拟器绑定到特定主机和端口,请使用可选的--host-port
标志,并替换 HOST 和 PORT:gcloud beta emulators bigtable start --host-port=HOST:PORT
下面给出了一个示例:
gcloud beta emulators bigtable start --host-port=localhost:8086
按 Control-C 停止模拟器。
Docker
确保您的系统上安装了 Docker,并且可通过系统路径访问。
启动模拟器:
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 模拟器有关的问题。您可以在该代码库中提交错误报告和功能请求,或对现有问题发表评论。