在 Azure Cloud Shell 中保存檔案
Cloud Shell 會使用 Azure 檔案儲存體,跨工作階段保存檔案。 在初始啟動時,Cloud Shell 會提示您關聯新的或現有的檔案共用,以便跨工作階段保存檔案。
注意
Bash 和 PowerShell 會共用相同的檔案共用。 只有一個檔案共用可以與 Cloud Shell 中的自動掛接相關聯。
Cloud Shell 儲存體帳戶不支援 Azure 儲存體防火牆。
建立新的儲存體
當您使用基本設定並只選取訂用帳戶時,Cloud Shell 會代表您在距離您最近的支援區域中建立三個資源:
- 資源群組:
cloud-shell-storage-<region>
- 儲存體帳戶:
cs<uniqueGuid>
- 檔案共用:
cs-<user>-<domain>-com-<uniqueGuid>
檔案共用會在您的 $HOME
目錄中掛接為 clouddrive
。 這是一次性動作,且會在後續工作階段中自動掛接檔案共用。
檔案共用也包含一個 5-GB 映像,此映像會自動保存 $HOME
目錄中的資料。
此檔案共用可同時用於 Bash 和 PowerShell。
使用現有的資源
您可以使用進階選項來建立與現有資源的關聯。 出現儲存體設定提示時,選取 [顯示進階設定] 以檢視更多選項。 已填入的儲存體選項會篩選本地備援儲存體 (LRS)、異地備援儲存體 (GRS) 和區域備援儲存體 (ZRS) 帳戶。
注意
建議使用 GRS 或 ZRS 儲存體帳戶,如此您的備份檔案共用能獲得更多復原能力。 備援類型取決於您的目標和偏好的價格。 深入了解 Azure 儲存體帳戶的複寫選項。
保護儲存體存取
為了安全起見,每位使用者都應該建立自己的儲存體帳戶。 針對 Azure 角色型存取控制 (Azure RBAC) ,使用者必須在儲存體帳戶層級擁有參與者存取權或更高許可權。
在指定的訂用帳戶內,Cloud Shell 會使用儲存體帳戶內的 Azure 檔案共用。 由於繼承的權限,若使用者具備對訂用帳戶的足夠存取權,便可存取訂用帳戶中包含的所有儲存體帳戶和檔案共用。
使用者應在儲存體帳戶或訂用帳戶層級設定權限,以鎖定檔案存取權。
Cloud Shell 儲存體帳戶會包含 Cloud Shell 使用者在其主目錄中建立的檔案,其中可能包含存取權杖或認證等敏感性資訊。
支援的儲存體區域
若要尋找您的目前區域,您在 Bash 中執行 env
並找出 ACC_LOCATION
變數,或從 PowerShell 執行 $env:ACC_LOCATION
。 檔案共用會收到為您建立以便保存 $HOME
目錄的 5 GB 映像。
Cloud Shell 電腦存在於下列區域:
區域圖 | 區域 |
---|---|
美洲 | 美國東部、美國中南部、美國西部 |
歐洲 | 北歐、西歐 |
亞太地區 | 印度中部、東南亞 |
您應該選擇符合您需求的區域。
次要儲存體區域
若使用次要儲存體區域,相關聯的 Azure 儲存體帳戶與掛接的 Cloud Shell 機器位於不同區域。 例如,您可以將自己的儲存體帳戶設定為位於加拿大東部 (次要區域),但您的 Cloud Shell 機器仍位於主要區域。 您的待用資料位於加拿大,但會在美國進行處理。
注意
若使用次要區域,Cloud Shell 的檔案存取和啟動時間可能會變慢。
使用者可在 PowerShell 中執行 (Get-CloudDrive | Get-AzStorageAccount).Location
,以查看其檔案共用的位置。
使用 Azure 資源原則限制資源建立
在 Cloud Shell 中建立的儲存體帳戶會以 ms-resource-usage:azure-cloud-shell
標記。
如果您想要禁止使用者在Cloud Shell中建立儲存體帳戶,請為此特定標籤所觸發的標籤建立 Azure 資源原則。
Cloud Shell 儲存體的運作方式
Cloud Shell 透過下列兩種方法來保存檔案:
- 建立
$HOME
目錄的磁碟映像,以保存該目錄內的所有內容。 此磁碟映像會在您指定的檔案共用中儲存為acc_<User>.img
(位於fileshare.storage.windows.net/fileshare/.cloudconsole/acc_<User>.img
),並自動同步變更。 - 在您的
$HOME
目錄中,將指定的檔案共用掛接為clouddrive
,以便直接與檔案共用互動。/Home/<User>/clouddrive
對應至fileshare.storage.windows.net/fileshare
。
注意
$HOME
目錄中的所有檔案 (例如 SSH 金鑰) 都會保存於已掛接檔案共用中儲存的使用者磁碟映像中。 當您在 $HOME
目錄和掛接的檔案共用中保存資訊時,請套用最佳做法。
clouddrive 命令
使用 clouddrive
命令
在 Cloud Shell 中,您可以執行稱為 clouddrive
的命令,手動更新掛接至 Cloud Shell 的檔案共用。
列出 clouddrive
若要探索掛接為 clouddrive
的檔案共用,請執行 df
命令。
對 clouddrive 的檔案路徑會在 URL 中顯示您的儲存體帳戶名稱和檔案共用。 例如, //storageaccountname.file.core.windows.net/filesharename
justin@Azure:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 29711408 5577940 24117084 19% /
tmpfs 986716 0 986716 0% /dev
tmpfs 986716 0 986716 0% /sys/fs/cgroup
/dev/sda1 29711408 5577940 24117084 19% /etc/hosts
shm 65536 0 65536 0% /dev/shm
//mystoragename.file.core.windows.net/fileshareName 5368709120 64 5368709056 1% /home/justin/clouddrive
掛接新的 clouddrive
手動掛接的先決條件
您可以使用 clouddrive mount
命令來更新與 Cloud Shell 相關聯的檔案共用。
注意
如果您要掛接新的檔案共用,則會針對您的 $HOME
目錄建立新的使用者映像。 您先前的 $HOME
映像會保留於先前的檔案共用中。
執行 clouddrive mount
命令搭配下列參數:
clouddrive mount -s mySubscription -g myRG -n storageAccountName -f fileShareName
若要檢視更多詳細資料,請執行 clouddrive mount -h
,如下所示:
卸載 clouddrive
您可以隨時將掛接至 Cloud Shell 的檔案共用卸載。 因為 Cloud Shell 需要使用掛接的檔案共用,所以 Cloud Shell 會提示您在下一個工作階段建立並掛接另一個檔案共用。
- 執行
clouddrive unmount
。 - 了解並確認提示。
卸載的檔案共用會繼續存在,直到您手動刪除它為止。 卸載之後,Cloud Shell 就不會在後續工作階段中搜尋此檔案共用。 若要檢視更多詳細資料,請執行 clouddrive unmount -h
,如下所示:
警告
雖然執行此命令不會刪除任何資源,但手動刪除對應至 Cloud Shell 的資源群組、儲存體帳戶或檔案共用會清除您的 $HOME
目錄磁碟映像及檔案共用中的任何檔案。 此動作無法復原。
PowerShell 特有的命令
列出 clouddrive
Azure 檔案共用
Get-CloudDrive
Cmdlet 會擷取 Cloud Shell 中 clouddrive
目前掛接的 Azure 檔案共用資訊。
卸載 clouddrive
您可以隨時將掛接至 Cloud Shell 的 Azure 檔案共用卸載。 Dismount-CloudDrive
Cmdlet 會從目前儲存體帳戶卸載 Azure 檔案共用。
卸載 clouddrive
會終止目前工作階段。
如果已移除 Azure 檔案共用,系統將提示您在下一個工作階段建立並掛接新的 Azure 檔案共用。
將本機檔案傳輸至 Cloud Shell
clouddrive
目錄會與 Azure 入口網站儲存體刀鋒視窗同步。 使用此刀鋒視窗對檔案共用雙向傳輸本機檔案。 從 Cloud Shell 中更新的檔案,會在您重新整理刀鋒視窗時反映在檔案儲存體 GUI 中。
從Azure 入口網站下載檔案
- 在 Azure 入口網站中,移至掛接的檔案共用。
- 選取目標檔案。
- 選取 [下載] 按鈕。
下載 Azure Cloud Shell 中的檔案
在 Azure Cloud Shell會話中,選取[上傳/下載檔案] 圖示,然後選取 [下載] 選項。
在 [ 下載檔案] 對話方塊中,輸入您要下載之檔案的路徑。
您只能下載位於資料夾
$HOME
底下的檔案。選取 [下載] 按鈕。
上傳檔案
- 移至掛接的檔案共用。
- 選取 [上傳] 按鈕。
- 選取您要上傳的一或多個檔案。
- 確認上傳。
您現在應會看到 Cloud Shell 的 clouddrive
目錄中可存取的檔案。
注意
如果您需要在檔案中定義函式,並從 PowerShell Cmdlet 中呼叫,則必須包含點運算子。 例如: . .\MyFunctions.ps1
在 Azure Cloud Shell中上傳檔案
- 在 Azure Cloud Shell 會話中,選取[上傳/下載檔案] 圖示,然後選取 [上傳] 選項。 您的瀏覽器會開啟檔案對話方塊。
- 選擇您要上傳的檔案,然後選取 [ 開啟 ] 按鈕。
檔案會上傳至資料夾 $HOME
的根目錄。 您可以在檔案上傳之後移動檔案。