如何在本地运行 Google Cloud Code
使用 Google Cloud Code 开发云原生应用程序可以显著简化您的工作流程。作为一名深度参与云优先战略的人,我观察到开发人员在本地环境和云部署之间切换时面临的常见挑战。对效率和无缝集成的追求往往促使我们寻找能够弥合这一差距的工具。Google Cloud Code 是一个功能强大的解决方案,旨在将云开发体验直接带入您的集成开发环境 (IDE)。
Cloud Code 是一个全面的扩展,它将 Google Cloud 服务(如 Google Kubernetes Engine (GKE) 和 Cloud Run)直接集成到您的 IDE 中。这种集成允许您在熟悉的开发环境中构建、运行和调试云原生应用程序,从而有效消除不断进行上下文切换的需要。它支持整个开发生命周期,从初始创建到持续监控,并在每个阶段提供持续反馈。Cloud Code 适用于 VS Code、IntelliJ,并默认集成到 Cloud Shell 编辑器. 中。
快速摘要:Cloud Code 提供什么
- IDE 集成: 适用于 VS Code、IntelliJ 和 Cloud Shell 编辑器。
- 完整的开发生命周期: 支持云原生应用程序的创建、运行、调试和监控。
- GKE 和 Cloud Run 支持: 与 Google Kubernetes Engine 和 Cloud Run 服务无缝集成。
- 本地仿真: 使用集成仿真器在本地开发和调试 Cloud Run 服务。
- AI 辅助: 集成 Gemini Code Assist 以进行代码生成和问题解决。
- 密钥管理: 内置支持 Google Secret Manager。
- 自定义: 允许自定义 Cloud Shell 容器镜像和环境配置。
Cloud Code 功能
Cloud Code 提供了广泛的功能,旨在加速云原生应用程序的开发。它与 Google Cloud SDK 集成,以实现简化的身份验证,并包含可执行示例和预配置的代码片段,以帮助您 快速启动项目. 。虽然主要针对 Google Cloud 进行了优化,但它具有足够的灵活性,可以与任何云平台配合使用。
该扩展简化了 Google Cloud 集群的创建,并增强了诸如 Cloud Source Repositories、Cloud Build 和 Cloud Client Libraries 等基本工具的集成。对于使用 Kubernetes 的开发人员,Cloud Code 支持标准的命令行容器工具,例如 Minikube 和 kubectl. 。它允许创建和执行新的 GKE 应用程序以及修改现有的 YAML 文件。此外,Skaffold 的模块支持允许独立开发和调试单个 GKE 应用程序组件。
Cloud Code 还简化了 Cloud Run 服务v的开发工作流程,使其更易于创建、部署和监控。一个显著的优势是能够使用集成的 Cloud Run 仿真器在本地构建和调试这些服务,这可以节省大量的部署时间。该扩展通过集成的 container-diff 功能进一步协助将 Linux 应用程序迁移到容器,并支持使用 Google Cloud Buildpacks 直接从源代码构建可用于生产的容器镜像,所有这些都不需要 Dockerfile。
借助 Cloud Code 集成的 Secret Manager 支持,管理敏感数据变得简单明了。通过专用的 Secret Manager 视图,您可以安全地创建、查看和更新 API 密钥和密码等敏感信息。该扩展还包含一个 API 库浏览器,用于发现和激活各种 Cloud API,以及用于管理 Compute Engine VM 和开发 Apigee API 代理的内置工具。

来源: sethvargo.com
Cloud Code 的 Secret Manager 接口提供了安全、集中地管理 API 密钥和凭证等敏感数据的功能,直接在您的 IDE 内进行。
AI 驱动的辅助功能
Cloud Code 通过 Gemini Code Assist Standard 和 Enterprise 集成了先进的 AI 驱动的编程功能。这些智能工具旨在帮助您更有效地生成代码和解决问题,从而显著简化开发流程。重要的是要注意,Gemini Code Assist 是一个独立于 Cloud Code 的插件,需要连接到 Google Cloud 并激活特定的 IAM 权限才能正常运行。

来源: datacamp.com
Gemini Code Assist 在您的开发环境中直接提供 AI 驱动的代码生成和问题解决功能,从而提高生产力。
Cloud Shell 编辑器中的 Cloud Code
Cloud Shell 编辑器是一个可直接通过浏览器访问的在线开发和操作环境,提供了一个专门针对 Cloud Code 优化的预配置设置。此环境预装了 gcloud 命令行工具和 kubectl 等实用程序,使其成为无需额外设置即可开发、构建、调试和部署基于云的应用程序的理想选择。
Cloud Shell 终端
Cloud Shell 提供两个主要工具:Cloud Shell 终端和 Cloud Shell 编辑器。该终端提供了一个功能齐全、基于云的 shell,运行在特定于会话的、基于 Debian 的 Linux 机器上。它包括 Google Cloud SDK 和基本的开发人员工具,如 git、kubectl、kubectx、curl、python3 和
tmux.
Cloud Shell 中的 $HOME 目录会跨会话持久保存,因为它存储在 Cloud Storage 中。您可以通过 console.cloud.google.com 方便地启动 Cloud Shell,其中会自动检测您的 GCP 项目 ID。Cloud Shell 支持多个选项卡和窗口,其集成的 tmux 可确保会话持久性。此外,通过 Web 预览功能可实现自动端口转发,从而简化对正在运行的应用程序的访问。
Cloud Shell 编辑器
Cloud Shell 编辑器基于开源的
Eclipse Theia project,
构建,提供类似于 VS Code 的用户体验。您可以通过命令行 (cloudshell edit)、通过 Cloud Shell 菜单,或直接导航到 URL ide.cloud.google.com 来访问它。该编辑器具有集成的终端,并允许对其设置进行广泛自定义。对于高级用例,您可以创建自定义 Cloud Shell 容器镜像,以预置一个带有附加软件包的完全特定于会话的实例,使用
Dockerfile.
定义这些镜像。这些自定义镜像可以在本地构建、测试,然后推送到 Cloud Source Repository 和 Container Registry。为了获得更大的灵活性,可以从本地机器远程 SSH 访问 Cloud Shell,并且可以本地挂载您的基本目录。
使用 Cloud Code 在本地开发
Cloud Code 旨在支持各种本地开发环境。它允许您将来自其他云提供商的集群集成到您的 KubeConfig 中,并与 Docker Desktop 无缝协作以实现本地集群。为了正常运行,您的标准 ~/.kube/config 文件必须包含本地集群,并且该集群还需要设置为当前上下文。
本地应用程序创建和部署
从 Cloud Code 中的模板创建应用程序时,您将选择应用程序类型(例如,Kubernetes 应用程序)和首选编程语言。示例应用程序通常遵循相似的结构,配置存储在 .vscode 中,Pod 规范存储在 kubernetes-manifests 中。使用非生产集群进行开发和测试至关重要。在执行之前,请确保 Kubernetes 上下文设置正确。Cloud Code: Develop on Kubernetes 执行配置提供了自定义部署的选项。
Minikube 集成
Cloud Code 提供与 Minikube 的强大集成。您可以轻松启动 Minikube 集群,在其上运行应用程序,并在开发会话中查看部署详情。端口转发 URL 可方便地通过浏览器访问正在运行的应用程序。对于交互式调试,可以直接通过 Development Sessions 浏览器在容器内打开交互式终端。Minikube 集群也可以根据需要暂停或停止。
调试和日志记录
调试是 Cloud Code 的核心功能,允许您在代码中设置断点以有效控制调试会话。可以获取来自正在运行的 Pod 的实时日志记录,这些日志显示在终端输出中或通过 Kubernetes Explorer 显示,从而立即洞察应用程序的行为。为避免产生不必要的成本,请记住在开发或测试完成后,删除 Google Cloud Console 中的资源。
Cloud Functions 开发
对于开发 Cloud Functions,可以安装 Functions Framework 并在本地运行。您可以从 Google Cloud 下载已部署函数的源代码,并在函数的本地文件夹中安装本地依赖项。Functions Framework 使用类似于 npx functions-framework --target=entryPoint(适用于 Node.js)或 functions-framework --target=entryPoint(适用于 Python)的命令运行。您函数的 entryPoint 可以在 launch.json 文件中找到。
Cloud Run 服务本地测试
Cloud Run 服务也可以使用 Docker 或带有 Google Cloud Access 的 Docker 在本地进行测试。PORT 环境变量用于指定应用程序接收 HTTP/HTTPS 请求的端口。在本地使用 Docker 运行时,需要一个带有密钥对的服务帐户,因为默认服务帐户在此上下文中不可用。Google Cloud Client Libraries 可以配置为在您的本地容器中对 Google Cloud 服务进行身份验证。gcloud beta code dev 命令行工具提供了一种方便的方式来仿真 Cloud Run,它从源代码构建容器,并在发生更改时自动重建它们。
关于 Cloud Code 本地开发的常见问题
以下是有关使用 Google Cloud Code 进行本地开发的一些常见问题和解答:
- Cloud Code 支持哪些 IDE?
Cloud Code 适用于 VS Code、IntelliJ,并默认集成到 Cloud Shell 编辑器中。
- 我可以将 Cloud Code 与其他云提供商一起使用吗?
虽然 Cloud Code 针对 Google Cloud 进行了优化,但它可以与任何云平台配合使用。它支持将来自其他提供商的集群添加到您的 KubeConfig 中。
- 我是否需要 Docker 进行本地 Cloud Run 开发?
是的,Cloud Run 服务可以使用 Docker 或带有 Google Cloud Access 的 Docker 在本地进行测试。您可能需要一个带有密钥对的服务帐户进行身份验证。
- 我如何使用 Cloud Code 调试在 Kubernetes 中运行的应用程序?
Cloud Code 允许您在代码中设置断点,并直接在您的 IDE 中或通过 Kubernetes Explorer 查看来自正在运行的 Pod 的实时日志。
- Gemini Code Assist 是否随 Cloud Code 自动启用?
不,Gemini Code Assist 是一个单独的插件,需要连接到 Google Cloud 并激活 IAM 权限才能运行。
结论
Google Cloud Code 显著简化了在 IDE 中开发云原生应用程序的过程。通过无缝集成 Google Cloud 服务、提供 AI 驱动的辅助功能以及强大的本地开发和调试功能,它旨在提高开发人员的生产力,并减少通常与云部署相关的摩擦。采用 Cloud Code 可以带来更高效、更愉快的开发体验,让您能够更多地专注于创新,更少地关注环境复杂性。
来源: YouTube