我很难使用应用引擎在谷歌云平台上正确部署任何东西。
app.yaml
runtime: nodejs8
#env: flex
beta_settings:
cloud_sql_instances: my-project:us-central1:my-db
我正在使用以下cmd进行部署:
gcloud app deploy --project=my-project
我更喜欢使用标准环境而不是灵活的环境,所以我评论了env:flex。部署后,我会得到一个错误,即nodejs不是有效的运行时,所以我将其从nodejs更改为nodejs8。我可以成功地部署到一个灵活的环境:
env: flex
runtime: nodejs
但我无法使用进行部署
runtime: nodejs8
错误为:
Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 0 files to Google Cloud Storage ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [13] Error importing container
images.
{
"engines": {
"node": "8.x"
}
}
在这个链接中,你可以找到更多关于如何在应用引擎Flex环境中更改Node.js版本的深入解释
Node.js运行时
标准和灵活的环境彼此之间有很大不同,通常不太可能在其中一个上任意部署完全相同的代码,需要env: flex
以外的更改。
的确,node.js似乎确实是这种差异最小的语言,但它们仍然存在。至少到目前为止(标准的envnode.js产品还是相当新的(。其他语言有大量的差异,例如,只需查看应用程序引擎标准环境指南的python应用程序引擎用户灵活环境
对于node.js,runtime
只是其中一个区别。
来自标准env-app.yaml配置文件:
对于Node.js,
app.yaml
需要仅包括runtime: nodejs8
条目
从灵活的env-app.yaml配置文件:
运行时:nodejs
此设置是必需的。它是应用程序引擎语言的名称此应用程序使用的运行时。要指定Node.js,请使用
nodejs
。
可能感兴趣:如何判断谷歌应用程序引擎文档页面是否适用于标准或灵活的环境