本文介绍了GCP PubSub:通过cURL类型的请求发布消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对我的数据进行Base64编码
创建JSON Web令牌(JWT)
使用JWS获取OAuth令牌
使用Token调用接口,如POSTpubsub.googleapis/v1/projects/myproject/topics/mytopic:publish
有没有人有直接从外壳通过cURL类型的命令将消息发布到GCP PubSub主题的实用示例?
我正在尝试不使用CLI和客户端库,并且我被OAuth的东西挂住了。
如果能列出在Linux上运行的bash脚本需要做的事情,我将非常高兴,如果任何人有这样的东西或可以拼凑一个,我将非常感激。
我已有的项目:
- 我有一个正在处理的Linux计算引擎
- 我有一些通过CLI和Python发布的实用示例
- 我有一个服务帐户,可以很好地与pubSub配合使用(见上一个项目符号)
我完全认识到Google推荐使用CLI或API客户端库,但我需要能够在安装最少的主机上运行它(没有CLI、没有Python库等)。
我认为我需要做以下工作:
非常感谢您的点子...Rich
参考链接:
cloud.google/pubsub/docs/publisher#pubsub-publish-message-protocol groups.google/forum/#!topic/cloud-pubsub-discuss/8fGaG5cWiTk groups.google/forum/?hl=sw#!topic/cloud-pubsub-discuss/8fGaG5cWiTk developers.google/identity/protocols/OAuth2WebServer developers.google/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 --role=roles/pubsub.publisher现在,您可以从命令行登录到服务帐户并获得访问令牌:
gcloud auth login curl-publisher@<project with created service account>.iam.gserviceaccount 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"}]}' pubsub.googleapis/v1/projects/$PROJECT/topics/$TOPIC:publish更多推荐
GCP PubSub:通过cURL类型的请求发布消息
发布评论