我正在创建一个 PowerShell 脚本来执行多个步骤,其中一个涉及 Azure 存储容器删除:
Remove-AzureStorageContainer ....
下一步取决于此删除是否完成。
如何知道之前的 REMOVE 已成功执行,以便继续执行下一步?
类似于;
while(Test-AzureStorageContainerExist "mycontainer")
{
Start-Sleep -s 100
}
<step2>
不幸的是,“Test-AzureStorageContainerExist”似乎不可用。 :)
最佳答案
您可以请求存储容器列表并查找特定的容器,然后等待,直到不再返回。如果帐户中没有大量容器,则此方法可以正常工作。如果它确实有很多容器,那么这根本不会有效。
while (Get-AzureStorageContainer | Where-Object { $_.Name -eq "mycontainer" })
{
Start-Sleep -s 100
"Still there..."
}
Get-AzureStorageContainer cmdlet 还采用 -Name 参数,您可以执行一个循环来要求返回它;但是,当容器不存在时,它会抛出错误(未找到资源)而不是提供空结果,因此您可以捕获该错误并知道它已经消失(确保显式查找“找不到资源”与“超时”)或类似的东西)。
更新:另一种选择是直接调用 REST API 来获取容器属性,直到收到 404(未找到)。这意味着容器已经消失了。 http://msdn.microsoft.com/en-us/library/dd179370.aspx
关于PowerShell 检查 Azure 存储容器是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222149/