2016-01-12 5 views
0

Я хочу очистить учетную запись хранилища, а затем «восстановить» ее с помощью AzCopy.Есть ли вызов API, который я могу сделать для Azure Storage, чтобы узнать, был ли мой контейнер удален?

очистить последнее хранение ночи с использованием

$ctx = New-AzureStorageContext -StorageAccountName $storage -StorageAccountKey $key Get-AzureStorageContainer a* -Context $ctx | Remove-AzureStorageContainer -Force

И затем использовать AzCopy но получить;

The remote server returned an error: (409) Conflict. The specified container is being deleted. Try operation later.

Я не хочу, чтобы петли, пытаясь создать хранилище снова. Как можно дождаться завершения операции «Удалить»?

Есть ли статус Get-AzureStorageContainer? «Удаление?»

ответ

0

Есть ли статус Get-AzureStorageContainer? «Удаление?»

К сожалению, их нет. Вам просто нужно продолжать попытки.

На основе документации здесь: https://msdn.microsoft.com/en-us/library/azure/dd179408.aspx

Когда контейнер удаляется, контейнер с таким же именем не может быть создано не менее 30 секунд; контейнер может быть недоступен более 30 секунд, если служба по-прежнему обрабатывает запрос . В то время как контейнер удаляется, попытки создания контейнера с таким же именем будут с кодом состояния 409 (конфликт), , при этом служба возвращает дополнительную информацию об ошибке, указывающую , что контейнер удаляется. Все остальные операции, в том числе операции с любыми блоками под контейнером, не будут иметь статус код 404 (не найден), пока контейнер удаляется.

Хотя они говорят 30 секунд, но в зависимости от количества капель в контейнере это может занять еще больше времени.

Другой альтернативой было бы удалить все капли отдельно, а не удалять контейнер. Однако, поскольку каждое удаление является отдельным сетевым вызовом, процесс может работать в течение более длительного времени (и он подвержен сетевым сбоям), но это гарантирует, что при запуске AzCopy контейнер будет пустым.

+0

Интересно, добавят ли они API? –

+1

Я серьезно сомневаюсь в этом. С самого начала это было поведением. В идеале я хотел бы, чтобы эти операции удаления были преобразованы как «асинхронные операции», когда служба хранения возвращает вам идентификатор операции (если он принят), а затем отслеживает статус запроса с использованием этого идентификатора (как и API-интерфейс ARM/Service Management API). –

0

Не достаточно сообщение об ошибке, чтобы дать вам такое же поведение. Вы можете написать этот API самостоятельно. Или я чего-то не хватает?

«Указанный контейнер удаляется. Попробуйте выполнить операцию позже».

 Смежные вопросы

  • Нет связанных вопросов^_^