venditan/appengine-deploy

此包的最新版本(v1.2.1)没有可用的许可信息。

Google App Engine应用程序的环境和部署管理器

v1.2.1 2017-02-06 13:33 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:19:55 UTC


README

Google App Engine应用程序的环境和部署管理器。

支持多个模块和多个部署目标(即部署到多个唯一的appid)。

致力于实现:http://12factor.net/config

目录

这是什么?它与appcfg.py有何不同?

这允许您将相同的代码/应用程序部署到多个目标环境(本地、多个不同的App Engine项目)。

关键的是,它还允许您为每个部署目标分别管理环境变量。

该工具使用appcfg.py实际推送部署,但在部署时构建一个动态命令,覆盖目标应用程序ID和环境变量。

示例 deploy.json 文件

部署目标和环境在deploy.json中配置,通常在项目根目录下。

以下是一个快速示例,其中alpha环境和live环境有不同的数据库凭据。

{
    "targets": {
        "alpha": {
            "app_id": "myapp-alpha",
            "version": "alpha++",
            "require_label": false,
            "environment": {
                "APP_DB_USER": "root",
                "APP_DB_NAME": "DatabaseName",
                "APP_DB_SOCKET": "/cloudsql/myapp:instance"
            }
        },
        "live": {
            "app_id": "myapp",
            "version": "2",
            "require_label": true,
            "environment": {
                "APP_DB_USER": "root",
                "APP_DB_NAME": "LiveDatabaseName",
                "APP_DB_SOCKET": "/cloudsql/myapp:instance"
            }
        }
    }
}

本地开发环境

您可以在yaml文件中配置本地开发服务器的环境变量,如下所示

env_variables:
  APP_DB_USER: root
  APP_DB_NAME: localdb

用法

deploy.json中配置的部署目标使用deploy命令执行,该命令由Composer提供,位于vendor/bin文件夹中。

例如,从项目根目录

examples模块部署到alpha目标环境

vendor/bin/deploy --run --module=examples --target=alpha

创建模板deploy.json文件

vendor/bin/deploy --init

显示部署的appcfg.py命令,但不运行它

vendor/bin/deploy --test --module=default --target=live

列出配置的部署目标

vendor/bin/deploy --verbose targets

默认模块

您可以使用appdefault来部署默认的App Engine模块(该模块在您的app.yaml文件中配置)。

目标

每个目标都是一个不同的部署,如“staging”和“production”。

它们必须有唯一的名称。

版本

如果您在版本名称后缀中加上++,则我们将在每次部署时自动递增版本。

在上面的示例中,第一次部署获得alpha1,第二次alpha2,依此类推。

为了做到这一点,我们必须能够检测已经运行哪些版本。因此,如果您删除了所有版本,我们将从1开始。

标签

您可以使用以下标签提供版本

vendor/bin/deploy --run --module=examples --target=alpha --label=rel200

当代码部署时,标签将被附加到版本号上。例如,如果版本是“alpha3”

alpha3-rel200

如果您的配置将“require_label”定义为true,当您将该目标部署到该目标时,您将需要输入标签。这对于生产环境、管理功能发布等特别有用。

重要标签必须与以下正则表达式匹配:[a-zA-Z0-9_]+(一个或多个字母数字或下划线)

代码分离,重定向

您可以从 deploy.json 文件中“重定向”到另一个文件,通常用于您的环境配置存储在另一个版本控制仓库的情况。

所以,这可能来自您的应用文件夹的部署文件

{
    "file":"../vendor/my-company/my-app-environment/deploy.json"
}

安装此工具

在您的 composer.json 的 require 部分

{
  "venditan/appengine-deploy": "1.1.*"
}

或者使用命令行

composer require venditan/appengine-deploy:1.1.*