我使用Google标准环境和Python3进行当前的项目。该项目使用App (google.appengine.api.memcache)作为缓存。
目前缓存无法工作,我认为可能是因为对APIs的依赖需要启用,因为当我尝试部署我的应用程序(gcloud应用程序部署)时,我有这样的警告: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.
我还尝试使用与Google示例完全相同的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这个问题和这个问题差不多,但我不能用它来解决我的问题:将app.yaml从go114更新为go115时发出警告
谢谢你的帮助。
发布于 2022-11-29 23:12:03
你的Google Cloud SDK已经过时了。根据@NoCommandLine的答案中的评论,你的SDK版本300是从2020年7月开始的,而像Python3这样的第二代运行时的捆绑服务直到2021年6月才进入私有预览。它们变成了一般在2021年9月提供。。如果您运行gcloud components update来获得最新的SDK (在本文发布时,它是410),您应该能够运行gcloud app deploy来部署一个Python3AppEngine应用程序,该应用程序可以访问Memcache捆绑服务. TL;DR来使用Python3中的捆绑服务:
app_engine_apis: true添加到app.yamlappengine-python-standard添加到requirements.txtfrom google.appengine.api import wrap_wsgi_appapp = Flask(__name__); app.wsgi_app = wrap_wsgi_app(app.wsgi_app)gcloud components update注意:您不再需要运行
pip install -t lib -r requirements.txt到供应商/自包包依赖项.现在,当您将应用程序部署到云端时,它们将自动为Py3用户(但不是Py2 )安装。
我最近发布了一个关于如何从"Gen2“访问捆绑服务的视频& codelab (动手教程)。,但现在意识到,我应该提到更新您的SDK,这意味着它几乎涵盖了上面的所有说明。:P
对于那些有兴趣最终从Memcache迁移到更强大的东西(比如Redis )的人来说,我也是为Redis发布的从Memcache迁移到云内存的内容,最近也是如此。
发布于 2022-11-29 18:45:41
您的gcloud版本可能意味着app_engine_apis处于beta版本,因此您必须这样做。
gcloud beta app deploy
https://stackoverflow.com/questions/74617416
复制相似问题