如何复制/克隆整个 Google App Engine 项目

2023-12-13

我想知道是否有任何方法可以克隆谷歌应用程序引擎项目。我找不到任何与此相关的帮助,尽管人们经常需要此功能。假设我开始开发一个应用程序引擎应用程序,配置了如此多的选项/api。现在它将成为我的临时项目,我想要一个单独的生产项目。设置具有相同设置和配置的单独生产项目从来都不是一件容易的事。

首先,我想复制我的暂存项目以进行生产,并在那里进行任何所需的更改。


我的应用程序代码位于 git 存储库中master分支,从我以前部署到的地方my_appGAE项目。就像你一样,我想要一个暂存环境。

所以我创建一个新的my_app-devGAE 项目,这将是临时环境,仅由master branch.

然后我拉了一个production分支从master分支(实际上是应用程序代码的 git 控制副本),我现在将其用作my_app(生产)GAE 项目。

为了降低部署到错误应用程序的风险,我决定仅通过从cmds项目目录中的文本文件(添加到 git 存储库),包含将代码部署到适当的 GAE 应用程序的完整命令。我在中创建了这个文件master分支,看起来像这样(我使用的是 GAE SDK,而不是 gcloud):

/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update main/main.yaml apartci/apartci.yaml buildin/buildin.yaml
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_dispatch .
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_indexes -A my_app-dev main
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_cron -A my_app-dev .
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_queues -A my_app-dev .

然后我将文件合并到production分支并针对生产 GAE 应用程序更新了它(并添加了 git 命令来合并master在暂存环境中验证的分支更改已进入生产):

/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update main/main.yaml apartci/apartci.yaml buildin/buildin.yaml
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_dispatch .
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_indexes -A my_app main
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_cron -A my_app .
/usr/bin/python2.7 /usr/local/google_appengine/appcfg.py update_queues -A my_app .

### merge into production:

git checkout master; git pull; git checkout production; git merge master

### check deltas between master and production:

git diff master..production

所以现在我有 2 个并排的目录用于 2 个环境:my_app-staging and my_app-production,包含从以下位置拉取的 git 工作区master and production分别有分支。我在...工作my_app-staging直到我对结果感到满意,然后我切换到my_app-production并复制粘贴命令以合并更改并部署到生产中。

我可以随时检查暂存分支和生产分支之间的增量my_app-production(除了 GAE 应用程序名称之外,很可能还会有其他名称):

git diff master..production

Update

在实际的 GAE 应用程序方面,我不知道克隆功能。我在开发过程的早期阶段手动克隆了我的应用程序,当时没有太多配置。大多数配置添加/更改的需求都是后来发生的,我总是将它们应用到这两个应用程序。

It might可以使用以下命令创建这样的实用程序Google 应用程序引擎管理 API。但我还没有使用它,我不知道它是否涵盖了完整克隆过程的所有旋钮。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何复制/克隆整个 Google App Engine 项目 的相关文章

随机推荐

  • Apache 反向代理不适用于 Node 和 SSL

    我正在尝试在 Web 服务器上的 HTTPS 上设置我的应用程序 我有一个使用 AutoSSL 安装在 InMotion 主机上的有效证书 我的 Node 应用程序在我的 Centos 服务器上的端口 3000 上运行 我的 apache
  • 标记(块)引用的作者的正确方法是什么?

    我正在尝试找出为引用添加归因的正确方法 互联网似乎对正确的方式存在分歧 Html5医生说如下 blockquote p A quote p blockquote
  • 根据所有其他列中是否存在 0/1 创建指示符列

    我经常发现自己必须应用以下条件 我有一个表 其中有多个评级为是 否或 0 1 的二进制列 我必须使用以下规则在计算中创建一个新的中间列 如果所有列均为 否 则新列为 否 如果至少一列具有 是 则摘要列必须表示 是的 我通常使用 case w
  • 如何使用 XPath/HTMLAgilityPack 读取 JavaScript 对象

    对于我的爬虫项目 我需要从 JavaScript 对象获取产品详细信息 如何从以下 JavaScript 中有效获取对象详细信息 我使用 XPath 和 HTMLAgilityPack
  • wordpress 致命错误:内存不足

    我已从 WHM gt PHP 配置编辑器将 php 内存限制从 whm 设置为 256M 即便如此 我的 WordPress 网站和管理员仍然向我显示如下错误 Fatal error Out of memory allocated 3617
  • TCP 套接字的 Android 服务

    根据我在这里提出的上一个问题中的建议 我正在尝试为我已写入服务的应用程序推送套接字连接 昨天我花了一天的大部分时间研究服务 实际上模拟了一些服务 一个是远程的 一个是本地的 我的问题分为两部分 1 在使用了本地服务和远程服务之后 我仍然不确
  • 什么是 ANSI 格式?

    什么是 ANSI 编码格式 是系统默认格式吗 它与 ASCII 有何不同 ANSI 编码是一个稍微通用的术语 用于指代系统 通常是 Windows 上的标准代码页 它更正确地称为Windows 1252关于西方 美国系统 它可以代表某些其他
  • 具有多个数字的欧几里得算法(GCD)?

    所以我正在用 Python 编写一个程序来获取任意数量的数字的 GCD def GCD numbers if numbers 1 0 return numbers 0 i m stuck here this is wrong for i i
  • 如何在audioPlayerDidFinishPlaying方法中多次播放()

    当我按 yourButton 或 yourButton2 或 yourButton3 时 每个都会播放一个音频文件 并且在播放音频时 UIButton 被设置为选中 我希望 yourButton4 连续实现其他 UIButton 的方法 首
  • Android Studio - JDK 问题、Android Studio 崩溃

    当我将 Java JDK 8 从 Update 40 更新到 45 后 我的所有项目打开时都出现错误 你知道 代码上的红色字母 当我点击 Alt Enter 时 它显示 Setup JDK 我尝试卸载 Java 和 Android Stud
  • iOS/Swift UIImageView (.jpg) 无法识别我的点击手势?

    我有一个简单的代码块 可以在我的图像被点击时播放声音 然而 当我点击我的图像时 点击甚至无法被识别 我相信这是真的 因为在点击图像时 handleTap 函数中的 println 不会打印任何内容 谁能给我一些关于问题可能出在哪里的见解 v
  • 为什么这个 XPath 表达式在 xmlstarlet 中没有返回正确的值?

    我正在尝试使用 xmlstarlet 提取此 KML 文件中 坐标 节点的内容 KML 文件使用 xmlstarlet 本身可以很好地验证 我将其缩减为一个小测试文件 其中包含
  • 在 Spring Boot 测试中加载不同的 application.yml

    我正在使用一个 Spring Boot 应用程序来运行我的src main resources config application yml file 当我通过以下方式运行测试用例时 RunWith SpringJUnit4ClassRun
  • MpAndroidChart Piechart 图例在底部中心切割问题

    我已附上截屏我的使用图表 红色框中显示传说 他们正在饼图上切割 下面是我的代码 pieChart setUsePercentValues false pieChart getDescription setEnabled false pieC
  • 使用 Chrome 语音识别有任何限制吗?

    我想在我的商业网络应用程序中使用 webkit speech recognition 是否有任何限制 网站查询限制 禁止商业用途 5分钟 300秒 后有超时 虽然我找不到任何文档
  • Python 骰子模拟

    我对模拟掷骰子的家庭作业有点困惑 问题要求创建一个返回 1 到 6 之间的随机整数值的函数 并创建一个主程序 询问用户要掷多少个骰子 必须限制为 5 个骰子 并调用该函数来打印生成的骰子价值观 到目前为止我有这个 import random
  • 如何从列表中获取不同的数据?

    我想要得到distinct人员名单中的名单 List
  • 从 MySQL 中的多个表中删除行

    我正在尝试从projects表以及与该项目相关的所有图像images table 可以说p id 10 DELETE FROM projects images WHERE projects p id AND images p id 这个查询
  • 我们可以用 C# 中的带有默认方法的接口替换抽象类吗

    在 C 8 0 中 我们有一个新功能 可以在接口中提供默认方法实现 该方法也可以被其实现类覆盖 我们曾经使用带有实例方法的抽象类来为其所有实现类提供通用功能 现在我可以将那些具有实例方法的抽象类替换为具有 C 8 0 中的默认方法实现的接口
  • 如何复制/克隆整个 Google App Engine 项目

    我想知道是否有任何方法可以克隆谷歌应用程序引擎项目 我找不到任何与此相关的帮助 尽管人们经常需要此功能 假设我开始开发一个应用程序引擎应用程序 配置了如此多的选项 api 现在它将成为我的临时项目 我想要一个单独的生产项目 设置具有相同设置