AWS CloudShell運算環境:規格和軟體 - AWS CloudShell

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS CloudShell運算環境:規格和軟體

當您啟動時AWS CloudShell,系統會建立以 Amazon Linux 2023 為基礎的運算環境來託管殼層體驗。該環境配置了計算資源(vCPU 和內存),並提供各種預先安裝的軟件,可以從命令行界面訪問。您也可以透過安裝軟體和修改 shell 指令碼來設定預設環境。

運算環境資源

每個AWS CloudShell運算環境都會指派下列 CPU 和記憶體資源:

  • 1 個 vCPU (虛擬中央處理器)

  • 2 GiB 記憶體

此外,環境會以下列儲存區組態佈建:

  • 1 GB 永久性儲存裝置 (工作階段結束後仍會保留儲存)

如需詳細資訊,請參閱持久性儲存

CloudShell 網路需求

WebSockets

CloudShell 取決於WebSocket 協議,該協議允許用戶的 Web 瀏覽器和AWS雲中的 CloudShell 服務之間進行雙向交互式通信。如果您在私人網絡中使用瀏覽器,則代理服務器和防火牆可能會促進對 Internet 的安全訪問。 WebSocket 通信通常可以遍歷代理服務器而沒有問題。但在某些情況下,代理服務器會阻 WebSockets 止正常工作。如果發生此問題,您的 CloudShell 介面會報告下列錯誤:Failed to open sessions : Timed out while opening the session

如果重複發生此錯誤,請參閱 Proxy 伺服器的說明文件,以確保其設定為允許 WebSockets。或者,您也可以聯絡網路的系統管理員。

注意

如果您想要透過允許列出特定 URL 來定義精細的權限,您可以新增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例如美國東部 (俄亥俄) 區域。

因為工作階段識別碼是在特定 Systems Manager 工作階段成功啟動之後建立的,因此您只能在更新 URL 允許清單wss://ssmmessages.region.amazonaws.com時指定。如需詳細資訊,請參閱 AWS Systems ManagerAPI 參考中的StartSession作業。

預裝軟體

注意

由於AWS CloudShell開發環境會定期更新以提供最新軟體的存取權,因此我們不會在本文件中提供特定的版本號碼。相反,我們描述了如何檢查安裝了哪個版本。若要檢查安裝的版本,請輸入程式名稱,然後輸入--version選項 (例如git --version)。

貝殼

預裝外殼
名稱 描述 版本資訊

Bash

Bash 外殼是的預設殼層應用程式AWS CloudShell。

bash --version

PowerShell (PWSH)

提供命令行界面和腳本語言支持, PowerShell 是建立在微軟的 .NET 命令語言運行時之上。 PowerShell 使用稱為cmdlets接受並返回 .NET 對象的輕量級命令。

pwsh --version

Z 型外殼 (Z 系列)

Z 殼牌,也被稱為zsh,是伯恩殼牌的擴展版本,它提供了主題和插件增強的自定義支持。

zsh --version

AWS命 CLI 行界面

CLI
名稱 描述 版本資訊

AWS CDKCLI 工具包

CLI 命令工具AWS CDK包是與您的AWS CDK應用程序交互的主要工具。cdk它會執行您的應用程式、詢問您定義的應用程式模型,以及產生和部AWS CloudFormation署由. AWS CDK

如需詳細資訊,請參閱AWS CDK工具組

cdk --version

AWS CLI

這AWS CLI是一個命令行界面,您可以使用它從命令行管理多個AWS服務並使用腳本自動化它們。如需詳細資訊,請參閱使用中的AWS服務AWS CloudShell

如需如何確保使用最多 up-to-date AWS CLI版本 2 的相關資訊,請參閱安裝AWS CLI到您的主目錄

aws --version

EB CLI

AWS Elastic BeanstalkCLI 提供命令列介面,可簡化從本機存放庫建立、更新和監控環境的作業。

如需詳細資訊,請參閱開發人員指南中的使用 Elastic Beanstalk 命令列介面 (EB CLI)。AWS Elastic Beanstalk

eb --version

Amazon ECS CLI

Amazon Elastic Container Service (Amazon ECS) 命令列界面 (CLI) 提供高階命令,以簡化叢集和任務的建立、更新和監控。

如需詳細資訊,請參閱 Amazon 彈性容器服務開發人員指南中的使用 Amazon ECS 命令列界面

ecs-cli --version

AWS SAM CLI

AWS SAMCLI 是在AWS Serverless Application Model模板和應用程序代碼上運行的命令行工具。您可以執行多項工作。其中包括在本機叫用 Lambda 函數、為無伺服器應用程式建立部署套件,以及將無伺服器應用程式部署到雲端。AWS

如需詳細資訊,請參閱AWS Serverless Application Model開發人員指南中的 AWS SAMCLI 命令參考

sam --version

AWS Tools for PowerShell 這AWS Tools for PowerShell些 PowerShell 模組是建立在公開的功能上的AWS SDK for .NET. 使用AWS Tools for PowerShell,您可以從命令列對資AWS源執行指 PowerShell 令碼作業。

AWS CloudShell預先安裝的模組化版本 (AWS.Tools)。AWS Tools for PowerShell

如需詳細資訊,請參閱使用AWS Tools for PowerShell者指南 PowerShell中的使用 AWS 工具

pwsh --Command ' Get-Module -ListAvailable -Name AWS.Tools.Common'

執行階段和 AWS 開發套件:Node.js 和 Python 3

執行階段和 AWS 開發套件
名稱 描述 版本資訊

Node.js(與故宮)

Node.js 是一個 JavaScript 運行時,旨在使其更容易應用異步編程技術。如需詳細資訊,請參閱 Node.js 官方網站上的文件。

npm 是一個軟件包管理器,可以訪問 JavaScript模塊的在線註冊表。如需詳細資訊,請參閱官方 npm 網站上的文件。

  • Node.js: node --version

  • 故宮:npm --version

Node.js JavaScript 中適用的軟體套件

軟體開發套件 (SDK) 可為 AWS 服務 (包括 Amazon S3、Amazon EC2、DynamoDB 和 Amazon SWF) 提供 JavaScript物件,協助簡化程式碼撰寫作業。如需詳細資訊,請參閱《AWS SDK for JavaScript 開發人員指南》https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/

npm -g ls --depth 0 2>/dev/null | grep aws-sdk

Python

Python 3 是準備在外殼環境中使用。Python 3 現在被認為是編程語言的默認版本(對 Python 2 的支持將於 2020 年 1 月結束)。有關更多信息,請參閱 Python 官方網站上的文檔。

此外,預先安裝的是 pip,即 Python 的軟件包安裝程序。您可以使用此命令行程序從在線索引(如 Python 包索引)安裝 Python Package。如需詳細資訊,請參閱 Python 封裝授權單位提供的文件。

  • Python 3: python3 --version

  • 點子:pip3 --version

適用於 Python (Boto3) 的 SDK

Boto 是 Python 開發人員用來建立、設定和管理的軟體開發套件 (SDK)AWS 服務,例如 Amazon EC2 和 Amazon S3。SDK 提供 easy-to-use物件導向 API,以及對. AWS 服務

如需詳細資訊,請參閱 Boto3 文件。

pip3 list | grep boto3

開發工具和殼層公用程式

開發工具和殼層公用程式
名稱 描述 版本資訊

bash-completion

bash-complete 是 shell 函數的集合,允許通過按 Tab 鍵自動完成部分類型的命令或參數。您可以在中找到 bash 完成支持的軟件包。/usr/share/bash-completion/completions

若要為套件的指令設定自動完成功能,必須取得程式檔案的來源。例如,要為 Git 命令設置自動完成功能,請添加以下行,以.bashrc便每當您的AWS CloudShell會話啟動時都可以使用該功能:

source /usr/share/bash-completion/completions/git

如果您想要使用自訂完成指令碼,請將它們新增至永久性主目錄 ($HOME),並直接在中取得.bashrc

如需詳細資訊,請參閱上的專案的「讀我檔案」頁面 GitHub。

dnf info bash-completion

CodeCommit Git 的實用程序

git-remote-codecommit 是一個實用程序,它提供了一種通過擴展 Git 從 CodeCommit 存儲庫中推送和提取代碼的簡單方法。這是支援使用聯合存取、身分識別提供者和臨時登入資料建立之連線的建議方法。

如需詳細資訊,請參閱AWS CodeCommit使用指南 git-remote-codecommit的 AWS CodeCommit HTTPS 連線的設定步驟

pip3 list | grep git-remote-codecommit

Git

Git 是一個分散式版本控制系統,透過分支工作流程和內容暫存來支援現代軟體開發實務。有關更多信息,請參閱 Git 官方網站上的文檔頁面

git --version

iputils

iputils 套件包含適用於 Linux 網路的公用程式。如需有關所提供公用程式的詳細資訊,請參閱上的 iputils 儲存庫。 GitHub

一個 iputils 工具的例子:arping -V

jq jq 公用程式會剖析 JSON 格式的資料,以產生由命令列篩選器修改的輸出。如需詳細資訊,請參閱上 GitHub的 jq 手冊

jq --version

kubectl

kubectl 是一種命令列工具,可使用 Kubernetes API 與 Kubernetes 叢集的控制平面進行通訊。

kubectl --version

make

make 公用程式會用makefiles來自動執行一組工作並組織程式碼編譯。如需詳細資訊,請參閱 GNU 製作文件

make --version

man

man 指令提供指令行公用程式和工具的手冊頁面。例如,man ls傳回列出目錄內容之ls命令的手冊頁。有關更多信息,請參閱維基百科手冊頁上的條目

man --version

nano nano 是用於基於文本的界面的小型和用戶友好的編輯器。如需詳細資訊,請參閱 GNU nano 文件

nano --version

procps

procps 是一個系統管理實用程序,可用於監視和停止當前正在運行的進程。如需詳細資訊,請參閱 README 檔案,其中列出可以透過 procps 執行的程式。

ps --version

SSH 用戶端

SSH 用戶端會使用安全殼層通訊協定來與遠端電腦進行加密通訊。OpenSSH 是已預先安裝的 SSH 用戶端。如需詳細資訊,請參閱 OpenBSD 所維護的 OpenSSH 網站

ssh -V

sudo

使用 sudo 公用程式,使用者可以使用其他使用者 (通常是超級使用者) 的安全性權限來執行程式。當您需要以系統管理員身份安裝應用程序時,Sudo 非常有用。如需詳細資訊,請參閱 Sudo 手冊

sudo --version

tar

tar 是一個命令行實用程序,您可以使用它將多個文件分組到單個存檔文件中(通常稱為 tarball)。如需詳細資訊,請參閱 GNU tar 文件

tar --version

tmux

tmux 是終端多路復用器,您可以使用它在多個窗口中同時運行不同的程序。有關更多信息,請參閱提供 tmux 簡潔介紹的博客

tmux -V

unzip

如需詳細資訊,請參閱壓縮/解壓縮。
VIM

vim 是一個可自定義的編輯器,您可以通過基於文本的界面進行交互。如需詳細資訊,請參閱 vim.org 上提供的文件資源

vim --version

wget

wget 是一種計算機程序,用於從命令行中指定的端點指定的 Web 服務器中檢索內容。如需詳細資訊,請參閱 GNU Wget 文件。

wget --version

拉鍊/解壓

zip /解壓縮公用程序使用的存檔文件格式,提供無損數據壓縮而不會丟失數據。呼叫 zip 指令,將檔案分組並壓縮到單一歸檔中。使用 unzip 將檔案從歸檔解壓縮到指定的目錄中。

unzip --version

zip --version

Docker

Docker 是用於開發,運輸和運行應用程序的開放平台。Docker 可讓您將應用程式與基礎架構分開,以便快速交付軟體。它使您可以在其中構建碼頭文件AWS CloudShell,並使用 CDK 構建碼頭資產。如需 Docker 支援哪些區域的資訊,請參閱碼區域。您應該注意,Docker 在環境中的空間有限。如果您擁有較大的單個圖像或過多預先存在的 Docker 映像,則可能會導致問題。如需 Docker 的詳細資訊,請參閱 D ocker 文件指南。

docker --version

安裝AWS CLI到您的主目錄

就像 CloudShell 環境中預先安裝的其他軟體一樣,此AWS CLI工具會自動更新排程的升級和安全性修補程式。如果您想確保您擁有的 up-to-date 版本最多AWS CLI,可以選擇在 shell 的主目錄中手動安裝此工具。

重要

您需要在主目錄AWS CLI中手動安裝您的副本,以便在下次啟動 CloudShell 工作階段時可用。需要此安裝,因為在您完成 shell 階段作業之後,$HOME會刪除新增至以外目錄的檔案。此外,安裝此副本之後AWS CLI,它不會自動更新。換句話說,您有責任管理更新和安全性修補程式。

如需AWS共用責任模型的詳細資訊,請參閱資料保護 AWS CloudShell

安裝 AWS CLI
  1. 在命 CloudShell 令行中,使用curl命令將AWS CLI已安裝的壓縮副本傳輸到 shell:

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  2. 解壓縮壓縮文件夾:

    unzip awscliv2.zip
  3. 若要將工具新增至指定的資料夾,請執行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
  4. 為了方便起見,我們建議您同時更新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

重要

Package 管理公用程式,例如 DNF 安裝程式在目錄中 (例如)/usr/bin,這些公用程式會在 shell 工作階段結束時回收這些程式。這表示每個工作階段會安裝和使用額外的軟體。

使用指令碼修改您的殼層

如果您想要修改預設的 shell 環境,您可以編輯每次 shell 環境啟動時執行的 shell 指令碼。每當默認的 bash shell 啟動時,.bashrc腳本都會運行。

警告

如果您不正確地修改.bashrc檔案,之後可能無法存取您的 shell 環境。最好在編輯之前製作文件副本。您也可以在編輯時開啟兩個 shell 來降低風險.bashrc。如果您在一個 shell 中失去存取權,您仍然可以登入另一個 shell,而且可以復原任何變更。

如果您在錯誤修改.bashrc或任何其他檔案之後失去存取權限,您可以刪除主目錄AWS CloudShell來回復其預設設定。

在此程序中,您將修改指.bashrc令碼,讓殼層環境自動切換為執行 Z 殼層。

  1. .bashrc使用文本編輯器打開(例如 Vim):

    vim .bashrc
  2. 在編輯器介面中,按 I 鍵開始編輯,然後新增以下內容:

    zsh
  3. 要退出並保存編輯過的.bashrc文件,請按Esc進入 Vim 命令模式並輸入以下內容:

    :wq

  4. 使用命source令重新載入.bashrc檔案:

    source .bashrc

    當指令行介面再次可用時,提示符號已變更%為,表示您現在正在使用 Z 殼層。