Cloud Shell 会为您预配一个运行基于 Debian 的 Linux 操作系统的 Compute Engine 虚拟机,供您临时使用。此虚拟机由 Google Cloud 拥有和管理,因此不会显示在您的任何 Google Cloud 项目中。
Cloud Shell 实例按每个用户、每个会话单独预配。当您的 Cloud Shell 会话处于活跃状态时,此实例将会持续存在;在处于非活跃状态一小时后,您的会话将终止,而其虚拟机将被舍弃。如需详细了解用量配额,请参阅限制指南。
凭借默认的 Cloud Shell 体验,您将分配有一个临时的、预配置的虚拟机,并且您使用的环境是在该虚拟机上运行的 Docker 容器。您还可以在虚拟机启动时自动自定义环境,以确保 Cloud Shell 实例包含您的首选工具。
永久性磁盘存储空间
Cloud Shell 免费预配 5 GB 的永久性磁盘存储空间,装载为您在虚拟机实例上的 $HOME
目录。此存储空间按用户分配,并且可以供多个项目使用。与实例本身不同,此存储空间不会因处于非活跃状态而超时。您存储在主目录中的所有文件(包括安装的软件、脚本以及 .bashrc
和 .vimrc
等用户配置文件)在不同会话之间保持不变。您的 $HOME
目录只有您自己可以看到,其他用户无法访问。
使用 Cloud Shell 时,您无法扩展永久性磁盘存储空间。如需更好地控制存储持久性并获得更多存储空间,您可以使用 Cloud Workstations。
Cloud Shell 还提供了暂存模式,即没有永久性磁盘存储空间的 Cloud Shell 体验。使用暂存模式,启动时间更短,但在会话中创建的所有文件在会话结束时都会丢失。
授权
当您首次进行 Google Cloud API 调用或是将需要凭据的命令行工具(例如 Google Cloud CLI)与 Cloud Shell 搭配使用时,Cloud Shell 会提示您授权。点击授权可让该工具使用您的凭据进行调用。
如需了解详情,请参阅使用 Cloud Shell 授权。
预先配置的环境变量
启动 Cloud Shell 后,Google Cloud 控制台中正在进行的项目将传播到 Cloud Shell 内的 gcloud
配置,以便立即使用。应用默认凭据库用于支持定义项目 ID 的环境变量 GOOGLE_CLOUD_PROJECT
,也被设置为指向 Google Cloud 控制台中的活动项目。环境变量 WEB_HOST
指向 Cloud Shell 虚拟机的主机名,您可以使用该主机名向该环境发出 HTTPS 请求。
区域选择
Cloud Shell 分布在多个 Google Cloud 区域中。首次连接到 Cloud Shell 时,您将被自动分配到最近的可用区域。您无法选择自己的区域,如果 Cloud Shell 未选择最近的区域,则当 Cloud Shell 虚拟机未被使用时,Cloud Shell 会尝试将您的 Cloud Shell 虚拟机迁移到更近的区域中。
要查看当前区域,请从 Cloud Shell 会话中运行以下命令:
curl metadata/computeMetadata/v1/instance/zone
映像发布
Cloud Shell 容器映像每周更新一次,以使预封装的工具保持最新。也就是说,Cloud Shell 始终随附有最新版本的 gcloud CLI、Docker 以及其他实用程序。
根用户
在设置 Cloud Shell 会话时,您将获得一个常规的 Unix 用户账号,其用户名基于您的电子邮件地址。有了此访问权限,您就可以在分配的虚拟机上拥有完整的根用户权限,甚至可以根据需要运行 sudo 命令。
可用的工具
Cloud Shell 虚拟机实例预安装了以下工具:
类型 | 工具 |
---|---|
Linux Shell 解释器 | bash sh |
Linux 实用工具 | 标准 Debian 系统实用工具 |
gcloud CLI 和工具 |
App Engine SDK Google Cloud CLI,包括 gcloud CLI Cloud Storage 的 gsutil
|
文本编辑器 | Emacs Vim Nano |
构建和打包工具 | Gradle Helm Make Maven Bazel npm nvm pip Composer |
源代码控制工具 | Git Mercurial |
其他工具 |
Docker iPython MySQL 客户端 gRPC 编译器 TensorFlow Terraform |
您可以在虚拟机实例上安装其他软件包,但除非您将软件安装在 $HOME
目录中或创建自定义环境,否则在实例终止后安装的软件包将不会保留。
语言支持
Cloud Shell 虚拟机实例预安装了对以下语言的支持:
语言 | 版本 |
---|---|
Java | JRE/JDK 17 (OpenJDK) |
Go | 最新 |
Python | 3.12 |
Node.js | LTS |
Ruby | 3.2 |
PHP | 8.3 |
.NET Core | SDK 6.0、7.0 和 8.0 |
Java 环境的默认版本为 17。要将当前 Cloud Shell 会话更改为使用 JRE 和 JDK 1.11 版,请在 Cloud Shell 命令提示符中输入以下内容:
sudo update-java-alternatives -s java-1.11.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
如要改回 17,请输入以下内容:
sudo update-java-alternatives -s java-1.17.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/jre
安全模式
如果您的 .bashrc
或 .tmux.conf
文件存在问题,Cloud Shell 会在连接后立即关闭。安全模式会重启您的 Cloud Shell 实例并以根用户身份登录,以便您修复文件中的任何问题。
如需在安全模式下打开 Cloud Shell,请执行以下操作:
- 将
cloudshellsafemode=true
附加到该网址。 - 在 Cloud Shell 中,点击 ,点击安全模式,然后点击重启。
如需永久删除主目录中的所有文件并将 Cloud Shell 主目录恢复到清洁状态,您可以重置 Cloud Shell 虚拟机。