【问题标题】:How do I deploy the package.json version id to AppEngine flexible environment --version argument?如何将 package.json 版本 ID 部署到 AppEngine 柔性环境 --version 参数?
【发布时间】:2017-07-12 18:22:04
【问题描述】:

使用 gcloud app deploy 部署 AppEngine 灵活环境通常很慢,因为 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 批准的版本号的好方法,然后才能将其传递到 <scripts> 节点上的 gcloud

【问题讨论】:

  • 仍然是个好问题。我也在寻找答案。

标签: google-app-engine npm package.json


【解决方案1】:

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

低于我的 troncated 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 变量进行部署。

【讨论】:

  • 啊,好电话,这不是我最终使用的解决方案(我只是写了一个 bash 脚本并从脚本中调用它),但它回答了问题。
猜你喜欢
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 2013-03-12
  • 2017-08-23
  • 2021-10-09
相关资源
最近更新 更多