Cloud Shell 的工作原理

启动 Cloud Shell 时,它会为您预配一个运行基于 Debian 的 Linux 操作系统的 Google Compute Engine 虚拟机。Cloud Shell 实例按每个用户、每个会话单独预配。当您的 Cloud Shell 会话处于活跃状态时,此实例将会持续存在;在处于非活跃状态一小时后,您的会话将终止,而其虚拟机将被舍弃。如需详细了解用量配额,请参阅限制指南。

凭借默认的 Cloud Shell 体验,您将分配有一个临时的、预配置的虚拟机,并且您使用的环境是在该虚拟机上运行的 Docker 容器。您还可以在虚拟机启动时自动自定义环境,以确保 Cloud Shell 实例包含您的首选工具。

永久性磁盘存储空间

Cloud Shell 免费预配 5 GB 的永久性磁盘存储空间,装载为您在虚拟机实例上的 $HOME 目录。此存储空间按用户分配,并且可以供多个项目使用。与实例本身不同,此存储空间不会因处于非活跃状态而超时。您存储在主目录中的所有文件(包括安装的软件、脚本以及 .bashrc.vimrc 等用户配置文件)在不同会话之间保持不变。您的 $HOME 目录只有您自己可以看到,其他用户无法访问。

授权

当您首次进行 Google Cloud API 调用或是将需要凭据的命令行工具(例如 gcloud 命令行工具)与 Cloud Shell 搭配使用时,Cloud Shell 会使用“为 Cloud Shell 提供授权”对话框提示您。点击“授权”可让该工具使用您的凭据进行调用。

如需了解详情,请参阅使用 Cloud Shell 授权

预先配置的环境变量

启动 Cloud Shell 后,控制台中正在进行的项目将传播到 Cloud Shell 内的 gcloud 配置,以便立即使用。应用默认凭据库用于支持定义项目 ID 的环境变量 GOOGLE_CLOUD_PROJECT,也被设置为指向 Console 中的活动项目。

地区选择

Cloud Shell 分布在多个 Google Cloud Platform 区域中。首次连接到 Cloud Shell 时,您将被自动分配到最近的可用地理区域。您无法选择自己的区域,如果 Cloud Shell 未选择最佳区域,它会尝试在您的 Cloud Shell 虚拟机未使用时迁移到一个更近的区域。

要查看当前区域,请从 Cloud Shell 会话中运行以下命令:

curl metadata/computeMetadata/v1/instance/zone

图片发布

Cloud Shell 容器映像每周更新一次,以确保预封装的工具保持最新。也就是说,Cloud Shell 始终随附有最新版本的 Cloud SDK、Docker 及其所有其他实用程序。

根用户

在设置 Cloud Shell 会话时,您将获得一个常规的 Unix 用户帐号,其用户名基于您的电子邮件地址。有了此访问权限,您就可以在分配的虚拟机上拥有完整的根用户权限,甚至可以根据需要运行 sudo 命令。

可用的工具

Cloud Shell 虚拟机实例预安装了以下工具:

类型 工具
Linux Shell 解释器 bash
sh
Linux 实用工具 标准 Debian 系统实用工具
Google SDK 和工具 Google App Engine SDK
Google Cloud SDK,包括 Cloud Storage 的 gcloud 命令行工具
gsutil
文本编辑器 Emacs
Vim
Nano
构建和打包工具 Gradle
Helm
Make
Maven
Bazel
npm
nvm
pip
Composer
源代码控制工具 Git
Mercurial
其他工具 Docker
iPython
MySQL 客户端
gRPC 编译器
TensorFlow

您可以在虚拟机实例上安装其他软件包,但除非您将软件安装在 $HOME 目录中或创建自定义环境,否则在实例终止后安装的软件包将不会保留。

语言支持

Cloud Shell 虚拟机实例预安装了对以下语言的支持:

语言 版本
Java JRE/JDK 1.8 和 1.11
Go 1.13
Python 2.7.13
Node.js v10.14.2
Ruby 2.6.0
PHP 7.0.33
.NET Core SDK 2.0.0 和 2.1.502
核心运行时 2.0.0 和 2.1.6

Java 环境的默认版本为 1.11。要将当前 Cloud Shell 会话更改为使用 JRE 和 JDK 1.8 版,请在 Cloud Shell 命令提示符中输入以下内容:

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

要改回 1.11.0,请输入以下内容:

sudo update-java-alternatives -s java-1.11.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/jre

安全模式

如果您的 .bashrc.tmux.conf 文件存在问题,Cloud Shell 将在连接后立即关闭。要解决此问题,请在网址结尾处附加cloudshellsafemode=true,以安全模式打开 Cloud Shell。这将重新启动您的 Cloud Shell 并以根用户身份登录,以便您修复文件中的任何问题。

如果您希望永久删除主目录中的所有文件并将 Cloud Shell 主目录恢复到默认状态,则可以完全重置 Cloud Shell 虚拟机