Python Flask:从Swagger YAML转到Google App Engine?

Unk*_*der 5 python google-app-engine flask swagger google-cloud-platform

我使用Swagger编辑器创建了一个REST API,并且我已经请求了Python Flask的服务器代码下载.我正在尝试将其部署到Google Cloud Platform(我认为这是最新名称?还是GAE?)但我需要填补一些空白.

我知道Swagger代码有效,因为我在本地部署它没有任何问题.但是,它使用连接库而不是Flask.

我大部分都失去了如何为GCP合并app.yaml文件以及生成的代码中的正确入口点.另外,我知道生成的代码声明它自己的应用服务器,我认为你不需要为GCP做.这是我目前的app.yaml

application: some-app-name
version: 1
runtime: python27
api_version: 1
threadsafe: yes
entrypoint: python app.py

libraries:
- name: connexion
  version: "latest"
Run Code Online (Sandbox Code Playgroud)

这是我的app.py.

import connexion

if __name__ == '__main__':
    app = connexion.App(__name__, specification_dir='./swagger/')
    app.add_api('swagger.yaml', arguments={'title': 'this is my API'})
    app.run(port=8080)
Run Code Online (Sandbox Code Playgroud)

我现在得到的主要错误是

google.appengine.api.yaml_errors.EventError: the library "connexion" is not supported
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,因为我在app.py中声明app服务器的方式 - 可能不需要它.如何修改此文件仍然使用我的Swagger代码但在GCP上运行?

Dan*_*scu 5

您的文件中似乎存在一些不一致之处,目前尚不清楚您是否打算将其作为标准环境app.yaml文件还是灵活环境文件。我不知道是因为我不熟悉招摇和摇摇欲坠。

如果应该将其作为标准环境,则:

在App Engine标准环境中阅读Flask入门可能是一个好主意

但是,如果您的目标是一个灵活的环境app.yaml文件,那么:

  • 你所需要的env: flex,并runtime: python配置在它(vm: trueruntime: python27在原有的答案,现在已被弃用)
  • 安装/指定依赖项的方法有所不同,而不是通过本libraries节进行。