0 391 ru

Миграция Blob'a с одного storage аccount'a на другой в Azure

Categories: 💻 Programming

Вы наверняка сталкивались с тем что невозможно изменить локацию вашего сервиса в Azure и для того чтобы перенести данные, нужно создать новый Storage account и скопировать данные туда. В этой статье мы разберем как это можно сделать.

Во первых, вам понадобится AzureCopy 10 версии, скачать его можно тут.

Shared access signature (SAS) token

С помощью SAS token'a мы можем  получить доступ к нашему стореджу с Azure CLI и непосредственно в AzCopy.

Для того чтобы его сгенерировать нужно перейти в Azure портал на ваш storage и найти вкладку Shared access signature

shared access signature azure

Далее вы должны выбрать уровень доступов и зоны на какие сервисы это распространяется 

SAS

Хочу обратить внимание на то, что нужно указать список доступных айпи. В моем случае это весь диапазон (0.0.0.0-255.255.255). Для чего это нужно? При первом копировании я использовал Azure CLI на самом портале и у меня не работал скрипт который описан ниже, это было не очевидно, но как оказалось это произошло из-за того что я не указал список доступных ip адресов.

Так же хочу обратить внимание на то что несмотря на то что есть возможность выбрать TableStorage, тейбл сторэдж на данный момент копировать нельзя через AzCopy.

После нажимаем Генерировать SAS и получаем окно с нашими токенами:

azure sas config

Получив токены наших сервисов (source и target)  мы можем наконец-то приступить к копированию данных.

Я рекомендую делать эту операцию у вас на машине, а не в Azure CLI на Azure портале, тк внутренней памяти может не хватить, если у вас большой Blob storage.

Копирование контейнеров, директорий и blobs в другой storage account

Синтакс:

azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/?<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/?<SAS-token>' --recursive'

пример:

azcopy copy 'https://mysourceaccount.blob.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' --recursive

Если же вам нужно скопировать blobl себе в папку или с папки в сторедж, синхронизировать файлы или скачать определенный файл/папку. Детальнее про все команды можно почитать тут

Comments:

Please log in to be able add comments.