Невозможно декодировать данные о событиях в функции Cloud Run с помощью триггера Firestore.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно декодировать данные о событиях в функции Cloud Run с помощью триггера Firestore.

Сообщение Anonymous »

Я развернул функцию запуска облака 2-го поколения с триггером Firestore для события google.cloud.datastore.entity.v1.write. Я использовал пример кода, показанный в документации Google Cloud:

Код: Выделить всё

from cloudevents.http import CloudEvent
import functions_framework
from google.events.cloud import firestore

@functions_framework.cloud_event
def hello_firestore(cloud_event: CloudEvent) -> None:
"""Triggers by a change to a Firestore document.

Args:
cloud_event: cloud event with information on the firestore event trigger
"""
firestore_payload = firestore.DocumentEventData()
firestore_payload._pb.ParseFromString(cloud_event.data)

print(f"Function triggered by change to: {cloud_event['source']}")

print("\nOld value:")
print(firestore_payload.old_value)

print("\nNew value:")
print(firestore_payload.value)

А вот список зависимостей, находящихся в файле require.txt:

Код: Выделить всё

functions-framework==3.3.0
google-events==0.13.0
google-api-core==2.6.0
protobuf==5.28.3
cloudevents==1.9.0
Однако каждый раз, когда происходит событие Firestore, функция Cloud Run завершается со следующей ошибкой:

Код: Выделить всё

Traceback (most recent call last):
File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 2190, in wsgi_app
response = self.full_dispatch_request()
File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 1486, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request
rv = self.dispatch_request()
File "/layers/google.python.pip/pip/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/layers/google.python.pip/pip/lib/python3.10/site-packages/functions_framework/__init__.py", line 174, in view_func
function(event)
File "/layers/google.python.pip/pip/lib/python3.10/site-packages/functions_framework/__init__.py", line 70, in wrapper
return func(*args, **kwargs)
File "/workspace/main.py", line 13, in hello_firestore
firestore_payload._pb.ParseFromString(cloud_event.data)
google.protobuf.message.DecodeError: Error parsing message with type 'google.events.cloud.firestore.v1.DocumentEventData'
В документации также предлагается включить зависимости прототипа в исходный код, что я и сделал, но, похоже, это тоже не решает проблему. Делюсь снимком структуры на случай, если я неправильно разместил зависимости прототипа:
[img]https://i .sstatic.net/zOSbcob5.png[/img]

У меня заканчиваются идеи, поэтому буду признателен за любую помощь, если кто-то сталкивался с подобными проблемами и сумел их решить.

Подробнее здесь: https://stackoverflow.com/questions/791 ... re-trigger
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»