Невозможно развернуть приложение Python Flask в среде Google App Engine Flex - PullRequest
0 голосов
/ 25 октября 2018

Я искал во многих местах и ​​пробовал несколько способов найти решение этой проблемы.Но ничего не помогло, не могли бы вы помочь мне предоставить решение.Становится чрезвычайно сложно разместить приложение с флешкой Python в гибкой среде Google App Engine.Код Python: "getresource.py"

Здесь - это ссылка от Google для развертывания приложения Python Flask

Вот простойкод:

from flask import Flask, jsonify
from pymysql import connections, ProgrammingError, DatabaseError, MySQLError, DataError
from os import environ

DB_HOST = environ.get("DB_HOST")
USER = environ.get("USER")
PWD = environ.get("PASSWORD")
DATABASE = environ.get("DATABASE")

app = Flask(__name__)

dbconn = connections.Connection(
                                host=DB_HOST,
                                port=3306,
                                user=USER,
                                password=PWD,
                                db=DATABASE
                                )

@app.route("/getResource/<id>", methods=['GET'])
def getresource(id):
    result = ()
    select_sql = "SELECT `id`, `firstName`, `middleName`, `lastName`, `listOfTechWorkedOn`, `certifications`, `projects`, `applicationWorkLoadTypes` FROM `resource` WHERE `id`=%s"
    cursor = dbconn.cursor()

    try:
        cursor.execute(select_sql, (id))
        result = cursor.fetchone()

        response = {}
        response['id'] = result[0]
        response['firstName'] = result[1]
        response['middleName'] = result[2]
        response['lastName'] = result[3]
        response['listOfTechWorkedOn'] = result[4]
        response['certifications'] = result[5]
        response['projects'] = result[6]
        response['applicationWorkLoadTypes'] = result[7]

        return jsonify(response)

    except ProgrammingError as p:
        return 
    except DatabaseError as d:
        return d
    except MySQLError as m:
        return m
    except DataError as de:
        return de

    dbconn.close()

if __name__ == '__main__':
    app.run(host='127.0.0.1',port=8080, debug=True)

Вот файл app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT getresource:app
service: getresource

runtime_config:
  python_version: 3

manual_scaling:
  instances: 1

env_variables:
  DB_HOST: "1.2.3.4"
  USER: "root"
  PASSWORD: "abcdefg"
  DATABASE: "abcd"

файл needs.txt

Flask==1.0.2
gunicorn==19.9.0
PyMySQL==0.9.2

Iполучаю следующую ошибку: «gcloud app deploy»

ОШИБКА: (gcloud.app.deploy) Ответ об ошибке: [13] Во время развертывания произошла внутренняя ошибка.

Я пробовал несколько способовКак изменение кода Python, помещение облачных библиотек Google в файл require.txt, изменение порта, имени службы и т. д. Но, похоже, ничего не работает.

И, что удивительно, я не получаю трассировку ошибок в журналах стековых драйверовтакже.И у Google, похоже, нет правильного ответа (по крайней мере, из-за всего того, что я сделал, прибегая к помощи)

gcloud версия

Google Cloud SDK 222.0.0
bq 2.0.36
core 2018.10.19
gsutil 4.34

**

  • РЕДАКТИРОВАТЬ:

** Спасибо за все ответы.Я перепробовал все варианты, но получил ту же ошибку с последующим сообщением отладки.Я ничего не могу сделать из этого

Спасибо за ответ.Я пробовал все предложенные варианты, но получал ту же ошибку.Ниже приведен журнал отладки, и я ничего не могу из него сделать.

Updating service [getresource] (this may take several minutes)...failed.
DEBUG: (gcloud.app.deploy) Error Response: [13] An internal error occurred during deployment.
Traceback (most recent call last):
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\calliope\cli.py", line 841, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\calliope\backend.py", line 770, in Run
    resources = command_instance.Run(args)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\surface\app\deploy.py", line 90, in Run
    parallel_build=False)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\command_lib\app\deploy_util.py", line 620, in RunDeploy
    flex_image_build_option=flex_image_build_option)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\command_lib\app\deploy_util.py", line 422, in Deploy
    extra_config_settings)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\api_lib\app\appengine_api_client.py", line 207, in DeployService
    poller=done_poller)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\api_lib\app\operations_util.py", line 315, in WaitForOperation
    sleep_ms=retry_interval)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\api_lib\util\waiter.py", line 254, in WaitFor
    sleep_ms, _StatusUpdate)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\api_lib\util\waiter.py", line 316, in PollUntilDone
    sleep_ms=sleep_ms)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\core\util\retry.py", line 229, in RetryOnResult
    if not should_retry(result, state):
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\api_lib\util\waiter.py", line 310, in _IsNotDone
    return not poller.IsDone(operation)
  File "C:\Users\M1044921\AppData\Local\Google\Cloud SDK\google-cloud-sdk\lib\googlecloudsdk\api_lib\app\operations_util.py", line 184, in IsDone
    encoding.MessageToPyValue(operation.error)))
OperationError: Error Response: [13] An internal error occurred during deployment.
ERROR: (gcloud.app.deploy) Error Response: [13] An internal error occurred during deployment.
...