本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CloudShell 计算环境:规格和软件
启动时 AWS CloudShell,将创建一个基于 Amazon Linux 2023
计算环境资源
每个 AWS CloudShell 计算环境都分配了以下 CPU 和内存资源:
-
1 个 vCPU(虚拟中央处理器)
-
2 GiB RAM
而且,为环境配置了以下存储配置:
-
1GB 持久性存储空间(会话结束后存储空间仍保留)
有关更多信息,请参阅 持久性存储。
CloudShell 网络要求
WebSockets
CloudShell 取决于WebSocket 协议,该协议允许用户的 Web 浏览器和 AWS 云端 CloudShell 服务之间进行双向交互式通信。如果您在专用网络中使用浏览器,则代理服务器和防火墙可能有助于安全访问互联网。 WebSocket 通信通常可以毫无问题地通过代理服务器。但是在某些情况下,代理服务器会 WebSockets 阻止正常工作。如果出现此问题,您的 CloudShell 接口将报告以下错误:Failed to open sessions : Timed out while opening the session
。
如果此错误反复出现,请参阅代理服务器的文档,确保将其配置为允许 WebSockets。或者,您可以与网络的系统管理员联系。
注意
如果要通过特定许可名单来定义精细权限 URLs,则可以添加 AWS Systems Manager 会话用来打开 WebSocket 连接以发送输入和接收输出的部分 URL。(您的 AWS CloudShell 命令将发送到该 Systems Manager 会话。)
Systems Manager StreamUrl 使用的格式是wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output)
。
该区域表示所 AWS Systems Manager支持的 AWS
区域(例如us-east-2
美国东部(俄亥俄州)地区的区域标识符。
由于会话 ID 是在特定 Systems Manager 会话成功启动后创建的,因此您只能在更新 URL 允许列表时指定 wss://ssmmessages.region.amazonaws.com
。有关更多信息,请参阅 AWS Systems Manager API 参考中的StartSession操作。
预安装的软件
注意
由于 AWS CloudShell 开发环境会定期更新以提供对最新软件的访问权限,因此我们在本文档中不提供具体的版本号。相反,我们将介绍如何检查安装了哪个版本。要查看已安装的版本,请输入程序名称,然后选择 --version
选项(例如,git
--version
)。
Shell
名称 | 描述 | 版本信息 |
---|---|---|
Bash |
Bash 外壳是的默认外壳应用程序。 AWS CloudShell |
|
PowerShell (pwsh) |
提供命令行界面和脚本语言支持, PowerShell 建立在 Microsoft 的.NET 命令语言运行时之上。 PowerShell 使用名为的轻量级命令 |
|
Z Shell (zsh) |
Z Shell,也被称为 |
|
AWS 命令行界面 (CLI)
名称 | 描述 | 版本信息 |
---|---|---|
AWS CDK 工具包 CLI |
AWS CDK Toolkit(即 CLI 命令)是与您的 AWS CDK 应用程序交互的主要工具。 有关更多信息,请参阅 AWS CDK 工具包。 |
|
AWS CLI |
AWS CLI 是一个命令行界面,可用于从命令行管理多个 AWS
服务,并使用脚本自动执行这些服务。有关更多信息,请参阅 在 CLI 中管理 AWS 服务 CloudShell。 有关如何确保使用最多的 up-to-date AWS CLI 版本 2 的信息,请参阅安装 AWS CLI 到你的主目录。 |
|
EB CLI |
AWS Elastic Beanstalk CLI 提供了命令行界面,可简化从本地存储库创建、更新和监控环境的过程。 有关 EB CLI 的更多信息,请参阅AWS Elastic Beanstalk 开发人员指南中的使用 Elastic Beanstalk 命令行界面(EB CLI)。 |
|
Amazon ECS CLI |
Amazon Elastic Container Service(Amazon ECS)命令行界面(CLI)提供高级命令,以简化集群和任务的创建、更新和监控。 有关更多信息,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 命令行界面。 |
|
AWS SAM CLI |
AWS SAM CLI 是一种在 AWS Serverless Application Model 模板和应用程序代码上运行的命令行工具。您可以执行多项任务。其中包括在本地调用 Lambda 函数、为无服务器应用程序创建部署包以及将您的无服务器应用程序部署到云端。 AWS 有关更多信息,请参阅《AWS Serverless Application Model 开发人员指南》中的AWS SAM CLI 命令参考。 |
|
AWS Tools for PowerShell | AWS Tools for PowerShell 这些 PowerShell 模块是在公开的功能基础上构建的 AWS SDK for .NET。使用 AWS Tools for PowerShell,您可以通过 PowerShell 命令行编写 AWS 资源操作脚本。 AWS CloudShell 预安装的模块化版本 (aws.Tools)。 AWS Tools for PowerShell 有关更多信息,请参阅AWS Tools for PowerShell 用户指南 PowerShell中的使用 AWS 工具。 |
|
运行时和 AWS SDKs:Node.js 和 Python 3
名称 | 描述 | 版本信息 |
---|---|---|
Node.js(带 npm) |
Node.js 是一个 JavaScript 运行时,旨在简化异步编程技术的应用。有关更多信息,请参阅 Node.js 官方网站上的文档 npm 是一个包管理器,提供对 JavaScript模块在线注册表的访问。有关更多信息,请参阅 npm 官方网站上的文档 |
|
Node.js JavaScript 中的 SDK |
软件开发套件 (SDK) 通过为包括亚马逊 S3、亚马逊、DynamoDB 和亚马逊 SWF 在内的 AWS 服务提供 JavaScript对象 EC2,帮助简化编码。有关更多信息,请参见AWS SDK for JavaScript 开发人员指南。 |
|
Python |
Python 3 随时可在 Shell 环境中使用。Python 3 现在被认为是该编程语言的默认版本(对 Python 2 的支持已于 2020 年 1 月结束)。有关更多信息,请参阅 Python 官方网站上的文档 此外,预装的是 Pip,这是一款适用于 Python 的软件包安装程序。您可以使用此命令行程序从在线索引(例如 Python 程序包索引)中安装 Python 软件包。有关更多信息,请参阅 Python 打包权威机构提供的文档 |
|
适用于 Python 的 SDK(Boto3) |
Boto 是 Python 开发人员用来创建、配置和管理的软件开发套件 (SDK) AWS 服务,例如亚马逊 EC2 和亚马逊 S3。SDK 提供了面向对象的 API 以及对的低级访问权限。 easy-to-use AWS 服务 更多信息,请参阅 Boto3 文档 |
|
开发工具和 Shell 实用程序
名称 | 描述 | 版本信息 |
---|---|---|
bash-completion |
bash-completion 是一个 Shell 函数集合,允许通过按 Tab 键自动完成部分键入的命令或参数。您可以在 要为软件包的命令设置自动完成功能,必须获取该程序文件。例如,要为 Git 命令设置自动完成功能,请在中添加以下一行,
如果要使用自定义完成脚本,请将它们添加到持久性主目录 ( 有关更多信息,请参阅该项目的 README |
|
Git |
Git 是一个分布式版本控制系统,它通过分支工作流程和内容暂存支持现代软件开发实践。有关更多信息,请参阅 Git 官方网站上的文档页面 |
|
iputils |
iputils 软件包包含用于 Linux 联网的实用程序。有关所提供实用程序的更多信息,请参阅上的 iputils 存储库 |
iputils 工具的示例: |
jq | jq 实用程序解析 JSON 格式的数据,以生成由命令行过滤器修改的输出。有关更多信息,请参阅托管的 jq 手册。 GitHub |
|
kubectl |
kubectl 是一个命令行工具,用于使用 Kubernetes API 与 Kubernetes 集群的控制面板进行通信。 |
|
make |
make 实用程序使用 makefiles 自动执行任务集并组织代码编译。有关更多信息,请参阅 GNU Make 文档 |
|
man |
man 命令提供命令行实用程序和工具的手册页。例如,man ls 返回列出目录内容的 ls 命令的手册页。更多信息,请参阅 Wikipedia 的 man 词条 |
|
nano | nano 是一款小型且用户友好的、基于文本界面的编辑器。有关更多信息,请参阅 GNU nano 文档 |
|
procps |
procps 是一个系统管理实用程序,可用于监控和停止当前正在运行的进程。有关更多信息,请参阅列出可以使用 procps 运行的程序的 README 文件 |
|
SSH 客户端 |
SSH 客户端使用安全 Shell 协议与远程计算机进行加密通信。OpenSSH 是预安装的 SSH 客户端。有关更多信息,请参阅 OpenBSD 维护的 OpenSSH 网站 |
|
sudo |
使用 sudo 实用程序,用户可以使用其他用户(通常是超级用户)的安全权限运行程序。当您需要以系统管理员身份安装应用程序时,Sudo 非常有用。有关更多信息,请参阅 Sudo 手册 |
|
tar |
tar 是一个命令行实用程序,可用于将多个文件分组到单个存档文件(通常称为 tarball)中。有关更多信息,请参阅 GNU tar 文档 |
|
tmux |
tmux 是一个终端多路复用器,可用于在多个窗口中同时运行不同的程序。有关更多信息,请参阅简要介绍 tmux 的博客 |
|
unzip |
有关更多信息,请参阅 zip/unzip。 | |
vim |
Vim 是一个可自定义的编辑器,您可以通过基于文本的界面与之交互。更多信息,请参阅 vim.org 上提供的文档资源 |
|
wget |
wget 是一种计算机程序,用于从命令行中的端点指定的 Web 服务器检索内容。有关更多信息,请参阅 GNU Wget 文档 |
|
zip/unzip |
zip/unzip 实用程序使用存档文件格式,可在不丢失数据的情况下提供无损数据压缩。调用 zip 命令将文件分组并压缩到单个存档中。使用 unzip 将存档中的文件解压缩到指定目录中。 |
|
Docker |
Docker |
|
安装 AWS CLI 到你的主目录
与 CloudShell 环境中预安装的其余软件一样,该 AWS CLI 工具会自动更新定期升级和安全补丁。如果要确保拥有的最高 up-to-date版本 AWS CLI,可以选择在外壳程序的主目录中手动安装该工具。
重要
您需要在主目录 AWS CLI 中手动安装副本,以便下次启动 CloudShell 会话时可用。之所以需要此安装,是因为在完成 Shell 会话后,添加到 $HOME
之外的目录的文件将被删除。此外,安装此副本后 AWS CLI,它不会自动更新。换句话说,管理更新和安全补丁是您的责任。
有关责任 AWS 共担模型的更多信息,请参阅中的数据保护 AWS CloudShell。
要安装 AWS CLI
-
在 CloudShell 命令行中,使用
curl
命令将 AWS CLI 已安装的压缩副本传输到 shell:curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
-
对压缩文件夹进行解压缩:
unzip awscliv2.zip
-
要将该工具添加到指定文件夹,请运行 AWS CLI 安装程序:
sudo ./aws/install --install-dir /home/cloudshell-user/usr/local/aws-cli --bin-dir /home/cloudshell-user/usr/local/bin
如果安装成功,命令行会显示以下消息:
You can now run: /home/cloudshell-user/usr/local/bin/aws --version
-
为了方便起见,我们建议您同时更新
PATH
环境变量,这样在运行aws
命令时就无需指定工具的安装路径:export PATH=/home/cloudshell-user/usr/local/bin:$PATH
注意
如果撤消此更改
PATH
,则默认情况下,不包含指定路径的aws
命令将使用预安装 AWS CLI 的版本。
在 Shell 环境中安装第三方软件
注意
我们建议您在向的计算环境安装任何第三方应用程序之前,先查看安全责任共担模型
默认情况下,所有 AWS CloudShell 用户都具有 sudo 权限。因此,您可以使用 sudo
命令来安装 Shell 计算环境中尚不可用的软件。例如,您可以结合使用 sudo
和 DNF 软件包管理实用程序来安装 cowsay
,以便使用以下消息生成包含一只牛的 ASCII 格式的艺术图片:
sudo dnf install cowsay
然后,您可以通过键入 echo "Welcome to AWS
CloudShell" | cowsay
来启动新安装的程序。
重要
dnf 等软件包管理实用程序会将程序安装到目录(例如 /usr/bin
),而这些程序会在 Shell 会话结束时被回收。这意味着要在每个会话的基础上安装和使用其他软件。
使用脚本修改 Shell
如果您要修改默认的 Shell 环境,可以编辑每次启动 Shell 环境时都会运行的 Shell 脚本。每当默认 bash shell 启动时,.bashrc
脚本就会运行。
警告
如果您错误地修改了 .bashrc
文件,则以后可能无法访问您的 Shell 环境。在编辑文件之前,最好先制作一份文件副本。您还可以在编辑 .bashrc
时通过打开两个 Shell 来降低风险。如果您在一个 Shell 中失去访问权限,则仍可以登录到另一个 Shell,并且可以回滚任何更改。
如果修改错误.bashrc
或任何其他文件后确实失去了访问权限,则可以通过删除主目录 AWS CloudShell来恢复其默认设置。
在此过程中,您将修改 .bashrc
脚本,以便您的 Shell 环境自动切换到运行 Z shell。
-
使用文本编辑器(例如 Vim)打开
.bashrc
:vim .bashrc
-
在编辑器界面中,按 I 键开始编辑,然后添加以下内容:
zsh
-
要退出并保存编辑后的
.bashrc
文件,请 Esc 进入 Vim 命令模式并输入以下内容::wq
-
使用
source
命令重新加载.bashrc
文件:source .bashrc
当命令行界面再次可用时,提示符号已更改为
%
表示您现在正在使用 Z shell。