fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Научитесь использовать Bash в Azure CLI

Научитесь использовать Bash в Azure CLI

Справочные команды Azure CLI могут выполняться в нескольких различных средах оболочки, но в Microsoft Docs в основном используется среда Bash. Если вы новичок в Bash, а также в Azure CLI, эта статья станет для вас отличным началом обучения. Работайте с этой статьей так же, как с учебником, и вскоре вы с легкостью будете использовать Azure CLI в среде Bash.

В этой статье вы узнаете, как сделать следующее:

  • Запрашивать результаты в виде словарей или массивов JSON.
  • Форматировать выходные данные в виде JSON, таблицы или TSV.
  • Запрашивать, фильтровать и форматировать одиночные и множественные значения
  • Использовать синтаксис if/exists/then и case
  • Используйте циклы for
  • Используйте команды grep, sed, paste и bc.
  • Заполнять и использовать переменные оболочки и среды.

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

Запуск Bash

Запустите Bash с помощью Azure Cloud Shell или локальной установки Azure CLI. В этой статье предполагается, что вы запускаете Bash либо с помощью Azure Cloud Shell, либо запускаете Azure CLI локально в контейнере docker.

Запрос результатов по словарю

Команда, которая всегда возвращает только один объект, возвращает словарь JSON. Словари – это неупорядоченные объекты, доступ к которым осуществляется с помощью ключей. В этой статье мы начнем с запроса объекта Account с помощью команды Account Show.

В следующем выводе словаря JSON некоторые поля опущены для краткости, а идентифицирующая информация была удалена или обобщена.

Форматирование вывода в формате YAML

Используйте аргумент –output yaml (ил и-o yaml ), чтобы отформатировать вывод в формате yaml – формате сериализации данных в виде обычного текста. YAML, как правило, легче читается, чем JSON, и легко отображается в этот формат. Некоторые приложения и команды CLI принимают YAML в качестве входных данных конфигурации вместо JSON.

Подробнее о форматировании вывода в формате yaml см. в разделе Формат вывода YAML.

Форматирование вывода в виде таблицы

Используйте аргумент –output table (ил и-o table ) для форматирования вывода в виде таблицы ASCII. Вложенные объекты не включаются в табличный вывод, но могут быть отфильтрованы как часть запроса.

Дополнительную информацию о форматировании вывода в виде таблицы см. в разделе Формат вывода таблицы.

Запрос и форматирование одиночных и вложенных значений

Следующие запросы демонстрируют запрос отдельных значений, включая вложенные значения в выводе словаря JSON. Последний запрос в этом наборе демонстрирует форматирование вывода с помощью аргумент а-o tsv. Этот аргумент возвращает результаты в виде значений, разделенных табуляцией и новой строкой. Это полезно для удаления кавычек в возвращаемом значении – что полезно для использования вывода в других командах и инструментах, которым необходимо обработать текст в той или иной форме (как мы продемонстрируем далее в этой статье).

Запрос и форматирование нескольких значений, включая вложенные значения

Чтобы получить более одного свойства, заключите выражения в квадратные скобки [ ] (список multiselect) в виде списка, разделенного запятыми. Следующие запросы демонстрируют запрос нескольких значений в выводе словаря JSON с использованием нескольких форматов вывода.

Для получения дополнительной информации о возврате нескольких значений см. раздел Получить несколько значений.

Переименование свойств в запросе

Следующие запросы демонстрируют использование функции< >(multiselect hash) оператор для получения словаря вместо массива при запросе нескольких значений. Здесь также демонстрируется переименование свойств в результате запроса.

Дополнительную информацию о переименовании свойств в запросе см. в разделе Переименование свойств в запросе.

Запрос булевых значений

Булевы значения считаются истинными, поэтому синтаксис запроса “[?isDefault]” для команды az account list возвращает текущую подписку по умолчанию. Чтобы получить ложные значения, необходимо использовать управляющий символ, например .

Следующий запрос демонстрирует запрос всех учетных записей в подписке, потенциально возвращающий массив JSON, если для данной учетной записи существует несколько подписок, а затем запрос на то, какая учетная запись является подпиской по умолчанию. Также демонстрируется запрос к учетным записям, которые не являются подпиской по умолчанию. В этих запросах используются ранее изученные методы фильтрации и форматирования результатов. Наконец, последний запрос демонстрирует сохранение результатов запроса в переменной.

  • Дополнительные сведения о фильтрации массивов и запросе булевых значений см. в разделе Фильтр массивов с помощью булевых выражений.
  • Дополнительные сведения об использовании переменных см. в разделе Как использовать переменные.
  • Дополнительные сведения о работе с подписками см. в разделе Управление подписками.

Создание объектов с использованием переменных и рандомизации

Установка случайного значения для использования в последующих командах

Установка и использование случайного значения в переменных позволяет запускать сценарии несколько раз без конфликтов имен. Конфликты именования могут возникать, потому что значение должно быть уникальным для всей службы или потому что объект, который вы удалили, все еще существует в Azure до завершения процесса удаления.

$RANDOM – это функция bash (не константа), которая возвращает случайное знаковое 16-битное целое число (от 0 до 32767). Команда let – это встроенная команда Bash для оценки арифметических выражений. Использование следующей команды создает достаточно уникальное значение для большинства целей.

Работа с пробелами и кавычками

Пробелы используются для разделения команд, опций и аргументов. Используйте кавычки, чтобы указать оболочке Bash игнорировать все специальные символы, среди которых белый пробел является специальным символом. Когда оболочка Bash видит первую кавычку, она игнорирует специальные символы до закрывающей кавычки. Однако иногда требуется, чтобы оболочка Bash разбирала некоторые специальные символы, такие как знаки доллара, обратные кавычки и обратные слэши. Для этого используйте двойные кавычки.

Следующие команды используют команду az group create для иллюстрации использования одинарных и двойных кавычек для обработки пробелов и оценки специальных символов при работе с переменными и создании объекта.

В выводе словаря JSON просмотрите свойства только что созданной группы ресурсов.

Использование If Then Else для определения того, является ли переменная нулевой

Для оценки строк используйте !=, а для оценки чисе л-ne . Следующий оператор If Then Else проверяет, была ли установлена переменная $resourceGroup. Если да, то возвращается значение переменной. Если нет, оно устанавливает значение переменной.

Использование оператора If Then для создания или удаления группы ресурсов

Следующий сценарий создает новую группу ресурсов только в том случае, если группа с указанным именем еще не существует.

Следующий сценарий удаляет существующую новую группу ресурсов, если группа с указанным именем уже существует. Вы можете использовать аргумент –no-wait, чтобы вернуть управление, не дожидаясь завершения команды. Однако в данной статье мы хотим дождаться удаления группы ресурсов, прежде чем продолжить работу. Более подробную информацию об асинхронных операциях смотрите в разделе Асинхронные операции. Мы продемонстрируем использование аргумента –no-wait в конце этой статьи.

Использование Grep для определения существования группы ресурсов и создания группы ресурсов, если она не существует

Следующая команда передает вывод команды az group list в команду grep. Если указанная группа ресурсов не существует, команда создает группу ресурсов, используя ранее определенные переменные.

Использование оператора CASE для определения существования группы ресурсов и создания группы ресурсов, если она не существует

Следующий оператор CASE создает новую группу ресурсов, только если группа с указанным именем еще не существует. Если группа с указанным именем существует, оператор CASE выдает эхо, что группа ресурсов существует.

Использование циклов for и запрос массивов

В этом разделе статьи мы создадим учетную запись хранилища, а затем с помощью циклов for создадим несколько блобов и контейнеров. Мы также продемонстрируем запросы к массивам JSON и работу с переменными окружения.

Создание учетной записи хранилища

Следующая команда использует команду az storage account create для создания учетной записи хранения, которую мы будем использовать при создании контейнеров хранения.

Получение ключей учетной записи хранилища

Следующие команды используют команду az storage account keys list для возврата значений ключей учетной записи хранилища. Затем мы сохраняем значение ключа в переменной для использования при создании контейнеров хранения.

Создание контейнера хранения

Мы начнем с использования команды az storage container create для создания одного контейнера хранения, а затем воспользуемся командой az storage container list для запроса имени созданного контейнера.

Загрузка данных в контейнер

Следующий сценарий создает три файла-образца с помощью цикла for.

Следующий сценарий использует команду az storage blob upload-batch для загрузки блобов в контейнер хранения.

Следующий сценарий использует команду az storage blob list, чтобы перечислить блобы в контейнере.

Следующий сценарий отображает общее количество байт в контейнере хранения.

Создание множества контейнеров с помощью циклов

Далее мы создадим несколько контейнеров с помощью цикла, продемонстрировав несколько способов написания цикла.

Используйте EXPORT для определения переменных окружения

В предыдущих сценариях создания контейнеров хранения мы указывали имя учетной записи и ключ учетной записи в каждой команде. Вместо этого вы можете хранить учетные данные аутентификации с помощью соответствующих переменных окружения: AZURE_STORAGE_ACCOUNT и AZURE_STORAGE_KEY . Чтобы сделать это, используйте EXPORT.

Следующий сценарий создает строку метаданных, а затем использует команду az storage container metadata update для обновления контейнера с помощью этой строки, опять же используя переменные среды.

Следующая команда использует команду az storage container delete для удаления одного именованного контейнера, а затем удаляет несколько контейнеров в цикле.

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

Удалите список контейнеров в цикле, используя аргумент –prefix.

Обработка ошибок

Чтобы немедленно завершить сценарий, если команда возвращает ненулевой статус, выполните следующую команду:

Для получения дополнительной информации о настройке опций оболочки и других справочных материалов выполните следующие команды:

Очистка ресурсов

Когда вы закончите эту статью, удалите группу ресурсов и все ресурсы в ней. Используйте аргумент –no-wait.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *