如何将package.json版本ID部署到AppEngine灵活环境--version参数?

杰森西罗塔

AppEngine灵活环境的部署使用gcloud app deploy通常较慢,因为AppEngine必须先部署容器环境,然后才能部署代码并向其切换流量。

加快部署速度的常用方法是指定版本,这样AppEngine会将新代码部署到同一容器环境中。如:

gcloud app deploy --version=12345

在节点环境中,我想在我的部署脚本中使用package.json版本,例如:

{
  "name": "MyApp",
  "version": "1.3.4",
  "scripts": {
    "deploy":"gcloud app deploy --version=$npm_package_version"        
  }

NPM开箱即用,将配置中的值添加到以$ npm_package_为前缀的环境变量中,这样就可以了。

但是,AppEngine.的版本名称不接受

所以,我在找一个好办法能够把它传递到之前转换$ npm_package_version到AppEngine上认可的版本号gcloud上的<scripts>节点。

神经郁金香

我找到了一个适用于我的简单解决方案。

在我下面 package.json

{
  "name": "...",
  "version": "1.0.1",
  "scripts": {
    "deploy": "GAE_VERSION=$(echo ${npm_package_version} | sed 's/\\./-/g') && gcloud app deploy --version $GAE_VERSION"
  },
  "dependencies": {...},
  "devDependencies": {...}
}

实际上-这很简单。

  1. 获取npm_package_version并更改sed .-(GAE可以使用连字符)
  2. 结果分配给一个变量(这里GAE_VERSION
  3. 使用gcloud命令部署使用GAE_VERSION变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章