Azure Cloud Shell 常見問題集 (FAQ)
本文會回答常見問題,並說明如何針對 Cloud Shell 問題進行疑難解答。
瀏覽器支援
Cloud Shell 支援下列最新版的瀏覽器:
- Microsoft Edge
- Google Chrome
- Mozilla Firefox
- Apple Safari
- 不支援 Safari 私密瀏覽模式。
複製和貼上
用於複製和貼上的金鑰會因作業系統和瀏覽器而異。 下列清單包含最常見的按鍵組合:
- Windows:使用 [Ctrl+c]來 複製,並使用 [CTRL+Shift+v] 或 [Shift+Insert] 貼上。
- FireFox 可能無法正確支援剪貼簿權限。
- macOS:使用 [Cmd+c] 來複製,並使用 [Cmd+v] 來貼上。
- Linux:使用 [CTRL+c] 來複製,並使用 [CTRL+Shift+v] 來貼上。
注意
如果您在輸入 [Ctrl+C] 時未選取任何文字,Cloud Shell 會將 Ctrl-c
字元傳送至殼層。 殼層可以將 Ctrl-c
解譯為中斷訊號,並終止目前執行的命令。
常見問題集
Cloud Shell 工作階段是否有時間限制?
Cloud Shell 主要用於互動式的使用案例。 Cloud Shell 會在沒有互動活動的 20 分鐘後逾時。 因此,任何長時間執行而沒有互動的工作階段會在不發出警告的情況下結束。
Cloud Shell 是免費服務,可管理您的 Azure 環境。 這不是一般用途的運算平台。 過度使用可能會被視為違反 Azure 服務條款,導致您無法存取 Cloud Shell。
可以開啟多少個並行工作階段?
Azure Cloud Shell 每個租用戶的並行使用者限制為 20 個。 開啟超過 20 個同步工作階段會產生「租用戶超過配額」錯誤。 如果您有開啟超過 20 個工作階段的合法需求 (例如訓練工作階段),請聯絡支援服務,說明您預期的使用日期以要求提高配額。
我在 Cloud Shell 中建立了一些檔案,但檔案已消失。 發生什麼事?
提供 Cloud Shell 工作階段的電腦只是暫時性,在工作階段閒置 20 分鐘後就會回收。
第一次啟動 Cloud Shell 時,系統會提示您選擇儲存體選項。
如果您選擇 [裝載儲存體帳戶] 選項,Cloud Shell 會將 Azure 檔案共用掛接至工作階段中的
clouddrive
資料夾。 使用儲存體瀏覽器,可在 Azure 入口網站中看到儲存在clouddrive
資料夾中的檔案。 儲存在clouddrive
資料夾中的檔案會跨工作階段保存下來。如果您選擇 [不需要任何儲存體帳戶] 選項,則只能將檔案寫入
$HOME
資料夾。
在這兩種情況下,您都可以將檔案寫入 $HOME
資料夾。 不過,$HOME
資料夾只會存在於您目前使用的 Cloud Shell 容器映像中。 $HOME
資料夾中的檔案不會顯示在儲存體瀏覽器中,且會在工作階段結束時遭到刪除。
我在 Azure:磁碟機中建立檔案,但看不到它。 發生什麼事?
Cloud Shell 會載入適用於 Azure 的 PowerShell 提供者,此提供者會將 Azure 資源資料呈現為檔案系統磁碟機。 PowerShell 使用者可以使用 Azure:
磁碟機來存取 Azure 資源。 Azure:
磁碟機是不允許您建立檔案的虛擬磁碟機。
當您目前的位置是 Azure:
磁碟機時,使用 vim
或 nano
等其他工具建立新檔案的檔案,會儲存至您的 $HOME
資料夾。
我想要在需要 sudo
的 Cloud Shell 中安裝工具。 這是否可行?
否。 Cloud Shell 中的使用者帳戶是非特殊權限帳戶。 您無法使用 sudo
或執行任何需要提高權限的命令。
針對錯誤進行疑難排解
儲存體對話方塊 - 錯誤:403 RequestDisallowedByPolicy
詳細資料:因為您的系統管理員指派的一個 Azure 原則,初次使用的使用者建立 Cloud Shell 儲存體帳戶失敗。錯誤訊息包括:
The resource action 'Microsoft.Storage/storageAccounts/write' is disallowed by one or more policies.
解決方式:聯絡您的 Azure 管理員,以移除或更新拒絕建立儲存體的 Azure 原則指派。
儲存體對話方塊 - 錯誤:400 DisallowedOperation
- 詳細數資料:使用 Microsoft Entra 訂用帳戶時,您無法建立 Cloud Shell 儲存體帳戶。
- 解決方式:Microsoft Entra ID 訂用帳戶無法建立 Azure 資源。 使用能夠建立儲存體資源的 Azure 訂用帳戶。
終端機輸出 - 錯誤:無法與終端機連線
- 詳細資料:Cloud Shell 必須能夠與 Cloud Shell 基礎結構建立 websocket 連線。
- 解決方式:確認您的網路允許將 HTTPS 和 Websocket 要求傳送到下列網域:
*.console.azure.com
*.servicebus.windows.net
*.servicebus.usgovcloudapi.net
(針對 Azure Government 雲端)
無法要求終端機 - 從使用私人網域名稱系統解析程式的網路存取 Cloud Shell
詳細資料:Cloud Shell 會使用 Azure 轉送來進行終端機連線。 Cloud Shell 可能會因為 DNS 解析問題而無法要求終端機。 當您從具有網域私人 DNS 區域的
servicebus
主機啟動 Cloud Shell 工作階段時,可能會造成此失敗。 如果您使用私人內部部署 DNS 伺服器,也可能會發生此錯誤。解決方案:您可以為 Cloud Shell 所使用的 Azure 轉送執行個體新增 DNS 記錄。
下列步驟說明如何識別 Cloud Shell 執行個體的 DNS 名稱,以及如何建立該名稱的 DNS 記錄。
嘗試使用網頁瀏覽器啟動 Cloud Shell。 使用瀏覽器的開發人員工具來尋找 Azure 轉送執行個體名稱。 在 Microsoft Edge 或 Google Chrome 中,按 F12 鍵以開啟開發人員工具。 選取 [網路] 索引標籤。尋找右上角的 [搜尋] 方塊。 搜尋
terminals?
以尋找 Cloud Shell 終端機的要求。 選取搜尋所找到的其中一個要求項目。 在 [標頭] 索引標籤中,於 [要求 URL] 中尋找主機名稱。 此名稱類似於ccon-prod-<region-name>-aci-XX.servicebus.windows.net
。 針對 Azure Government 雲端,主機名稱會以servicebus.usgovcloudapi.net
結尾。下列螢幕擷取畫面顯示成功要求終端機之 Microsoft Edge 中的開發人員工具。 主機名稱為
ccon-prod-southcentalus-aci-02.servicebus.windows.net
。 在您的案例中,要求應該沒有成功,但您可以找到您需要解析的主機名稱。如需在其他瀏覽器中存取開發人員工具的相關資訊,請參閱擷取瀏覽器追蹤以進行疑難排解 (部分機器翻譯)。
從私人網路外部的主機執行
nslookup
命令,以尋找上一個步驟中找到的主機名稱 IP 位址。nslookup ccon-prod-southcentalus-aci-02.servicebus.windows.net
結果看起來應該會類似以下範例:
Server: 168.63.129.16 Address: 168.63.129.16 Non-authoritative answer: ccon-prod-southcentralus-aci-02.servicebus.windows.net canonical name = ns-sb2-prod-sn3-012.cloudapp.net. Name: ns-sb2-prod-sn3-012.cloudapp.net Address: 40.84.152.91
在私人網路的私人 DNS 區域中新增公用 IP 的 A 記錄。 在此範例中,DNS 記錄會有下列屬性:
- 名稱:ccon-prod-southcentralus-aci-02
- 類型:A
- TTL:1 小時
- IP 位址:40.84.152.91
如需如何在私人 DNS 區域中建立 DNS 記錄的詳細資訊,請參閱使用 Azure DNS 管理 DNS 記錄集和記錄 (部分機器翻譯)。
注意
此 IP 位址可能會定期變更。 您可能需要重複此流程,才能探索新的 IP 位址。
或者,您也可以部署自己的私人 Cloud Shell 執行個體。 如需詳細資訊,請參閱在虛擬網路中部署 Cloud Shell (部分機器翻譯)。
終端機輸出 - 很抱歉,Cloud Shell 無法布建: {“code”:“TenantDisabled” ...}
詳細數據:在極少數情況下,Azure 可能會將來自 Cloud Shell 的一般資源耗用量標示為詐騙活動。 發生這種情況時,Azure 會在租用戶層級停用 Cloud Shell,您會看到下列錯誤訊息:
很抱歉,Cloud Shell 無法布建: {“code”:“TenantDisabled”,“message”:“Cloud Shell 已在目錄中<>停用。”}請重新整理頁面。
在 Azure Cloud Shell 實例中的 CPU 使用量超過觸發詐騙預防並封鎖租使用者的閾值時,可能會有合法的使用案例。 大型 AZCopy 作業可能是造成此事件的原因。 Microsoft Azure 工程小組可協助找出為何已停用租使用者並重新啟用租使用者。
解決方案:若要調查原因並重新為您的租用戶啟用 Cloud Shell,請開啟新的 Azure 支援 要求。 包含下列詳細資料:
- 租用戶識別碼
- 業務理由和說明如何使用 Cloud Shell。
管理 Cloud Shell
管理個人資料
Microsoft Azure 會認真看待您的個人資料。 Azure Cloud Shell 服務會儲存 Cloud Shell 儲存和終端機喜好設定的相關資訊。 您可以使用下列其中一個範例來檢視此資訊。
從權限的 bash 命令提示字元執行下列命令:
URL="https://management.azure.com/providers/Microsoft.Portal/usersettings/cloudconsole?api-version=2017-12-01-preview" az rest --method get --url $URL
從 PowerShell 命令提示字元中執行下列命令:
$invokeAzRestMethodSplat = @{ Uri = 'https://management.azure.com/providers/Microsoft.Portal/usersettings/cloudconsole?api-version=2017-12-01-preview' Method = 'GET' } $userdata = (Invoke-AzRestMethod @invokeAzRestMethodSplat).Content ($userdata | ConvertFrom-Json).properties | Format-List
您可以重設使用者設定來刪除此個人資料。 重設使用者設定會終止您目前的工作階段,並卸載連結的儲存體帳戶。 Cloud Shell 所使用的 Azure 檔案共用不會刪除。
重新連線到 Cloud Shell 時,系統提示您附加儲存體帳戶。 您可以建立新的儲存體帳戶,或重新附加您先前使用的現有儲存體帳戶。
請使用下列步驟來刪除您的使用者設定。
- 啟動 Cloud Shell。
- 從 Cloud Shell 工具列選取 [設定] 功能表 (齒輪圖示)。
- 從功能表選取 [重設使用者設定]。
- 選取 [重設] 按鈕,以確認動作。
在鎖定的網路環境中封鎖 Cloud Shell
- 詳細資料:建議系統管理員阻止其使用者存取 Cloud Shell。 Cloud Shell 會依賴存取
ux.console.azure.com
網域 (可能遭拒絕) 來阻止任何對 Cloud Shell 進入點的存取,包括portal.azure.com
、shell.azure.com
、Visual Studio Code 的 Azure 帳戶擴充功能,以及learn.microsoft.com
。 在美國政府雲端中,進入點為ux.console.azure.us
;沒有對應的shell.azure.us
。 - 解決方式:限制從您的網路存取
ux.console.azure.com
或ux.console.azure.us
。 Cloud Shell 圖示仍會顯示在 Azure 入口網站中,但無法連線至該服務。