意外属性app_engine_apis部署Python 3应用引擎Flask应用程序时出错

xqnpmsa8  于 2022-12-05  发布在  Python
关注(0)|答案(2)|浏览(106)

我使用谷歌应用引擎标准环境与 flask Python3为当前项目。这个项目使用作为缓存的应用引擎Memcache(谷歌。
目前缓存不工作,我认为这可能是因为对需要启用的应用引擎API的依赖,因为当我尝试部署我的应用(gcloud app deploy)时,我收到了以下警告:WARNING: There is a dependency on App Engine APIs, but they are not enabled in your app.yaml. Set the app_engine_apis property.
我的问题是,当我尝试在我的app.yaml中设置依赖关系并部署时,我遇到了这个错误:Unexpected attribute 'app_engine_apis' for object of type AppInfoExternal.
我也尝试了与谷歌的例子完全相同的yaml文件:https://github.com/googlecodelabs/migrate-python2-appengine/blob/master/mod12b-memcache/app.yaml,它不起作用。
这里是我正在尝试使用的当前app. yaml:

runtime: python39
env: standard
app_engine_apis: true

resources:
  cpu: 2
  memory_gb: 4
  disk_size_gb: 15

manual_scaling:
  instances: 2

这个问题和这个问题几乎一样,但我不能用它来解决我的问题:How to deal with app_engine_apis warning when updating app.yaml from go114 to go115
谢谢你的帮助。

bbmckpt7

bbmckpt71#

你的Google Cloud SDK已经过时了。根据@NoCommandLine的回复中的评论,你的SDK版本300是2020年7月的,而第二代运行时的捆绑服务(如Python 3)直到2021年6月才进入私人预览。它们变成了generally available in Sep 2021。如果你运行gcloud components update来获得最新的SDK(在写这篇文章的时候,是410),您应该能够运行gcloud app deploy来部署一个能够访问Memcache bundled service.TL的Python 3 App Engine应用程序; DR使用Python 3中的捆绑服务:
1.将app_engine_apis: true加到app.yaml
1.将appengine-python-standard加到requirements.txt
1.导入WSGI Package :from google.appengine.api import wrap_wsgi_app

  1. Package WSGI对象(Flask):app = Flask(__name__); app.wsgi_app = wrap_wsgi_app(app.wsgi_app)
    1.查看这些说明,特别是如果您 * 不 * 使用Flask
    1.* * 更新您的云SDK**:gcloud components update
    注意:你不再需要运行pip install -t lib -r requirements.txt来依赖供应商/自捆绑包...当你将你的应用部署到云时,它们现在会自动为Py3用户安装(但不是Py2)。
    recently published a video & codelab (hands-on tutorial) on how to access the bundled services from "Gen2",但现在意识到我应该提到更新您的SDK,这意味着它涵盖了 * 几乎 * 以上所有指令。:P
    对于那些有兴趣最终从Memcache迁移到更强大的东西,如Redis,我也published content on migrating from Memcache to Cloud Memorystore for Redis,相对最近。
wrrgggsh

wrrgggsh2#

您的gcloud版本可能意味着app_engine_api是beta版本,因此您必须
gcloud beta app deploy

相关问题