相关疑难解决方法(0)

如何在Google App Engine上设置登台环境

正确配置开发服务器和生产服务器之后,我想在Google App Engine上设置一个临时环境,可以在将新版本部署到生产环境之前对其进行实时测试.

我知道两种不同的方法:

:第一个选项是修改app.yaml 版本参数.

version: app-staging
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种方法的是生产数据受到我的临时测试的污染,因为(如果我错了,请纠正我):

  1. 暂存版本和生产版本共享相同的数据存储
  2. 暂存版本和生产版本共享相同的日志

关于第一点,我不知道是否可以使用新的命名空间python API "修复"它.

B.第二个选项是修改app.yaml 应用程序参数

application: foonamestaging
Run Code Online (Sandbox Code Playgroud)

通过这种方法,我将创建一个完全独立于Production版本的第二个应用程序.
我看到的唯一缺点是我被迫配置第二个应用程序(管理员设置).
使用像Gaebar这样的备份\还原工具,此解决方案也可以正常运行.

您使用什么样的方法为Web应用程序设置临时环境?
另外,在部署之前,您是否有任何自动脚本来更改yaml?

python deployment google-app-engine staging

55
推荐指数
3
解决办法
1万
查看次数

错误:(gcloud.app.deploy) 错误响应:[9] 云构建 XXXXXXXXXXXX 状态:失败

我遇到了这个错误将近一个小时,但找到了一个解决方案,导致了一个令人担忧的困境。该解决方案让我们意识到,当任务队列中有一个任务要由要替换的服务器版本提供服务时,无法运行 gcloud app deploy

错误是:ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build XXXXXXXXXXXX status: FAILURE那个 xxxx 部分是一些自动生成的 base64 值。

解决方法是:删除任务队列中的所有任务

问题:是否有解决方法或者我必须在部署之前删除任务队列中的所有任务(就像我所做的那样)?

详细信息:服务器是用 nodejs 编写的。

google-app-engine task-queue google-tasks-api google-cloud-platform gcloud

11
推荐指数
2
解决办法
6395
查看次数

Firebase 中缺少通配符身份验证选项的解决方法?

我们正在使用 google Cloud Build 将我们的应用程序的拉请求特定版本部署到 GAE,以便我们可以在将其发布到野外之前与利益相关者共享开发版本。在 GAE 上,网址看起来像http://[VERSION_ID]-dot-[YOUR_PROJECT_ID].appspot.comhttps://my-pr-name-dot-projectname.appspot.com

我们希望允许利益相关者预览并运行 E2E 测试(包括 Firebase 登录),但由于本质上是通配符子域,因此我们必须在 Firebase 控制面板中的“授权域”下手动将每个子域列入白名单部署。不幸的是,Firebase 不允许使用通配符样式白名单(例如 *-dot-projectname.appspot.com)。

我们已联系 Google 支持人员,但他们确认白名单只能手动完成。

google-app-engine firebase google-cloud-build

7
推荐指数
1
解决办法
2484
查看次数

在 Google App Engine 上持续集成/部署/交付,风险太大?

我们最近在 Google App Engine 上设置了一个 nodejs webapp 的持续集成/部署/交付。CI 服务器 (GitLabCI) 根据分支 (develop/master) 运行依赖项安装、构建、测试和部署到集成/生产。

在今天,我们面临的唯一错误是在依赖步骤期间,所以我们并没有太在意它。但是昨天(21/10/16)发生了大规模的 DNS 中断,并且管道在部署步骤中间失败,导致生产中断。只需重新运行管道即可完成工作,但问题随时可能重现。

我的问题是:

  • 在持续部署过程中,我们如何处理此类网络问题?
  • 在 Google App Engine 上持续部署真的是个好主意吗?
  • 如果是这样,App Engine 部署方法是什么?我没有找到任何相关的文档...

目前我们只有两个版本“dev”和“prod”在提交后更新,但在随机时间我可以观察到奇怪的行为。

非常欢迎任何回应/建议/反馈!

关于我正在谈论的网络问题的堆栈跟踪示例:

DEBUG: Error sending result: 'MetadataServerException(HTTPError(),)'. Reason: 'PicklingError("Can't pickle <type 'cStringIO.StringO'>: attribute lookup cStringIO.StringO failed",)'
Traceback (most recent call last):
  File "/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 733, in Execute
    resources = args.calliope_command.Run(cli=self, args=args)
  File "/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 1630, in Run
    resources = command_instance.Run(args)
  File "/google-cloud-sdk/lib/surface/app/deploy.py", line 53, in Run
    return deploy_util.RunDeploy(self, args)
  File "/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deploy_util.py", …
Run Code Online (Sandbox Code Playgroud)

google-app-engine continuous-integration continuous-deployment continuous-delivery gitlab-ci

5
推荐指数
1
解决办法
1608
查看次数

如何在多个开发环境中使用GAE的dispatch.yaml?

我正在尝试了解dispatch.yamlGoogle App Engine 的文件。

我们有一个带有前端和后端的香草Web应用程序。我们也有开发和生产环境。两种环境在GAE上都有两项服务- frontenddefault,这是后端。

我们有一个带有前端和后端的香草Web应用程序。我们也有开发和生产环境。我们在GAE上提供两项服务-前端和默认(后端)。我们在GAE上有两个项目- staging,这是我们的开发环境,而production,是我们的生产环境。暂存环境是从前端和后端的dev分支构建的。生产环境是由前端和后端的主人构建的。

我们想在登台和生产环境中使用自定义路线。

我尝试使用dispatch_staging.yamldispatch_prod.yaml区分文件,但GAE无法识别这些文件名。我猜我们可以重命名前端服务,但是看起来好像没有办法解决default

您如何使用它dispatch.yaml来指定要构建的环境?

google-app-engine google-cloud-platform app-engine-flexible

3
推荐指数
2
解决办法
1237
查看次数