快速入门:使用 Cloud Build 自动执行 App Engine 部署

本主题介绍在对 Cloud Source Repositories 中存储的应用提交了新内容时如何将其自动部署到 App Engine。

准备工作

  1. 完成创建代码库快速入门中的步骤。

    完成快速入门后,您会得到一个可以部署到 App Engine 的应用。

  2. 启用以下 API:

授予 App Engine 访问 Cloud Build 服务帐号的权限

Cloud Build 使用服务帐号来部署代码。此帐号的默认权限无法执行某些操作,例如部署到 App Engine

您可以向 Cloud Build 服务帐号授予其他 IAM 角色,令其可以部署到 App Engine。

要授予 App Engine 访问 Cloud Build 服务帐号的权限,请执行以下操作

  1. 在 Console 中打开 IAM 页面

    打开 IAM 页面

  2. 选择您的项目并点击继续

  3. 在成员列表中,查找名为 [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com 的 Cloud Build 服务帐号,其中 [PROJECT_NUMBER] 是您的 GCP 项目编号。

  4. 点击该行中的铅笔图标。

  5. 点击添加其他角色

  6. 选择角色下拉菜单中,选择 App Engine,然后选择 App Engine 管理员

  7. 点击保存

部署应用

  1. 从一个终端窗口中,导航到包含代码库的目录。

    cd hello-world
    
  2. 部署示例应用。

    gcloud app deploy app.yaml
    
  3. 验证您的应用是否正在运行。

    gcloud app browse
    

    浏览器窗口现在应该显示以下内容:

    Hello world!
    

创建 cloudbuild.yaml 文件

  1. 从一个终端窗口中,导航到包含代码库的目录。

    cd hello-world
    
  2. 使用文本编辑器创建名为 cloudbuild.yaml 的文件并向其粘贴以下内容:

    steps:
    - name: "gcr.io/cloud-builders/gcloud"
      args: ["app", "deploy"]
    timeout: "1600s"
    

将 cloudbuild.yaml 文件添加到代码库

  1. 将文件添加到代码库。

    git add .
    
  2. 提交此文件。

    git commit -m "Add cloudbuild.yaml file"
    
  3. 使用 git push 命令将本地 Git 代码库的内容添加到 Cloud Source Repositories:

    git push origin master
    

创建构建触发器

  1. 在 Google Cloud Platform Console 中打开 Cloud Build 页面。

    打开 Cloud Build 页面

  2. 选择您的项目,然后点击打开

  3. 点击创建触发器

  4. 选择 Cloud Source Repository

  5. 从可用代码库列表中,选择 hello-world 代码库,然后点击继续

  6. 名称框中输入以下内容:

    App Engine Test
    
  7. 触发器类型下,选择分支

  8. 构建配置下,选择 cloudbuild.yaml

  9. cloudbuild.yaml 位置框中输入以下内容:

    /cloudbuild.yaml
    
  10. 点击创建触发器

向应用推送更改

  1. 从一个终端窗口中,使用文本编辑器将 main.py 文件更新为如下所示:

    #!/usr/bin/env python
    
    import webapp2
    
    class MainHandler(webapp2.RequestHandler):
        def get(self):
    self.response.write('I update automatically!')
    
    app = webapp2.WSGIApplication([
        ('/', MainHandler)
    ], debug=True)
    
  2. 将该文件添加到 Git。

    git add .
    
  3. 提交此文件。

    git commit -m "Update app to demonstrate build triggers"
    
  4. 使用 git push 命令将本地 Git 代码库的内容添加到 Cloud Source Repositories:

    git push origin master
    

查看正在进行的构建

  1. 在 Google Cloud Platform Console 中打开“构建触发器”页面。

    打开“构建触发器”页面

  2. 选择您的项目,然后点击打开

  3. 在左侧导航栏中,点击构建记录

此时将会打开一个包含所有构建的列表。列表顶部是一个新条目,表示您将更改推送到 Cloud Source Repositories 以后才开始的构建。构建准备就绪后,对应的构建条目旁边会出现绿色对勾标记。

重新测试您的应用

在一个终端窗口中打开应用:

gcloud app browse

浏览器窗口现在显示为:

I update automatically!

清理

为避免系统因本快速入门中使用的资源向您的 GCP 帐号收取费用,请执行以下操作:

删除构建触发器

  1. 在 Google Cloud Platform Console 中打开“构建触发器”页面。

    打开“构建触发器”页面

  2. 选择您的项目,然后点击打开

  3. 找到您创建的触发器。

  4. 点击要删除的触发器旁边的更多按钮 “更多”按钮

  5. 选择删除

删除代码库

  1. 打开 Cloud Source Repositories 的“所有代码库”视图:

    打开 Cloud Source Repositories

  2. 将鼠标悬停在代码库上,然后点击齿轮按钮。

    此时会打开“常规设置”屏幕。

  3. 点击删除此代码库

    此时会打开“移除代码库”屏幕。

  4. 输入要删除的代码库的名称。

  5. 点击删除

后续步骤