我使用谷歌应用引擎标准环境与 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
谢谢你的帮助。
2条答案
按热度按时间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
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,相对最近。
wrrgggsh2#
您的gcloud版本可能意味着app_engine_api是beta版本,因此您必须
gcloud beta app deploy