CLI, Cloud Pub/Sub 주제에 JSON 메시지 공개
배경.
패키지 서버 서비스를 실행하지 않고 클라우드 Pub/Sub에서 디코더 테스트를 수행하려고 합니다.
컨텐트
전제 조건
여기에 Cloud Logging의 이벤트를 실시간으로 감지합니다.의 구조를 참고하여
Infra/Apps
가 GKE인 경우를 예로 들면 클라우드 펀션의 테스트 상황을 고려한다.GKE의 경우 주요 로그 형식은
textPayload
과jsonPayload
두 가지다.샘플은 아래와 같다.샘플 로그 파일
textPayload.json
{
"severity":"ERROR",
"message":"There was an error in the application.",
"httpRequest":{
"requestMethod":"GET"
},
"times":"2020-10-12T07:20:50.52Z",
"logging.googleapis.com/insertId":"42",
"logging.googleapis.com/labels":{
"user_label_1":"value_1",
"user_label_2":"value_2"
},
"logging.googleapis.com/operation":{
"id":"get_data",
"producer":"github.com/MyProject/MyApplication",
"first":"true"
},
"logging.googleapis.com/sourceLocation":{
"file":"get_data.py",
"line":"142",
"function":"getData"
},
"logging.googleapis.com/spanId":"000000000000004a",
"logging.googleapis.com/trace":"projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824",
"logging.googleapis.com/trace_sampled":false
}
jsonPayload.json{
"insertId": "42",
"jsonPayload": {
"message": "There was an error in the application",
"times": "2019-10-12T07:20:50.52Z"
},
"httpRequest": {
"requestMethod": "GET"
},
"resource": {
"type": "k8s_container",
"labels": {
"container_name": "hello-app",
"pod_name": "helloworld-gke-6cfd6f4599-9wff8",
"project_id": "stackdriver-sandbox-92334288",
"namespace_name": "default",
"location": "us-west4",
"cluster_name": "helloworld-gke"
}
},
"timestamp": "2020-11-07T15:57:35.945508391Z",
"severity": "ERROR",
"labels": {
"user_label_2": "value_2",
"user_label_1": "value_1"
},
"logName": "projects/stackdriver-sandbox-92334288/logs/stdout",
"operation": {
"id": "get_data",
"producer": "github.com/MyProject/MyApplication",
"first": true
},
"trace": "projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824",
"sourceLocation": {
"file": "get_data.py",
"line": "142",
"function": "getData"
},
"receiveTimestamp": "2020-11-07T15:57:42.411414059Z",
"spanId": "000000000000004a"
}
절차.
# 上のJSONファイルを保存する
$ tree .
.
└── textPayload.json
└── jsonPayload.json
# 現在の環境を確認する
$ gcloud config list
# トピック一覧を表示する
$ gcloud pubsub topics list
# 対象トピックにtextPayload形式のログメッセージを公開する
$ gcloud pubsub topics publish TOPIC_NAME --message "$(cat textPayload.json | jq -c)"
# 対象トピックにjsonPayload形式のログメッセージを公開する
$ gcloud pubsub topics publish TOPIC_NAME --message "$(cat jsonPayload.json | jq -c)"
참고 자료
Reference
이 문제에 관하여(CLI, Cloud Pub/Sub 주제에 JSON 메시지 공개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ntoy/articles/5825a60f331d60텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)