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"
}
}
]
快速提问: 当我通过命令行工具从 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"
}
}
]