在 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 的檔案共用。

在 bash 中執行 clouddrive 命令的螢幕擷取畫面。

列出 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,如下所示:

在 bash 中執行 clouddrive 掛接命令的螢幕擷取畫面。

卸載 clouddrive

您可以隨時將掛接至 Cloud Shell 的檔案共用卸載。 因為 Cloud Shell 需要使用掛接的檔案共用,所以 Cloud Shell 會提示您在下一個工作階段建立並掛接另一個檔案共用。

  1. 執行 clouddrive unmount
  2. 了解並確認提示。

卸載的檔案共用會繼續存在,直到您手動刪除它為止。 卸載之後,Cloud Shell 就不會在後續工作階段中搜尋此檔案共用。 若要檢視更多詳細資料,請執行 clouddrive unmount -h,如下所示:

在 bash 中執行 clouddrive 取消掛接命令的螢幕擷取畫面。

警告

雖然執行此命令不會刪除任何資源,但手動刪除對應至 Cloud Shell 的資源群組、儲存體帳戶或檔案共用會清除您的 $HOME 目錄磁碟映像及檔案共用中的任何檔案。 此動作無法復原。

PowerShell 特有的命令

列出 clouddrive Azure 檔案共用

Get-CloudDrive Cmdlet 會擷取 Cloud Shell 中 clouddrive 目前掛接的 Azure 檔案共用資訊。

在 PowerShell 中執行 Get-CloudDrive 命令的螢幕擷取畫面。

卸載 clouddrive

您可以隨時將掛接至 Cloud Shell 的 Azure 檔案共用卸載。 Dismount-CloudDrive Cmdlet 會從目前儲存體帳戶卸載 Azure 檔案共用。 卸載 clouddrive 會終止目前工作階段。

如果已移除 Azure 檔案共用,系統將提示您在下一個工作階段建立並掛接新的 Azure 檔案共用。

在 PowerShell 中執行 Dismount-CloudDrive 命令的螢幕擷取畫面。

將本機檔案傳輸至 Cloud Shell

clouddrive 目錄會與 Azure 入口網站儲存體刀鋒視窗同步。 使用此刀鋒視窗對檔案共用雙向傳輸本機檔案。 從 Cloud Shell 中更新的檔案,會在您重新整理刀鋒視窗時反映在檔案儲存體 GUI 中。

從Azure 入口網站下載檔案

列出Azure 入口網站中本機檔案的螢幕擷取畫面。

  1. 在 Azure 入口網站中,移至掛接的檔案共用。
  2. 選取目標檔案。
  3. 選取 [下載] 按鈕。

下載 Azure Cloud Shell 中的檔案

  1. 在 Azure Cloud Shell會話中,選取[上傳/下載檔案] 圖示,然後選取 [下載] 選項。

  2. 在 [ 下載檔案] 對話方塊中,輸入您要下載之檔案的路徑。

    Cloud Shell中 [下載] 對話方塊的螢幕擷取畫面。

    您只能下載位於資料夾 $HOME 底下的檔案。

  3. 選取 [下載] 按鈕。

上傳檔案

顯示如何在Azure 入口網站中上傳檔案的螢幕擷取畫面。

  1. 移至掛接的檔案共用。
  2. 選取 [上傳] 按鈕。
  3. 選取您要上傳的一或多個檔案。
  4. 確認上傳。

您現在應會看到 Cloud Shell 的 clouddrive 目錄中可存取的檔案。

注意

如果您需要在檔案中定義函式,並從 PowerShell Cmdlet 中呼叫,則必須包含點運算子。 例如: . .\MyFunctions.ps1

在 Azure Cloud Shell中上傳檔案

  1. 在 Azure Cloud Shell 會話中,選取[上傳/下載檔案] 圖示,然後選取 [上傳] 選項。 您的瀏覽器會開啟檔案對話方塊。
  2. 選擇您要上傳的檔案,然後選取 [ 開啟 ] 按鈕。

檔案會上傳至資料夾 $HOME 的根目錄。 您可以在檔案上傳之後移動檔案。

下一步