GCP应用引擎标准部署失败,灵活部署成功



我很难使用应用引擎在谷歌云平台上正确部署任何东西。

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.
AppEngineFlex中的默认Node.js版本取自最新的LTS(长期支持(版本。如果您想指定一个版本,可以在应用程序的package.json文件中使用engines字段来指定。
{
"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

可能感兴趣:如何判断谷歌应用程序引擎文档页面是否适用于标准或灵活的环境

最新更新