我正在使用 .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
提前谢谢您!
这不是一个protobuf消息,而是一个base64编码的消息。使用这个功能
main:
params: [event]
steps:
- extract_data:
assign:
- data: ${base64.decode(event.data)}