使用 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

Cloud Run Explorer:

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

a1d583fd06413011.png

Kubernetes Explorer:

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

b2b8ab3975c5b0c9.png

查看状态栏命令

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

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

查看命令面板命令

命令面板还提供了其他命令。查看您可以访问的命令列表。

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

4. 部署到 Kubernetes 集群

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

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

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

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

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

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

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

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

5. 利用更改的热重载

在本部分中,您将对应用进行更改,并查看应用在本地 Kubernetes 集群中运行时的更改。在“Kubernetes:Run/Debug”渠道的输出标签页中,除了应用网址之外,输出内容也显示 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 行左侧的编号,在应用程序中设置断点(如果 err != nil {)
  3. 在 Cloud Shell Editor 底部的蓝色窗格中,选择 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 中的图标
  5. 完成调试后,点击停止按钮以终止每个正在运行的线程。81d142a9e1a2c01b.png