gcloud beta pubsub 订阅拉取格式

gcloud beta pubsub subscriptions pull format

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

gcloud beta pubsub subscriptions pull MY_SUB

我得到一个 table,其中(所有详细信息和)数据为字符串(已解码) 但我想使用它,所以我做了:

gcloud beta pubsub subscriptions pull MY_SUB --format=json

然后我收到了 json(所有详细信息),但数据已编码。

有没有办法用格式化来解析它?

发布消息示例:

gcloud beta  pubsub topics publish myTopic "Topic Message" --attribute=Ai=A,Bee=B

NO-FORMATTING_RETURN

  ─────────────┬─────────────────┬────────────────┬─────────────────────────

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

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

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

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

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

正在格式化

[
{
"ackId": "ACK_ID..",
"message": {
  "attributes": {
    "Ai": "A",
      "Bee": "B"
    },
     "data": "SGVsbG8gVG9waWM=",
     "messageId": "122121955409996",
     "publishTime": "2017-05-11T10:26:54.143Z"
    }
}
]

使用 the --format argument, but you need to use projections 来解码数据,您走在了正确的轨道上。在这种情况下,您需要使用 decode() 投影。以下是如何使用相同的数据执行相同的命令,但消息的数据是 base64 解码的。

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"
    }
  }
]