使用 Cloud Code 进行开发

1. 目标

在本实验中,您将执行以下操作:

  • 探索 Cloud Code 插件
  • 部署到 Kubernetes 集群
  • 流式传输 Kubernetes 日志
  • 利用更改的热重载
  • 调试实时 Kubernetes 应用

2. 准备工作区

克隆应用

如需克隆代码库并在开发环境中打开,请执行以下操作:

  1. 访问以下网址,打开 Cloud Shell 编辑器

https://ide.cloud.google.com

  1. 在终端窗口中,使用以下命令克隆应用源代码:

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. 切换到该目录,并将 IDE 工作区设置为代码库根目录

cd sample-app && cloudshell workspace .

启动 Minikube

在本部分中,您将使用名为 Minikube 的本地版 Kubernetes 构建、测试、部署和访问应用。

  1. 在终端中,运行以下命令来启动 minikube:

minikube start

Minikube 会在 Cloud Shell 中设置本地 Kubernetes 集群,此设置需要几分钟时间。在启动期间,请花点时间查看下一步中 Cloud Code 提供的各种界面。

3. 探索 Cloud Code 插件

Cloud Code 可为 Kubernetes 和 Cloud Run 应用的整个开发周期(从基于现有模板创建应用到监控已部署应用的资源)提供 IDE 支持。您将使用 Cloud Code 提供的不同命令和视图。在此步骤中,您将熟悉基本界面。

通过活动栏查看资源管理器视图

用户可以通过活动栏访问多个界面面板。如需简要了解各种视图,请点击每个视图的图标

API Explorer:

  • 点击活动栏中的“Cloud Code - Cloud API”图标 Cloud Code 。如需详细了解如何在此视图中操作,请参阅文档

ded1723c524edd72.png

Secret Manager Explorer:

  • 点击活动栏中的 Secret Manager 视图 。如需详细了解如何在此视图中工作,请参阅文档

89f88159bcf79fa9.png

Cloud Run Explorer:

  • 使用左侧活动栏中的 Cloud Run 图标导航到 Cloud Run Explorer。如需详细了解如何在此视图中操作,请参阅文档

a1d583fd06413011.png

Kubernetes 探索器:

  • 使用左侧活动栏中的图标导航到 Kubernetes Explorer 。如需详细了解如何在此视图中操作,请参阅文档

b2b8ab3975c5b0c9.png

查看状态栏命令

您可以通过状态栏中的指示器快速访问常用命令。

  • 在状态栏中找到 Cloud Code 扩展程序指示器 d61e85cf23a32a40.png ,然后点击它。
  • 查看可用于在 Cloud Run 和 Kubernetes 上运行和调试的各种命令
  • 点击“打开欢迎页面”可查看更多详细信息和示例活动

查看命令面板命令

您还可以通过命令面板使用其他命令。查看您可以访问的命令列表。

  • 打开 Command Palette(按 Ctrl/Cmd+Shift+P),然后输入 Cloud Code 以过滤可用的命令。
  • 使用箭头键在命令列表中循环浏览。

4. 部署到 Kubernetes 集群

在本部分中,您将构建、测试、部署和访问应用。

以下步骤会启动源代码的 build,然后运行测试。构建和测试需要几分钟才能运行。这些测试包括单元测试和验证步骤,用于检查为部署环境设置的规则。此验证步骤已配置完毕,可确保您仍在开发环境中工作时收到有关部署问题的警告。

  1. 在 Cloud Shell Editor 底部的窗格中,选择 Cloud Code  d61e85cf23a32a40.png
  2. 在顶部显示的面板中,选择“在 Kubernetes 上运行”。如果系统提示您,请选择“是”以使用 minikube Kubernetes 上下文。
  3. 选择下部窗格中的“输出”标签页 4866761cb9c691e2.png,查看进度和通知
  4. 在右侧的渠道下拉菜单中选择“Kubernetes:运行/调试 - 详细”,以查看其他详细信息和从容器实时传输的日志 c5e31091d464dbcf.png

构建和测试完成后,“输出”标签页将显示 Resource deployment/sample-app-dev status completed successfully,并列出两个网址。

  1. 在 Cloud Code 终端中,将光标悬停在输出中的第一个网址 (http://localhost:8080) 上,然后在显示的工具提示中选择“打开网页预览”。

应用的本地版本会在浏览器中打开。此版本的应用正在 minikube 的 Kubernetes 集群中运行。

  1. 在浏览器中,刷新页面。“计数器”旁边的数字会增加,表示应用正在响应您的刷新。

在浏览器中,让此页面保持打开状态,以便在本地环境中进行任何更改时查看该应用。

5. 利用更改的热重载

在本部分中,您将对应用进行更改,并在应用在本地 Kubernetes 集群中运行时查看更改。在“Kubernetes:运行/调试”渠道的输出标签页中,除了应用网址之外,输出结果还会显示 Watching for changes.,这意味着已启用观察模式。当 Cloud Code 处于观察模式时,Cloud Code 会检测代码库中所有已保存的更改,并自动重建应用并重新部署包含最新更改的应用。

  1. 在 Cloud Shell 编辑器中,前往 main.go 文件。
  2. 在此 main.go 文件中,将第 23 行的颜色从绿色更改为蓝色。
  3. 保存文件。

Cloud Code 会检测到对应用的更改已保存,并自动重新部署更改。“输出”标签页会显示“已开始更新”。此重新部署需要几分钟时间才能完成。

这种自动重建类似于热代码重载,后者是某些应用类型和框架提供的一项功能。

  1. 构建完成后,转到已打开应用的浏览器,然后刷新页面。

刷新后,表格顶部的颜色会从蓝色变为绿色。

此设置允许您使用任何组件自动重新加载任何架构。当您使用 Cloud Code 和 minikube 时,在 Kubernetes 中运行的任何内容都具有此热代码重新加载功能。

6. 调试实时 Kubernetes 应用

您已运行应用、进行更改并查看正在运行的应用。在本部分中,您将调试应用,以确保应用可以提交回主代码库。

在此调试示例中,我们将重点介绍页面计数器的代码部分。

  1. 在 Cloud Shell Editor 中,打开文件 main.go
  2. 点击第 82 行(if err != nil {)左侧的数字,在应用中设置断点
  3. 在 Cloud Shell 编辑器底部的蓝色窗格中,选择 Cloud Code d61e85cf23a32a40.png 。
  4. 在顶部显示的面板中,选择“在 Kubernetes 上调试”。

Cloud Code 会运行并附加调试器,以便您能够访问应用的内存中状态,而不仅仅是面向用户的应用行为。

  1. 在部署过程结束时,窗口顶部会显示一个提示,要求您确认应用部署到的容器中的目录。f96e9a814edb44f4.png

验证该值是否已设置为 /go/src/app,然后按 Enter 键接受该值

  1. 等待调试器完成部署。当状态栏变为橙色且输出报告 "Attached debugger to container "sample-app-dev-..." successfully 时,表示已完成。”
  2. 在 Cloud Code 终端中,将光标悬停在输出中的第一个网址 (http://localhost:8081) 上,然后在显示的工具提示中选择“打开网页预览”。网页无法完成加载,这是预期行为。
  3. 切换回 IDE,此时调试器会显示在其中。标签页中会显示代码,您会看到调用堆栈以及代码该部分中可用的变量。您可以展开“变量 - 本地”,在此处查看当前计数器变量值。
  4. 如需允许网页继续加载,请选择调试窗口中的“继续”图标 8f395391c4828528.png
  5. 调试完成后,点击停止按钮以终止每个正在运行的线程。81d142a9e1a2c01b.png