如何从Gitlab CI部署到AppEngine标准环境

56次阅读
没有评论

问题描述

想知道如何从Gitlab CI部署到AppEngine标准环境。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据我所了解,有两种部署GAE应用的方式:
1. 使用gcloud app deploy命令:

gcloud app deploy - deploy the local code and/or configuration of your app to App Engine
  1. 使用Admin API。参考使用Admin API部署应用
  2. 将应用的资源上传到Cloud Storage。
  3. 创建一个定义部署的配置文件。
  4. 创建并发送部署应用的HTTP请求。

gcloud(用于第一种方法)和gsutil(用于第二种方法的第一步)都是Google Cloud SDK的一部分,所以你需要在你的runner上安装SDK。

以下是一个使用第一种方法的GAE部署示例的必要步骤,该示例来自Getting started with Angular 6, GitLab CI/CD and Google App Engine(可能需要详细阅读):
– 在Gitlab中设置环境变量,包括GAE服务账号和项目ID信息。
– 在你的.gitlab-ci.yml文件的部署部分,添加一个before_script部分来安装SDK(根据当前SDK版本进行更新):

before_script:
  - wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-218.0.0-linux-x86.tar.gz
  - tar -xzf  google-cloud-sdk-218.0.0-linux-x86.tar.gz
  - ./google-cloud-sdk/install.sh
  • 添加一个script部分来进行实际的部署,并引用那些环境变量:
script:
  - echo $GAE_KEY_FILE > gae_auth.json
  - ./google-cloud-sdk/bin/gcloud auth activate-service-account --key-file gae_auth.json
  - ./google-cloud-sdk/bin/gcloud app deploy --project=$GAE_PROJECT_ID

方案2

使用脚本或工具来管理部署可能会增加复杂性,并且需要确保环境变量和命令的正确设置。
另一种方法是编写脚本或使用工具来控制部署。你可以使用gcloud app deploy命令手动控制部署,或者使用一些第三方工具来管理部署的依赖关系。

希望这些解决方案能帮助到你!

正文完