В App Engine Standard при использовании среды выполнения Python3.7 тег script
под обработчиками должен быть установлен на auto
.Вы можете проверить документацию по этому здесь о том, как должен быть настроен app.yaml
, обратите внимание, что он отличается от времени выполнения Python2.7, где вам нужно было указать script
для запуска.
Вы можете решить эту проблему, изменив файл app.yaml
, например, так:
runtime: python37
entrypoint: gunicorn -b :$PORT handle_incoming_email.app
env_variables:
...
inbound_services:
- mail
- mail_bounce
handlers:
- url: /static
static_dir: static
- url: /_ah/mail/
script: auto
login: admin
Обратите внимание, что вместо требуемого изменения для script
в /_ah/mail/
было auto
указать путь к скрипту для запуска.Затем обработчик должен автоматически найти сценарий для выполнения из файлов, развернутых в App Engine.
Далее, в своем файле handle_incoming_email.py
вы не определяете какую-либо точку входа для обработки вашего URL /_ah/mail
, вы можете решить эту проблему, добавив следующее, например:
import webapp2
app = webapp2.WSGIApplication([
('/_ah/mail/', IncomingMailHandler),
], debug=True)
Уведомлениетеперь, как я изменил entrypoint
в вашем app.yaml
файле, чтобы он соответствовал вновь созданной точке входа WSGI в вашем handle_incoming_email.py
файле.
Также я не уверен насчет регулярного выражения '/. +' для обработчика, вы должны оставить его в '/. *' .