本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudShell 運算環境:規格和軟體
當您啟動時 AWS CloudShell,會建立以 Amazon Linux 2023
運算環境資源
每個 AWS CloudShell 運算環境都會獲指派下列 CPU 和記憶體資源:
-
1 個 vCPU (虛擬中央處理單元)
-
2-GiB RAM
而且,環境的佈建具有下列儲存組態:
-
1-GB 持久性儲存體 (工作階段結束後儲存仍然存在)
如需詳細資訊,請參閱持久性儲存。
CloudShell 網路需求
WebSockets
CloudShell 取決於 WebSocket 通訊協定,該通訊協定允許使用者 Web 瀏覽器與 CloudShell 服務之間在 AWS 雲端進行雙向互動式通訊。如果您在私有網路中使用瀏覽器,代理伺服器和防火牆可能會協助安全存取網際網路。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 AWS Systems Manager,例如us-east-2
美國東部 (俄亥俄) 區域。
由於 session-id 是在特定 Systems Manager 工作階段成功啟動後建立,因此您只能在更新 URL 允許清單wss://ssmmessages.region.amazonaws.com
時指定 。如需詳細資訊,請參閱 AWS Systems Manager API 參考中的 StartSession 操作。
預先安裝的軟體
注意
由於 AWS CloudShell 開發環境會定期更新,以提供最新軟體的存取權,因此我們不會在本文件中提供特定版本編號。反之,我們會說明如何檢查已安裝的版本。若要檢查已安裝的版本,請輸入程式名稱,接著輸入 --version
選項 (例如,git --version
)。
殼層
名稱 | 描述 | 版本資訊 |
---|---|---|
Bash |
Bash shell 是 的預設 shell 應用程式 AWS CloudShell。 |
|
PowerShell (pwsh) |
PowerShell 提供命令列界面和指令碼語言支援,建置在 Microsoft 的 .NET Command Language Runtime 之上。PowerShell 使用名為 |
|
Z Shell (zsh) |
Z Shell 也稱為 |
|
AWS 命令列界面 (CLI)
名稱 | 描述 | 版本資訊 |
---|---|---|
AWS CDK 工具組 CLI |
AWS CDK Toolkit 是 CLI 命令 如需詳細資訊,請參閱 AWS CDK Toolkit。 |
|
AWS CLI |
AWS CLI 是命令列界面,可用來從命令列管理多個 AWS 服務,並使用指令碼將其自動化。如需詳細資訊,請參閱從 CloudShell 中的 CLI 管理 AWS 服務。 如需如何確保您使用的是up-to-date AWS CLI 2 的相關資訊,請參閱 安裝 AWS CLI 到您的主目錄。 |
|
EB CLI |
CLI AWS Elastic Beanstalk 提供命令列界面,可簡化從本機儲存庫建立、更新和監控環境。 如需詳細資訊,請參閱《 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 AWS Tools for PowerShell.Tools)。 如需詳細資訊,請參閱AWS Tools for PowerShell 《 使用者指南》中的使用 AWS Tools for PowerShell。 |
|
執行期和 AWS SDKs:Node.js 和 Python 3
名稱 | 描述 | 版本資訊 |
---|---|---|
Node.js (含 npm) |
Node.js 是一種 JavaScript 執行期,旨在更輕鬆地套用非同步程式設計技術。如需詳細資訊,請參閱官方 Node.js 網站上的文件。 npm 是套件管理員,可讓您存取 JavaScript 模組的線上登錄檔。如需詳細資訊,請參閱官方 npm 網站上的文件 |
|
Node.js 中適用於 JavaScript 的 SDK |
軟體開發套件 (SDK) 為 Amazon S3、Amazon EC2、DynamoDB 和 Amazon SWF 等 AWS 服務提供 JavaScript 物件,有助於簡化編碼。如需詳細資訊,請參閱《AWS SDK for JavaScript 開發人員指南》。 |
|
Python |
Python 3 已準備好在 shell 環境中使用。Python 3 現在被視為程式設計語言的預設版本 (Python 2 的支援已於 2020 年 1 月結束)。如需詳細資訊,請參閱官方 Python 網站上的文件 此外,預先安裝 pip,Python 套件安裝程式。您可以使用此命令列程式從線上索引安裝 Python 套件,例如 Python 套件索引。如需詳細資訊,請參閱 Python Packaging Authority 提供的文件 |
|
SDK for Python (Boto3) |
Boto 是 Python 開發人員用來建立、設定和管理的軟體開發套件 (SDK) AWS 服務,例如 Amazon EC2 和 Amazon S3。開發套件提供easy-to-use物件導向 API,以及對 的低階存取 AWS 服務。 如需詳細資訊,請參閱 Boto3 文件 |
|
開發工具和 shell 公用程式
名稱 | 描述 | 版本資訊 |
---|---|---|
bash-completion |
bash-completion 是 shell 函數的集合,可允許透過按下 Tab 鍵自動完成部分輸入的命令或引數。您可以在 中找到 bash-completion 支援的套件 若要設定套件命令的自動完成,必須取得程式檔案。例如,若要設定 Git 命令的自動完成,請將以下幾行新增至 ,
如果您想要使用自訂完成指令碼,請將它們新增至您的持久性主目錄 ( 如需詳細資訊,請參閱 GitHub 上專案的 README |
|
Git |
Git 是一種分散式版本控制系統,可透過分支工作流程和內容預備來支援現代軟體開發實務。如需詳細資訊,請參閱 Git 官方網站上的文件頁面 |
|
iputils |
iputils 套件包含 Linux 網路的公用程式。如需所提供公用程式的詳細資訊,請參閱 GitHub 上的 iputils 儲存庫 |
iputils 工具的範例: |
jq | jq 公用程式會剖析 JSON 格式的資料,以產生由命令列篩選條件修改的輸出。如需詳細資訊,請參閱 GitHub 上託管的 jq 手冊 |
|
kubectl |
kubectl 是一種命令列工具,可使用 Kubernetes API 與 Kubernetes 叢集的控制平面進行通訊。 |
|
make |
make 公用程式使用 makefiles 來自動化任務集並組織程式碼編譯。如需詳細資訊,請參閱 GNU Make 文件 |
|
man |
man 命令提供命令列公用程式和工具的手動頁面。例如, 會man ls 傳回列出目錄內容的 ls 命令的手動頁面。如需詳細資訊,請參閱人物頁面上的 Wikipedia 項目 |
|
nano | nano 是適用於文字型界面的小型且易於使用的編輯器。如需詳細資訊,請參閱 GNU nano 文件 |
|
procps |
procps 是一種系統管理公用程式,可用來監控和停止目前執行中的程序。如需詳細資訊,請參閱列出可使用 procps 執行之程式的 README 檔案。 |
|
SSH 用戶端 |
SSH 用戶端使用安全 Shell 通訊協定與遠端電腦進行加密通訊。OpenSSH 是預先安裝的 SSH 用戶端。如需詳細資訊,請參閱 OpenBSD 維護的 OpenSSH OpenSSH 網站 |
|
sudo |
使用 sudo 公用程式,使用者可以執行具有其他使用者安全許可的程式,通常是超級使用者。當您需要以系統管理員身分安裝應用程式時,Sudo 很有用。如需詳細資訊,請參閱 Sudo 手冊 |
|
tar |
tar 是命令列公用程式,可用來將多個檔案分組在單一封存檔案中 (通常稱為 tarball)。如需詳細資訊,請參閱 GNU tar 文件 |
|
tmux |
tmux 是一種終端機多工器,可用於在多個視窗中同時執行不同的程式。如需詳細資訊,請參閱提供 tmux 簡要介紹的部落格 |
|
unzip |
如需詳細資訊,請參閱 zip/unzip。 | |
vim |
vim 是一個可自訂的編輯器,您可以透過文字型界面與之互動。如需詳細資訊,請參閱 https://vim.org 所提供的文件資源 |
|
wget |
wget 是一種電腦程式,用於從命令列中端點指定的 Web 伺服器擷取內容。如需詳細資訊,請參閱 GNU Wget 文件 |
|
zip/unzip |
zip/unzip 公用程式使用封存檔案格式,可提供無失真資料壓縮,而不會遺失資料。呼叫 zip 命令,在單一封存中將檔案分組和壓縮。使用解壓縮將檔案從封存擷取到指定的目錄。 |
|
Docker |
Docker |
|
安裝 AWS CLI 到您的主目錄
如同您 CloudShell 環境中預先安裝的其餘軟體, AWS CLI 工具會自動更新為排程升級和安全修補程式。如果您想要確保您擁有up-to-date的 AWS CLI,您可以選擇在 shell 的主目錄中手動安裝工具。
重要
您需要 AWS CLI 在主目錄中手動安裝 的複本,以便下次啟動 CloudShell 工作階段時可以使用。此安裝是必要的,因為新增至 外部目錄的檔案$HOME
會在您完成 shell 工作階段後刪除。此外,在您安裝此複本之後 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的運算環境之前,先檢閱共用安全責任模型
根據預設, 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 環境啟動時執行。.bashrc
指令碼會在預設 bash shell 啟動時執行。
警告
如果您錯誤地修改.bashrc
檔案,之後可能無法存取您的 shell 環境。最好先複製 檔案再編輯。您也可以在編輯 時開啟兩個 Shell 來降低風險.bashrc
。如果您在一個 Shell 中失去存取權,您仍然會登入另一個 Shell,並且可以復原任何變更。
如果您在錯誤修改.bashrc
或任何其他檔案後失去存取權,您可以透過刪除主目錄 AWS CloudShell 來返回其預設設定。
在程序中,您將修改.bashrc
指令碼,以便您的 shell 環境自動切換到執行 Z shell。
-
.bashrc
使用文字編輯器 (例如 Vim) 開啟 :vim .bashrc
-
在編輯器界面中,按下 I 鍵開始編輯,然後新增下列項目:
zsh
-
若要結束並儲存編輯
.bashrc
的檔案,請按 Esc 進入 Vim 命令模式並輸入下列內容::wq
-
使用
source
命令重新載入.bashrc
檔案:source .bashrc
當命令列界面再次可用時,提示符號 已變更為
%
,表示您現在正在使用 Z shell。