Я пытаюсь получить данные из Google Analytics и отправить их в pubsub.В потоке данных я читаю данные из pubsub и облачного хранилища Google, выполняю некоторое сравнение и, наконец, отправляю их в большой запрос.Пост, который я выполняю некоторые операции над большим запросом.Когда я запускал код в Pycharm IDE, он работал с некоторыми предупреждениями во время выполнения.Но когда я пытался запустить Google App Engine в облаке, я получаю следующую ошибку:
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
return util.import_app(self.app_uri)
File "/env/local/lib/python2.7/site-packages/gunicorn/util.py", line 350, in
import_app
__import__(module)
File "/home/vmagent/app/main.py", line 6, in <module>
from google.cloud import pubsub_v1
File "/env/local/lib/python2.7/site-
packages/google/cloud/pubsub_v1/__init__.py", line 17, in <module>
from google.cloud.pubsub_v1 import types
google.pubsub.v1.Publisher.DeleteTopic: "google.pubsub.v1.DeleteTopicRequest" seems to be defined in "google/cloud/proto/pubsub/v1/pubsub.proto", which is not imported by "google/cloud/pubsub_v1/proto/pubsub.proto". To use it here, please add the necessary import.
Моя папка состоит из следующих элементов:
analyticsreporting.dat app.yaml client_key.json dataflow.py dfpipe GoBear.json main.py requirements.txt setup.py venv
app.yaml:
runtime: python
env: flex
service: dataflow-srihari
entrypoint: gunicorn -b :$PORT main:app
manual_scaling:
instances: 1
Requirements.txt содержит стоп-код всего Python 2.7 для venv, который у меня есть в локальной системе, чтобы избежать путаницы.
proto-google-cloud-pubsub-v1==0.15.4
google-api-core==0.1.4
google-api-python-client==1.7.4
google-apitools==0.5.20
google-auth==1.5.1
google-auth-httplib2==0.0.3
google-cloud==0.34.0
google-cloud-bigquery==0.30.0
google-cloud-core==0.28.1
google-cloud-logging==1.7.0
google-cloud-monitoring==0.30.1
google-cloud-pubsub==0.31.0
google-cloud-storage==1.13.0
Фрагмент кода:
from google.cloud import pubsub_v1
def pubsub_init():
publisher=pubsub_v1.PublisherClient()
topic="topicname"
return (publisher,topic)
Нажать:
my_data1 = json.dumps(my_data)
mydata = my_data1.encode('utf-8')
publisher.publish(topic, mydata)
Для чтения из pubsub:
BQ_data1 = p_bq | 'readFromPubSub' >> beam.io.ReadFromPubSub(
subscription='subname')
Пожалуйста, помогите мне избежать этой ошибки