本文是利用 AI 创建的技术解析与实现示例。虽然发布的代码和步骤是基于一手资料构建的,但作者并未在实体机上进行运行验证。根据环境和版本的不同,运行结果可能会有所差异。
Google Cloud CLI 是用于创建和管理 Google Cloud 资源的工具集。通过命令行、脚本及其他自动化处理,您可以执行许多常见的平台任务。本文将基于一手资料,梳理 Google Cloud CLI 的概述、命令结构、发布级别以及设置和属性的机制。
Google Cloud CLI 概述与主要管理对象
通过使用 Google Cloud CLI,您可以操作 Google Cloud 上的各种资源。根据一手资料,它主要支持管理以下资源和任务:
Compute Engine 虚拟机实例及相关资源
Cloud SQL 实例
Google Kubernetes Engine (GKE) 集群
Managed Service for Apache Spark 的集群与作业
Cloud DNS 的托管区域与记录集
Cloud Deployment Manager 的部署
App Engine 应用的部署、身份验证管理、本地配置自定义等
当使用 Cloud Shell 环境时,gcloud CLI 会自动处于可用状态,无需手动安装。而在其他环境中,则需要进行下载、安装和初始化。
flowchart TD
A["用户 / 自动化脚本"] --> B["gcloud CLI"]
B --> C["Compute Engine"]
B --> D["Cloud SQL"]
B --> E["Google Kubernetes Engine"]
B --> F["其他资源 App Engine / Cloud DNS 等"]
版本管理与发布级别
在一手资料中,说明了有关 gcloud CLI 版本的注意事项以及命令的发布级别。
关于版本
截至一手资料记载时,当前的 gcloud CLI 版本为 582.0.0。为了使用最新功能并防止旧版本可能发生的错误,建议使用最新版本。若要检查已安装的版本,请使用以下命令:
gcloud version
发布级别的分类
gcloud CLI 的命令提供以下发布级别。默认情况下,将安装通用可用性(General Availability,简称 GA)级别的命令。
General Availability(无):完全稳定版,旨在用于生产环境。
Preview(
preview):旨在收集反馈的预览版。通常不在 SLA 和支持范围内,建议在测试环境中使用。平均在此阶段停留约 6 个月。Beta(
beta):功能上已经完备,但可能仍存在部分问题的阶段。可能会在没有预先通知的情况下进行破坏性变更。Alpha(
alpha):初期发布阶段,规格可能会在不经通知的情况下进行更改。
alpha、beta 和 preview 组件默认不会安装。若要单独安装,请使用 gcloud components install 命令。如果在没有对应组件的情况下执行相应命令,gcloud CLI 将提示您进行安装。
命令的组成层级与组
在各个发布级别内部,gcloud CLI 命令被组织成嵌套的命令组层级结构。每个组都代表一个 Google Cloud 产品、功能或其功能子组。
gcloud compute:General Availability 中的 Compute Engine 通用命令gcloud compute instances:General Availability 中的 Compute Engine 实例相关命令gcloud beta compute:Beta 中的 Compute Engine 相关命令gcloud preview:Preview 中的 Google Cloud 相关命令gcloud alpha app:Alpha 中的 App Engine 部署管理相关命令
属性与配置(Configurations)的机制
作为影响 gcloud CLI 行为的设置,存在属性和配置。
属性
属性是控制 gcloud CLI 工具行为的设置。某些属性可以通过全局选项或命令选项来设置,并且选项中指定的值具有优先权。
如果要利用辅助功能来优化屏幕阅读器的操作,可以通过以下命令启用该属性:
gcloud config set accessibility/screen_reader true
配置(Configurations)
配置是 gcloud CLI 属性的集合,扮演着类似于配置文件(Profile)的角色。初始状态下使用的是名为 default 的单一配置,这足以应付大多数使用场景。
如果您希望在多个项目或身份验证账户之间切换进行工作,可以创建并切换多个配置。在活动配置中指定项目的示例如下:
gcloud config set project <project-id>
命令执行时的行为与输入输出控制
关于命令的执行方式、输出以及提示控制的规范如下:
长命令的编写方法
在参考文档等内容中,反斜杠()用于表示长命令。虽然可以直接执行,但作为【计划在 Windows 环境中确认】的补充,在 Windows 环境中可以使用脱字符(^)代替 。如果删除了反斜杠,则必须同时去掉换行符,以便将其作为单行读取。
标准输出(stdout)与标准错误输出(stderr)
成功的 gcloud CLI 命令输出会写入 stdout。诸如提示、警告和错误等其他响应全部输出到 stderr。由于输出到 stderr 的响应并不稳定,因此官方建议不要从脚本中引用它。
提示与非交互式处理
为了防止发生意外的破坏性操作(例如 gcloud projects delete),gcloud CLI 会在执行前显示确认提示。此外,在创建 Compute Engine 实例时,也可能会要求选择可用区。
如果为了在脚本等中进行自动执行而禁用提示并防止交互式输入,请使用 --quiet(或 -q)选项。如果在需要输入但没有默认值的场景下,将会报错。
此外,若要抑制终端的标准输出或标准错误输出,可使用 --no-user-output-enabled 选项;若要调整日志的详细程度,可通过 --verbosity 选项指定级别。
输出结构的调整(格式与过滤)
当返回资源列表时,默认情况下会为了方便人类阅读而进行格式化,并显示在标准输出中。为了使输出更符合您的目的,提供了以下选项:
--format:指定表格形式、扁平形式或机器可读形式(json、csv、yaml、value)来定义输出结构。投影(Projections):从资源数据中选择特定的键进行格式化。
过滤器(
--filter):根据定义的标准进一步筛选输出。
关于位置参数和选项的用法区别也进行了梳理:位置参数用于定义命令操作的目标实体,而选项用于设置命令行为的变化形式。


コメント