Я собирался опубликовать sh это как ошибку в Pub / Sub репо , но я подумал, что сначала спрошу здесь.
Я просто пытаюсь настроить функцию облака, запускаемую HTTP, которая будет действовать как веб-перехватчик и после получения запроса POST будет публиковать sh сообщение. Это кажется достаточно простым, поэтому я закодировал и развернул. Однако он продолжал падать. Поэтому я попытался запустить его локально с помощью functions-framework и обнаружил, что виновником является from google.cloud import pubsub_v1
, вызывающая ошибку AttributeError: module 'grpc.experimental.aio' has no attribute 'Call'
Сведения о среде
Запуск в облачной функции с Python 3,7
Пример кода
main.py
from flask import Flask, request, abort, Response
import hmac
import hashlib
import base64
import os
import requests
from google.cloud import pubsub_v1
app = Flask(__name__)
@app.route('/', methods=['POST'])
def connectToSheets(request):
# Do stuff
if __name__ == '__main__':
app.run()
requirements.txt
# Dependencies
flask==1.1.2
requests==2.24.0
google-cloud-pubsub==1.7.0
Трассировка стека
Traceback (most recent call last):
File "c:\users\user\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\user\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\Scripts\functions-framework.exe\__main__.py", line 7, in <module>
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 717, in main
rv = self.invoke(ctx)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\functions_framework\_cli.py", line 37, in _cli
app = create_app(target, source, signature_type)
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\functions_framework\__init__.py", line 229, in create_app
spec.loader.exec_module(source_module)
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\user\Desktop\Cookiestruct - Summer 2020 Internship\Automation\Artist\cloudpy\connectToShopify\main.py", line 8, in <module>
from google.cloud import pubsub_v1
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\__init__.py", line 18, in <module>
from google.cloud.pubsub_v1 import publisher
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\publisher\__init__.py", line 17, in <module>
from google.cloud.pubsub_v1.publisher.client import Client
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\publisher\client.py", line 32, in <module>
from google.cloud.pubsub_v1.gapic import publisher_client
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\cloud\pubsub_v1\gapic\publisher_client.py", line 28, in <module>
import google.api_core.gapic_v1.client_info
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\api_core\gapic_v1\__init__.py", line 26, in <module>
from google.api_core.gapic_v1 import method_async # noqa: F401
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\api_core\gapic_v1\method_async.py", line 20, in <module>
from google.api_core import general_helpers, grpc_helpers_async
File "c:\users\user\appdata\local\programs\python\python37\lib\site-packages\google\api_core\grpc_helpers_async.py", line 38, in <module>
class _WrappedCall(aio.Call):
AttributeError: module 'grpc.experimental.aio' has no attribute 'Call'
Любая помощь приветствуется, спасибо!