Compute Engine: URLFetch недоступен в этой среде - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь поместить сервер Python в виртуальную машину на Google Compute Engine, продолжительность которого превышает 10 минут (ограничение времени в App Engine для службы).Я даю вам свой код и вывод:

from google.cloud import storage as gcs
from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

def my_function(filename, stringdata):

   # init client gcp
   gcs_client = gcs.Client()
   bucket = gcs_client.get_bucket(config["cloud_storage_segment"])
   upload_blob_from_string(bucket, filename, stringdata)

Вывод говорит мне это:

Файл "/home/guillermo.diaz/.local/lib/python2.7/site-packages/flask/app.py ", строка 1994, в вызов возврат self.wsgi_app (environment, start_response)

Файл" /home/user/.local/lib/python2.7 / site-packages / flask / app.py ", строка 1985, в wsgi_app response = self.handle_exception (e)

Файл" /home/user/.local/lib/python2.7/site-packages / flask / app.py ", строка 1540, в перерисовке handle_exception (exc_type, exc_value, tb)

Файл" /home/user/.local/lib/python2.7/site-packages/flask / app.py ", строка 1982, в ответе wsgi_app = self.full_dispatch_request ()

Файл" /home/user/.local/lib/python2.7/site-packages/flask/app.py", строка 1614, в full_dispatch_request rv = self.handle_user_exception (e)

Файл" /home/user/.local/lib/python2.7/site-packages/flask/app.py ", строка 1517, в обработчике handle_user_exception (exc_type, exc_value, tb)

File "/ home / user / .local / lib / python2.7 / site-packages / flask / app.py ", строка 1612, в full_dispatch_request rv = self.dispatch_request ()

File" / home / user /.local / lib / python2.7 / site-packages / flask / app.py ", строка 1598, в dispatch_request возвращает self.view_functionsrule.endpoint

Файл" /home/user/my_module/main.py ",строка 50, в my_function bucket = gcs_client.get_bucket (config ["cloud_storage_segment"])

Файл "/home/user/.local/lib/python2.7/site-packages/google/cloud/storage/client.py ", строка 225, в get_bucket bucket.reload (client = self)

File" /home/user/.local/lib/python2.7/site-packages/google/cloud/storage/_helpers.py ", строка 108, перезагрузка _target_object = self)

Файл" /home/user/.local/lib/python2.7/site-packages/google/cloud/_http.py ", строка290, в заголовках api_request = заголовки, target_object = _target_object)

Файл "/home/user/.local/lib/python2.7/site-packages/google/cloud/_http.py", строка 183,в _make_request вернуть self._do_request (метод, URL, заголовки, данные, целевой_объект) Файл "/home/user/.local/lib/python2.7/site-packages/google/cloud/_http.py", строка 211, в _do_request возвращает self.http.request (

Файл "/home/user/.local/lib/python2.7/site-packages/google/cloud/_http.py", строка 73, в http возвращает self._client._http

Файл "/home/user/.local/lib/python2.7/site-packages/google/cloud/client.py", строка 151, в _http self._credentials))

Файл "/home/user/.local/lib/python2.7/site-packages/google/auth/transport/requests.py", строка 161, в init super (AuthorizedSession, self). init (** kwargs)

Файл "/home/user/.local/lib/python2.7/site-packages/requests/sessions.py", строка 396, в init self.mount ('https://', HTTPAdapter ())

Файл "/home/user/.local/lib/python2.7/site-packages/requests_toolbelt/adapters/appengine.py", строка 79, в init super (AppEngineAdapter, self). init (* args, ** kwargs)

File" / home /user / .local / lib / python2.7 / site-packages / запросы_toolbelt / adapters / appengine.py ", строка 60, в init super (AppEngineMROHack, self). init (* args, ** kwargs)

Файл "/home/user/.local/lib/python2.7/site-packages/requests/adapters.py", строка 127, в init self.init_poolmanager (pool_connections, pool_maxsize, block = pool_block)

Файл "/home/user/.local/lib/python2.7/site-packages/requests_toolbelt/adapters/appengine.py",строка 82, в init_poolmanager self.poolmanager = _AppEnginePoolManager (self._validate_certificate)

Файл "/home/user/.local/lib/python2.7/site-packages/requests_toolbelt/adapters/appengine.py",строка 122, в init validate_certificate = validate_certificate)

Файл "/home/user/.local/lib/python2.7/site-packages/urllib3/contrib/appengine.py",строка 103, в init"URLFetch недоступен в этой среде.")

Может кто-нибудь мне помочь?Спасибо за ваше время!

1 Ответ

0 голосов
/ 11 октября 2018

Я решаю проблему ...

Когда я использую этот импорт:

from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

Все запросы http пытаются использовать URLFetch, и это в GCE создает проблемы.Только Мне нужно удалить эти две строки, и все работает отлично.

Спасибо за ваше время!GDJ

...