Рубрики
Uncategorized

Копирование контейнеров Blob между учетными записями хранения с использованием Azure CLI

TL; DR TL В последние несколько недель мы делали миграцию нашего P … Tagged с Azure, DevOps.

TL; DR

Тл

В последние несколько недель мы совершали миграцию нашей платформы с одной учетной записи Azure на другую, и я использовал это как возможность обновить различные части наших трубопроводов развертывания. При этом я стал более ознакомил с Azure CLI И достаточно скоро я стал фанатом (не буквальным поклонником, просто фанатом Azure CLI).

Ранее мы использовали Шаблоны рук Развернуть наши группы ресурсов и ресурсы в них. Это работало нормально, но они мне не особенно нравились. Одна из причин заключается в том, что они способны сложности. Даже если вам нужен ресурс со всеми настройками, установленными на их значения по умолчанию, вам все равно нужно определить кучу JSON. Конечно, вам не нужно писать все с нуля. Вы можете начать с Шаблон быстрого начала и измените только то, что вам нужно, но все еще требуется слишком много усилий, чтобы мысленно проанализировать все это и понять это. В любом случае, это намного приятнее, короче и легче читать и писать с помощью Azure CLI.

Мигрирование платформы также означает мигрирование данных, а не только ресурсы. Как это происходит, у нас есть данные в широком спектре услуг: Учетные записи хранения (В Blobs, хранилище таблицы, совместностях файлов и Lake Gen 2 ), Data Lake Gen 1 и Azure SQL Анкет

Многие задачи по миграции данных могут быть выполнены с помощью Azure Storage Explorer , например, копирование целых контейнеров Blob, таблиц и совместных файлов между учетными записями и копирование целых файловых систем между учетными записями Data Lake (как Gen 1, так и Gen 2). Он использует Азкопи внизу, который использует сервер к серверу API копировать данные непосредственно между учетными записями, так что это довольно эффективно.

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

Как вы, вероятно, догадались из заголовка, вы можете использовать Azure CLI для копирования всех контейнеров Blob с одной учетной записи в другую. Это не так много, это просто простая команда, в настоящее время в предварительном просмотре, которую я нашел, ищу решения для этого:

Имейте в виду, что в настоящее время он находится в предварительном просмотре (Azure CLI v2.15.1), так что это может измениться в будущих выпусках. Он также использует сервер для API сервера для выполнения операции. Вы можете использовать Токены SAS вместо строк соединения:

Вы можете получить строку подключения к учетной записи или генерировать токен SAS, также используя Azure CLI:

Хорошая вещь в Azure CLI в том, что вы можете включить сценарии в свой Azure Tipelines и запустите их вместе с другими задачами DevOps вручную или по некоторым триггерам. Bellow является примером трубопровода, который каждый день работает для копирования всех контейнеров Blob между двумя учетными записями. Вы можете использовать его, чтобы поддерживать синхронизацию производства и принятия синхронизации:

Трубопровод предполагает, что у вас есть некоторые переменные трубопровода, которые определяют имена учетных записей и строки соединения. Переменная подписки относится к Azure Service Connection использовать для этого сценария.

Удобно, что вы можете использовать Azure CLI для создания как сервисного соединения, так и трубопровода, который выполняет задачу Azure CLI. Ум взорван 🤯! Вы бы сделали это с помощью Azure DevOps CLI расширение. Ниже приведены команды, и я оставляю вам, чтобы выяснить, как их использовать:

Говоря о Azure Storage Explorer, я сказал, что под ней используется азкопи. Ну, азкопи также можно использовать для копирования всех контейнеров Blob между учетными записями, а также других интересных сценариев. Но это вопрос для будущего поста!

Оригинал: «https://dev.to/eugenpodaru/copying-blob-containers-between-storage-accounts-using-azure-cli-32a»