GCP PubSub:通过cURL类型的请求发布消息 [英] GCP PubSub: Publish message via CURL type of request

查看:0
本文介绍了GCP PubSub:通过cURL类型的请求发布消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有人有直接从外壳通过cURL类型的命令将消息发布到GCP PubSub主题的实用示例?

我正在尝试不使用CLI和客户端库,并且我被OAuth的东西挂住了。

如果能列出在Linux上运行的bash脚本需要做的事情,我将非常高兴,如果任何人有这样的东西或可以拼凑一个,我将非常感激。

我已有的项目:

  • 我有一个正在处理的Linux计算引擎
  • 我有一些通过CLI和Python发布的实用示例
  • 我有一个服务帐户,可以很好地与pubSub配合使用(见上一个项目符号)

我完全认识到Google推荐使用CLI或API客户端库,但我需要能够在安装最少的主机上运行它(没有CLI、没有Python库等)。

我认为我需要做以下工作:

  1. 对我的数据进行Base64编码
  2. 创建JSON Web令牌(JWT)
  3. 使用JWS获取OAuth令牌
  4. 使用Token调用接口,如POSThttps://pubsub.googleapis.com/v1/projects/myproject/topics/mytopic:publish

非常感谢您的点子...Rich

参考链接:

https://cloud.google.com/pubsub/docs/publisher#pubsub-publish-message-protocol https://groups.google.com/forum/#!topic/cloud-pubsub-discuss/8fGaG5cWiTk https://groups.google.com/forum/?hl=sw#!topic/cloud-pubsub-discuss/8fGaG5cWiTk https://developers.google.com/identity/protocols/OAuth2WebServer https://developers.google.com/identity/protocols/OAuth2ServiceAccount

推荐答案

可以,可以使用cURL命令进行发布。您需要将访问令牌传递到请求中。要获取它,请登录到您将用于发布的所需服务帐户。如果您尚未创建,则可以创建并限制为仅允许发布:

gcloud iam service-accounts create curl-publisher

gcloud projects add-iam-policy-binding <project with topic> --member=serviceAccount:curl-publisher@<project with created service account>.iam.gserviceaccount.com --role=roles/pubsub.publisher

现在,您可以从命令行登录到服务帐户并获得访问令牌:

gcloud auth login curl-publisher@<project with created service account>.iam.gserviceaccount.com

gcloud auth application-default print-access-token
您只需运行上述步骤一次即可获得访问令牌。现在,您可以在cURL命令中使用该访问令牌:

PROJECT=my-project
TOPIC=my-topic
ACCESS_TOKEN=<token printed out above>
curl -H 'content-type: application/json' -H "Authorization: Bearer $ACCESS_TOKEN" -X POST --data $'{  "messages": [{"data": "abcd"}]}'  https://pubsub.googleapis.com/v1/projects/$PROJECT/topics/$TOPIC:publish

这篇关于GCP PubSub:通过cURL类型的请求发布消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆