用于调用 Google Cloud Pub/Sub gRPC API 以发布消息并管理主题和订阅的类型化接口。
Google Cloud Pub/Sub 是一种完全托管的消息传递服务,用于在独立应用程序之间发送和接收消息。该 gRPC API 通过 google.pubsub.v1.Publisher 服务(主题与发布)和 google.pubsub.v1.Subscriber 服务(订阅与消息投递)公开,在 pubsub.googleapis.com:443 上通过 TLS 访问。
请求和响应通过类型化类构建,例如 TsgcGRPCPubSubListTopicsRequest / TsgcGRPCPubSubListTopicsResponse、TsgcGRPCPubSubTopic、TsgcGRPCPubSubPublishRequest / TsgcGRPCPubSubPublishResponse、TsgcGRPCPubSubSubscription、TsgcGRPCPubSubPullRequest / TsgcGRPCPubSubPullResponse 和 TsgcGRPCPubSubAcknowledgeRequest,因此您无需手动编码 Protocol Buffers。
下面的示例使用服务账户 JWT 进行身份验证,通过 TsgcHTTP2Client 将 TsgcGRPCClient 连接到 Pub/Sub 主机,设置授权 Bearer 元数据,并为某个项目调用 ListTopics:
oHTTP2 := TsgcHTTP2Client.Create(nil);
oHTTP2.Host := 'pubsub.googleapis.com';
oHTTP2.Port := 443;
oHTTP2.TLS := True;
oGRPC := TsgcGRPCClient.Create(nil);
oGRPC.Client := oHTTP2;
// service-account JWT authentication
oGRPC.GoogleCloudOptions.JWT.KeyFile := 'service-account.json';
oGRPC.GoogleCloudOptions.JWT.API_Endpoint := 'https://pubsub.googleapis.com/';
oGRPC.DefaultMetadata.AddValue('authorization', 'Bearer ' + oGRPC.GoogleCloudOptions.JWT.Token);
// build the typed request and call the method
oRequest := TsgcGRPCPubSubListTopicsRequest.Create;
try
oRequest.Project := 'projects/my-project-id';
oResponse := oGRPC.Call('google.pubsub.v1.Publisher', 'ListTopics', oRequest.ToBytes);
ShowMessage(oResponse.DataString);
finally
oRequest.Free;
end;
| 名称 | 描述 |
|---|---|
| ListTopics | Publisher 服务:列出某个项目中存在的主题。 |
| CreateTopic | Publisher 服务:创建一个新主题。 |
| DeleteTopic | Publisher 服务:删除现有主题。 |
| 发布 | Publisher 服务:向某个主题发布一条或多条消息。 |
| CreateSubscription | Subscriber 服务:在某个主题上创建订阅。 |
| DeleteSubscription | Subscriber 服务:删除现有订阅。 |
| Pull | Subscriber 服务:从某个订阅拉取消息。 |
| Acknowledge | Subscriber 服务:确认从订阅收到的消息。 |
| StreamingPull | Subscriber 服务:通过流控制以双向流式方式投递消息。 |
示例文件夹 Demos/21.GRPC/10.PubSub 中提供了一个可用的示例,演示如何进行身份验证,列出并创建主题,发布消息以及从订阅拉取消息。