Google Cloud Pub/Sub: Node.js 客户端
Cloud Pub/Sub 是一个完全托管的实时消息服务,允许您在独立的应用程序之间发送和接收消息。
本文档包含 API 参考、示例以及其他对开发 Node.js 应用程序有用的资源的链接。有关开发 Pub/Sub 应用程序的更多帮助,包括 Node.js 和其他语言,请参阅我们的 Pub/Sub 快速入门、发布者 和 订阅者 指南。
每个版本的全面更改列表可以在 CHANGELOG 中找到。
阅读更多关于 Cloud API 的客户端库,包括旧版 Google API 客户端库,请参阅 客户端库说明。
目录:
快速入门
开始之前
- 选择或创建一个 Cloud Platform 项目。
- 为您的项目启用计费。
- 启用 Google Cloud Pub/Sub API。
- 使用服务账号设置身份验证,以便您可以从本地工作站访问 API。
安装客户端库
npm install @google-cloud/pubsub
使用客户端库
// 导入 Google Cloud 客户端库
const {PubSub} = require('@google-cloud/pubsub');
async function quickstart(
projectId = 'your-project-id', // 您的 Google Cloud Platform 项目 ID
topicNameOrId = 'my-topic', // 要创建的新主题的名称
subscriptionName = 'my-sub' // 要创建的新订阅的名称
) {
// 实例化客户端
const pubsub = new PubSub({projectId});
// 创建新主题
const [topic] = await pubsub.createTopic(topicNameOrId);
console.log(`主题 ${topic.name} 已创建。`);
// 在新主题上创建订阅
const [subscription] = await topic.createSubscription(subscriptionName);
// 接收订阅上新消息的回调
subscription.on('message', message => {
console.log('收到消息:', message.data.toString());
process.exit(0);
});
// 接收订阅上错误的回调
subscription.on('error', error => {
console.error('收到错误:', error);
process.exit(1);
});
// 向主题发送消息
topic.publishMessage({data: Buffer.from('测试消息!')});
}
运行 gRPC C++ 绑定
对于某些工作流程和环境,使用 C++ gRPC 实现可能更有意义,而不是默认实现(参见:#770):
要配置 @google-cloud/pubsub
使用替代 grpc
传输:
-
npm install grpc
,添加grpc
作为依赖项。 -
使用
grpc
实例化@google-cloud/pubsub
:const {PubSub} = require('@google-cloud/pubsub'); const grpc = require('grpc'); const pubsub = new PubSub({grpc});
示例
示例位于 samples/
目录中。每个示例的 README.md
都有运行该示例的说明。
示例 | 源代码 | 尝试 |
---|---|---|
提交基于Avro的架构 | 源代码 | |
提交基于Proto的架构 | 源代码 | |
创建基于Avro的架构 | 源代码 | |
创建BigQuery订阅 | 源代码 | |
创建基于Proto的架构 | 源代码 | |
创建推送订阅 | 源代码 | |
创建无包装器的推送订阅 | 源代码 | |
创建订阅 | 源代码 | |
创建云存储订阅 | 源代码 | |
创建带死信策略的订阅 | 源代码 | |
创建精确一次交付订阅 | 源代码 | |
创建带过滤的订阅 | 源代码 | |
创建启用排序的订阅 | 源代码 | |
创建带重试策略的订阅 | 源代码 | |
创建主题 | 源代码 | |
创建带Kinesis摄取的主题 | 源代码 | |
创建带架构的主题 | 源代码 | |
创建带架构修订的主题 | 源代码 | |
删除先前创建的架构 | 源代码 | |
删除架构修订 | 源代码 | |
删除订阅 | 源代码 | |
删除主题 | 源代码 | |
分离订阅 | 源代码 | |
获取先前创建的架构 | 源代码 | |
获取先前创建的架构修订 | 源代码 | |
获取订阅 | 源代码 | |
获取订阅策略 | 源代码 | |
获取主题策略 | 源代码 | |
列出所有主题 | 源代码 | |
列出架构的修订 | 源代码 | |
列出项目中的架构 | 源代码 | |
列出订阅 | 源代码 | |
列出主题的订阅 | 源代码 | |
监听 Avro 记录 | 源代码 | |
监听带修订的 Avro 记录 | 源代码 | |
监听错误 | 源代码 | |
监听消息 | 源代码 | |
使用精确一次传递监听 | 源代码 | |
监听 Protobuf 消息 | 源代码 | |
监听带自定义属性的消息 | 源代码 | |
修改推送配置 | 源代码 | |
OpenTelemetry 追踪 | 源代码 | |
向主题发布 Avro 记录 | 源代码 | |
发布批量消息 | 源代码 | |
发布消息 | 源代码 | |
发布带自定义属性的消息 | 源代码 | |
发布有序消息 | 源代码 | |
向主题发布 Protobuf 消息 | 源代码 | |
使用流量控制发布 | 源代码 | |
使用重试设置发布 | 源代码 | |
快速入门 | 源代码 | |
移除死信策略 | 源代码 | |
恢复发布 | 源代码 | |
回滚架构 | 源代码 | |
设置订阅 IAM 策略 | 源代码 | |
设置主题 IAM 策略 | 源代码 | |
使用流量控制设置订阅 | 源代码 | |
同步拉取 | 源代码 | |
带传递尝试的同步拉取 | 源代码 | |
带租约管理的同步拉取 | 源代码 | |
测试订阅权限 | 源代码 | |
测试主题权限 | 源代码 | |
更新死信策略 | 源代码 | |
更新主题摄取类型 | 源代码 | |
更新主题架构 | 源代码 | |
验证架构定义 | 源代码 | [](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs- |
Google Cloud Pub/Sub Node.js 客户端 API 参考文档中也包含示例。 |
支持的 Node.js 版本
我们的客户端库遵循 Node.js 发布计划。 这些库与所有当前处于 活跃 和 维护 状态的 Node.js 版本兼容。 如果您正在使用已到生命周期结束的 Node.js 版本,我们建议您尽快更新到一个受积极支持的 LTS 版本。
Google 的客户端库以尽力而为的方式支持旧版本的 Node.js 运行时,但有以下警告:
- 旧版本不在持续集成中测试。
- 某些安全补丁和功能无法向后移植。
- 依赖项无法保持最新。
针对某些已到生命周期结束的 Node.js 版本的客户端库是可用的,可以通过 npm dist-tags 安装。
这些 dist-tags 遵循 legacy-(version)
的命名约定。
例如,npm install @google-cloud/pubsub@legacy-8
安装与 Node.js 8 兼容的客户端库。
版本控制
本库遵循语义化版本控制。
本库被认为是 稳定的。除非绝对必要(例如由于关键安全问题)或经过长期弃用期,否则代码表面不会以不向后兼容的方式更改。针对 稳定 库的问题和请求将被最高优先级处理。
更多信息:Google Cloud Platform 发布阶段
贡献
欢迎贡献!请参阅贡献指南。
请注意,此 README.md
、samples/README.md
以及此存储库中的各种配置文件(包括 .nycrc
和 tsconfig.json
)是从中央模板生成的。要编辑这些文件之一,请在 目录 中编辑其模板。
许可证
Apache 版本 2.0
参见 LICENSE