我正在创建一个PowerShell脚本来执行几个步骤,其中一个涉及Azure存储容器删除:
Remove-AzureStorageContainer ....
下一步取决于该移除是否完成。
我如何知道上一个REMOVE已成功执行,以便继续执行下一步?
类似的东西;
while(Test-AzureStorageContainerExist "mycontainer")
{
Start-Sleep -s 100
}
<step2>
不幸的是,“Test-AzureStorageContainerExist”似乎不可用。:)
4条答案
按热度按时间cedebl8k1#
您可以请求存储容器的列表并查找特定的一个,然后等待,直到它不再返回为止。如果帐户中没有大量的容器,则可以正常工作。如果它确实有很多容器,那么这根本不会有效率。
Get-AzureStorageContainercmdlet还接受一个-Name参数,您可以执行一个循环,要求返回该参数;然而,当容器不存在时,它会抛出一个错误(Resource not found),而不是提供一个空结果,因此您可以捕获该错误并知道它已经消失了(确保显式地查找Reource Not found vs a timeout或类似的东西)。
更新:另一种选择是直接调用REST API来获取容器属性,直到得到404(未找到)。这意味着集装箱不见了。http://msdn.microsoft.com/en-us/library/dd179370.aspx
r6vfmomb2#
try/catch方法:
r7knjye23#
这个管用
如果您查看返回的错误消息(异常代码),则是正在删除的容器
rqmkfv5c4#
如果你是因为标题而不是OP的问题(这是谷歌的第一次点击),试试这个:
至少对我来说,捕获异常并不起作用,但这确实起作用了。