Google App Engine - 无法链接到 github 存储库

Posted

技术标签:

【中文标题】Google App Engine - 无法链接到 github 存储库【英文标题】:Google App Engine - cannot link to github repository 【发布时间】:2018-04-16 02:30:33 【问题描述】:

抱歉,关于这一切的真正新手问题...几个月前,我使用持续部署将 nodejs/expressJS 应用程序部署到 Heroku - 基于对我的 Github 存储库的更改,该应用程序将更新。只需几个步骤即可完成所有设置 - 非常简单。https://devcenter.heroku.com/articles/github-integration#automatic-deploys

我尝试使用 Google Cloud App Engine 设置类似的东西。我已经尝试了几个小时来找出如何将 Git 存储库链接到我的 App Engine 中,但一直无法弄清楚。

使用“gcloud app deploy”手动部署到 App Engine 似乎每次都复制我的整个项目,需要很长时间。我需要一个基于 git 的解决方案。

你是怎么做到的?我不知道您将如何将源存储库或远程存储库设置为 App Engine 应用的“文件”。

我花了几个小时在谷歌上搜索并尝试了一些东西,但无济于事。

https://cloud.google.com/source-repositories/docs/adding-repositories-as-remotes
https://cloud.google.com/appengine/docs/flexible/nodejs/quickstart
https://cloud.google.com/solutions/continuous-delivery-bitbucket-app-engine
https://cloud.google.com/shell/docs/quickstart

如果有人能指点我一步一步的简单方向,我将不胜感激。

【问题讨论】:

【参考方案1】:

要链接到 GitHub,您可能正在寻找 Connecting a Hosted Repository:

您可以将Cloud Source Repository 连接到 Git 存储库 托管在GitHub 或Bitbucket。当您将更改推送到 托管存储库,更改会自动与 云源存储库。

但从此类 repo 自动部署 GAE 代码是另一回事。 GAE 本身(至少,AFAIK)没有这种能力。但是仍然可以将自动部署设置为各种 CI/CD 管道的一部分(需要一些小的自动化工作 - 准备和调用 gcloud app deploy cmd)。一些例子:

Continuous Deployment to App Engine Using Bitbucket Pipelines。 Automatic deployment of Google App Engine project with Gitlab Continuous Integration

至于部署速度——主要取决于你使用的 GAE 环境:

只能在标准环境下更新单个应用文件 由于您使用的是 NodeJS - 您被灵活的环境所困扰,部署意味着使用整个应用程序代码构建和存储 docker 文件,这比上传单个文件要慢得多。查看Google cloud deploy so slow中引用的一些相关帖子

不知道 Heroku 部署涉及什么,但即使步骤相同,也需要考虑其他一些事情:在后台执行自动部署,无人值守,总是比手动部署更快开发者正盯着屏幕,吸入每一个进度标志,每一秒都在计数(即使挂钟另有说明!);)

特别关注在云存储库上下文中加速 GAE 部署的方法,存在几个可能感兴趣的线程,例如 Google Cloud: How to deploy mirrored Repository(也请查看链接/相关帖子)。

【讨论】:

以上是关于Google App Engine - 无法链接到 github 存储库的主要内容,如果未能解决你的问题,请参考以下文章

OSX 上的 Google App Engine SDK 路径在哪里?

Cloud Build 无法部署到 Google App Engine - 您无权充当 @appspot.gserviceaccount.com

使用 Google App Engine 时无法导入 Flask

通过 Google Cloud SDK 更新 App Engine 应用程序后无法启动它

java.lang.NoClassDefFoundError:部署到Google App Engine时无法初始化类net.sf.cglib.proxy.Enhancer。

Google App Engine 上的 Production App 突然无法访问 Google Cloud Storage