1

빠른 질문을 당겨 : 내가 명령 줄 도구를 통해 pubsub 구독에서 메시지를 당길 때gcloud 베타 pubsub 구독 형식

gcloud beta pubsub subscriptions pull MY_SUB 

내가 (모든 세부 사항 등) 문자열 (이미 디코딩) 같은 데이터 테이블을 얻고있다 그러나 나는 그것을 사용하고 싶다 :

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... │ 

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

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

FORMATTING

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

답변

0

당신은 the --format argument의 사용과 올바른 궤도에 있지만, 당신이 필요 데이터를 디코딩하려면 projections을 사용하십시오. 이 경우 decode() 투영을 사용해야합니다. 다음은 메시지의 데이터가 base64로 디코딩 된 경우를 제외하고 동일한 데이터로 동일한 명령을 수행하는 방법입니다.

gcloud beta pubsub subscriptions pull MY_SUB --format="json(ackId, message.attributes, message.data.decode(\"base64\"), 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" 
    } 
    } 
] 
관련 문제