Google Cloud 工作流程:解码 protobuf 有效负载

问题描述 投票:0回答:1

我正在使用 .yaml 文件定义 Google Cloud 工作流程。我需要它通过 eventarc 监听保存到 Firestore 的文档。触发器工作正常,但我无法解码 protobuf 消息,也找不到有关如何在任何地方执行此操作的文档。

这是我收到的示例消息:

{
  "data": "CrUECpYECjoKFhIUZX5maXJlY21zLWRlbW8tMjcxNTASIAoIcHJvZHVjdHMaFDByTzUzNnFxR3dzRzdVSEtTUnNjGgwKBmltYWdlcxICSgAaEwoKanNvbl9maWVsZBIFMgCYAQEaRgoKbWFpbl9pbWFnZRI4igEyaW1hZ2VzL3A3c3RwX3Bob3RvLTE1MzE3NDYwMjA3OTgtZTY5NTNjNmU4ZTA0LmF2aWaYAQEaEgoJYXZhaWxhYmxlEgUIAJgBARoUCgtkZXNjcmlwdGlvbhIFWACYAQEaGwoOdXBwZXJjYXNlX25hbWUSCYoBA0NDQ5gBARohChFhdmFpbGFibGVfbG9jYWxlcxIMSgoKCIoBAmVzmAEBGhYKEHJlbGF0ZWRfcHJvZHVjdHMSAkoAGgoKBHRhZ3MSAkoAGg8KBnB1YmxpYxIFCACYAQEaFAoLYW1hem9uX2xpbmsSBVgAmAEBGg4KBXByaWNlEgVYAJgBARoRCgRuYW1lEgmKAQNjY2OYAQEaNwoJcHVibGlzaGVyEioyJRoNCgRuYW1lEgVYAJgBARoUCgtleHRlcm5hbF9pZBIFWACYAQGYAQEaFQoIY3VycmVuY3kSCYoBA0RPTJgBARoRCghjYXRlZ29yeRIFWACYAQEaEwoFYnJhbmQSCooBBHZydnKYAQEaHQoIYWRkZWRfb24SEVIMCOufsrAGEIDqgIcDmAEBKgwI65+ysAYQmNqamwMyDAjrn7KwBhCY2pqbAw==",
  "database": "(default)",
  "datacontenttype": "application/protobuf",
  "dataschema": "https://github.com/googleapis/google-cloudevents/blob/main/proto/google/events/cloud/datastore/v1/data.proto",
  "entity": "products/0rO536qqGwsG7UHKSRsc",
  "id": "8da5a03c-3779-4d46-be20-546841cbaa8c",
  "location": "europe-west1",
  "namespace": "(default)",
  "project": "firecms-demo-27150",
  "source": "//firestore.googleapis.com/projects/firecms-demo-27150/databases/(default)",
  "specversion": "1.0",
  "subject": "documents/products/0rO536qqGwsG7UHKSRsc",
  "time": "2024-04-02T23:08:27.862367Z",
  "type": "google.cloud.datastore.entity.v1.created"
}

我的 yaml 文件看起来像:

main:
  params: [event]
  steps:
      - extract_data:
          assign:
            - data: # How do I decode a protobuf from the given message??
          
      - create_document:
            call: googleapis.firestore.v1.projects.databases.documents.patch
            args:
                name: ${name}
                body:
                    fields:
                        test_new_field:
                            stringValue: abc

提前谢谢您!

google-cloud-platform google-cloud-firestore yaml protocol-buffers
1个回答
0
投票

这不是一个protobuf消息,而是一个base64编码的消息。使用这个功能

main:
  params: [event]
  steps:
      - extract_data:
          assign:
            - data: ${base64.decode(event.data)}
          
© www.soinside.com 2019 - 2024. All rights reserved.