首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcloud beta发布订阅请求格式

gcloud beta发布订阅请求格式
EN

Stack Overflow用户
提问于 2017-05-11 11:24:19
回答 1查看 4.4K关注 0票数 8

快速问题:当我通过命令行工具从公共订阅中提取消息时

代码语言:javascript
复制
gcloud beta pubsub subscriptions pull MY_SUB

我得到了一个包含(所有细节和)数据的字符串(已经解码)的表,但是我想使用它,所以我这样做了:

代码语言:javascript
复制
gcloud beta pubsub subscriptions pull MY_SUB --format=json

比我收到的json (所有细节)都要多,但是数据是编码的。

有一种方法可以用格式来解析它吗?

发布消息的示例:

代码语言:javascript
复制
gcloud beta  pubsub topics publish myTopic "Topic Message" --attribute=Ai=A,Bee=B

无格式返回

代码语言:javascript
复制
  ─────────────┬─────────────────┬────────────────┬─────────────────────────

  ──────────────────────────────────────────────────────────────────────────
    ─────────────────────────────────────────────────────────────┐
    │     DATA    │    MESSAGE_ID   │   ATTRIBUTES   │                                                                             
    ACK_ID                                                                             
    │

  ├─────────────┼─────────────────┼────────────────┼────────────────────────

  ──────────────────────────────────────────────────────────────────────────
     ──────────────────────────────────────────────────────────────┤
     │ Topic Message │ 122122177601805 │ Ai=A Bee=B  │ ACK_ID... │

  └─────────────┴─────────────────┴────────────────┴────────────────────────

  ──────────────────────────────────────────────────────────────────────────
    ──────────────────────────────────────────────────────────────┘

格式化

代码语言:javascript
复制
[
{
"ackId": "ACK_ID..",
"message": {
  "attributes": {
    "Ai": "A",
      "Bee": "B"
    },
     "data": "SGVsbG8gVG9waWM=",
     "messageId": "122121955409996",
     "publishTime": "2017-05-11T10:26:54.143Z"
    }
}
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-29 23:20:53

使用论据是正确的,但是您需要使用预测来解码数据。在这种情况下,您需要使用decode()投影。下面是如何使用相同的数据执行相同的命令,除非消息的数据是base64解码的。

代码语言:javascript
复制
gcloud beta pubsub subscriptions pull MY_SUB --format="json(ackId, message.attributes, message.data.decode(\"base64\").decode(\"utf-8\"), message.messageId, message.publishTime)"

[
  {
    "ackId": "QV5AEkw...D5-NTlF",
    "message": {
      "attributes": {
        "Ai": "A",
        "Bee": "B"
      },
      "data": "Topic Message",
      "messageId": "127236468931635",
      "publishTime": "2017-05-29T23:15:04.637Z"
    }
  }
]
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43914026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档