Сохранение файлов в Azure Cloud Shell

Cloud Shell использует Файлы Azure для сохранения файлов в разных сеансах. При начальном запуске Cloud Shell предлагает связать новую или существующую общую папку для сохранения файлов в разных сеансах.

Примечание

Bash и PowerShell совместно используют одну общую папку. С автоматическим подключением в Cloud Shell можно связать только одну общую папку.

Брандмауэр службы хранилища Azure не поддерживается для учетных записей хранения Cloud Shell.

Создание хранилища

Если вы используете базовые параметры и выбрали только подписку, Cloud Shell создаст три ресурса от вашего имени в поддерживаемом регионе, находящемся ближе всего к вам:

  • группу ресурсов cloud-shell-storage-<region>;
  • учетную запись хранения cs<uniqueGuid>;
  • общая папка: cs-<user>-<domain>-com-<uniqueGuid>

Снимок экрана: выбор подписки для учетной записи хранения.

Общая папка подключается как clouddrive в каталоге $HOME . Это однократное действие, и общая папка автоматически подключается в последующих сеансах.

Общая папка также содержит образ размером 5 ГБ, который автоматически сохраняет данные в каталоге $HOME . Эта общая папка используется как для Bash, так и для PowerShell.

Использование существующих ресурсов

С помощью расширенного параметра можно связать существующие ресурсы. Когда появится запрос на настройку хранилища, выберите Показать дополнительные параметры , чтобы просмотреть дополнительные параметры. Заданные параметры хранилища будут отфильтрованы по локально избыточному хранилищу (LRS), геоизбыточному хранилищу (GRS) и хранилищу, избыточному между зонами (ZRS).

Примечание

Учетные записи хранения GRS или ZRS рекомендуется использовать для повышения устойчивости резервного файлового ресурса. Выбор типа избыточности зависит от ваших целей и ценовых предпочтений. Дополнительные сведения о вариантах репликации для учетных записей хранения Azure.

Снимок экрана: настройка учетной записи хранения.

Защита доступа к хранилищу

Для обеспечения безопасности каждый пользователь должен создать собственную учетную запись хранения. Для управления доступом на основе ролей Azure (Azure RBAC) пользователи должны иметь доступ участник или выше на уровне учетной записи хранения.

Cloud Shell использует общую папку Azure в учетной записи хранения в указанной подписке. Из-за унаследованных разрешений пользователи с достаточными правами доступа к подписке могут получить доступ ко всем учетным записям хранения и общим папкам, содержащимся в подписке.

Пользователи должны ограничить доступ к файлам, настроив разрешения на уровне учетной записи хранения или подписки.

Учетная запись хранения Cloud Shell содержит файлы, созданные пользователем Cloud Shell в домашнем каталоге, которые могут содержать конфиденциальную информацию, включая маркеры доступа или учетные данные.

Поддерживаемые регионы хранилища

Чтобы узнать текущий регион, выполните команду env в оболочке Bash и найдите переменную ACC_LOCATION или выполните команду $env:ACC_LOCATION в PowerShell. Файловые ресурсы получают образ размером 5 ГБ, создаваемый для хранения каталога $HOME.

Компьютеры Cloud Shell находятся в следующих регионах:

Область Регион
Северная и Южная Америка Восточная часть США, центрально-южная часть США, западная часть США
Европа Северная Европа, Западная Европа
Азиатско-Тихоокеанский регион Центральная Индия, Юго-Восточная Азия

Следует выбрать регион, который соответствует вашим требованиям.

Дополнительные регионы хранения

Если используется дополнительный регион хранения, соответствующая учетная запись хранения Azure будет расположена не в том регионе, где находится компьютер с Cloud Shell, к которому вы ее подключаете. Например, можно указать, что учетная запись хранения находится в восточной части Канады, дополнительном регионе, но Cloud Shell компьютер по-прежнему находится в основном регионе. Неактивные данные находятся в Канаде, но обрабатываются в США.

Примечание

Если используется дополнительный регион, доступ к файлам и запуск в Cloud Shell могут замедлиться.

Пользователь может запустить (Get-CloudDrive | Get-AzStorageAccount).Location в PowerShell, чтобы просмотреть расположение общей папки.

Ограничение создания ресурсов с помощью политик ресурсов 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, и он автоматически синхронизирует изменения.
  • Подключение указанного общего файлового ресурса как clouddrive в $HOME каталоге для прямого взаимодействия с общей папкой. /Home/<User>/clouddrive сопоставляется с fileshare.storage.windows.net/fileshare.

Примечание

Все файлы в каталоге $HOME , например ключи SSH, сохраняются в образе диска пользователя, который хранится в подключенной общей папке. Применяйте рекомендации при сохранении сведений в $HOME каталоге и подключенной общей папке.

Команды clouddrive

Использование команды clouddrive

В Cloud Shell можно выполнить команду с именем clouddrive, которая позволяет вручную обновить общую папку, подключенную к Cloud Shell.

Снимок экрана: выполнение команды clouddrive в bash.

Вывод объектов 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

Подключение нового облачного диска

Предварительные требования для подключения вручную

Вы можете обновить общую папку, связанную с Cloud Shell, с помощью clouddrive mount команды .

Примечание

При подключении новой общей папки для каталога $HOME создается новый пользовательский образ. Предыдущий $HOME образ хранится в предыдущей общей папке.

Выполните команду clouddrive mount со следующими параметрами:

clouddrive mount -s mySubscription -g myRG -n storageAccountName -f fileShareName

Чтобы просмотреть дополнительные сведения, выполните clouddrive mount -h, как показано ниже.

Снимок экрана: выполнение команды подключения clouddrive в bash.

Отключение облачного диска

Вы можете в любое время отключить общую папку, подключенную к Cloud Shell. Так как Cloud Shell требуется использовать подключенный общий файловый ресурс, Cloud Shell предлагает создать и подключить другой общий файловый ресурс в следующем сеансе.

  1. Выполните clouddrive unmount.
  2. Подтвердите запросы.

Отключенная общая папка продолжает существовать до тех пор, пока вы не удалите ее вручную. После отключения Cloud Shell больше не будет искать эту общую папку в последующих сеансах. Чтобы просмотреть дополнительные сведения, выполните clouddrive unmount -h, как показано ниже.

Снимок экрана: выполнение команды отключения clouddrive в bash.

Предупреждение

Несмотря на то, что при выполнении этой команды ресурсы не удаляются, при удалении вручную группы ресурсов, учетной записи хранения или общей папки, сопоставленной с Cloud Shell удаляется $HOME образ диска каталога и все файлы в общей папке. Это действие невозможно отменить.

Команды для PowerShell

Выведение списка общих файловых ресурсов Azure clouddrive

Командлет Get-CloudDrive извлекает сведения об общей папке Azure, подключенной clouddrive в Cloud Shell.

Снимок экрана: выполнение команды Get-CloudDrive в PowerShell.

Отключение clouddrive

Вы можете в любое время отключить общую папку Azure, подключенную к Cloud Shell. Командлет Dismount-CloudDrive отключает общую папку Azure из текущей учетной записи хранения. Отключение clouddrive приводит к завершению текущего сеанса.

Если общая папка Azure удалена, вам будет предложено создать и подключить новую общую папку Azure в следующем сеансе.

Снимок экрана: выполнение команды Dismount-CloudDrive в PowerShell.

Передача локальных файлов в Cloud Shell

Каталог clouddrive синхронизируется c колонкой хранилища на портале Azure. Используйте эту колонку для перемещения локальных файлов в файловый ресурс и из него. Обновленные файлы в Cloud Shell отобразятся в графическом пользовательском интерфейсе хранилища файлов после обновления колонки.

Скачивание файлов из портал Azure

Снимок экрана: список локальных файлов в портал Azure.

  1. На портале Azure перейдите к подключенному файловому ресурсу.
  2. Выберите целевой файл.
  3. Нажмите кнопку Скачать.

Скачивание файлов в Azure Cloud Shell

  1. В сеансе Cloud Shell Azure щелкните значок Отправка и скачивание файлов и выберите параметр Скачать.

  2. В диалоговом окне Скачивание файла введите путь к файлу, который нужно скачать.

    Снимок экрана: диалоговое окно скачивания в Cloud Shell.

    Вы можете скачать только файлы, расположенные в вашей папке $HOME .

  3. Нажмите кнопку Скачать.

Отправка файлов

Снимок экрана: отправка файлов в портал Azure.

  1. Перейдите к подключенному файловому ресурсу.
  2. Нажмите кнопку Отправить.
  3. Выберите файл или файлы, которые необходимо передать.
  4. Подтвердите передачу.

Теперь эти файлы должны появиться в каталоге clouddrive в Cloud Shell.

Примечание

Если вам нужно определить функцию в файле и вызвать ее с помощью командлетов PowerShell, необходимо добавить оператор "точка". Пример: . .\MyFunctions.ps1

Отправка файлов в Azure Cloud Shell

  1. В сеансе Cloud Shell Azure щелкните значок Отправка и скачивание файлов и выберите параметр Отправить. В браузере откроется диалоговое окно с файлом.
  2. Выберите файл, который нужно отправить, а затем нажмите кнопку Открыть .

Файл отправляется в корень папки $HOME . Вы можете переместить файл после его отправки.

Дальнейшие действия