PowerShell检查Azure存储容器是否存在

fer*_*ega 4 powershell azure azure-storage

我正在创建一个PowerShell脚本来执行几个步骤,其中一个步骤涉及删除Azure存储容器:

Remove-AzureStorageContainer ....
Run Code Online (Sandbox Code Playgroud)

下一步是依赖于此删除完成.

如何才能知道先前的REMOVE已成功执行,以便继续执行下一步?

就像是;

while(Test-AzureStorageContainerExist "mycontainer")
{
    Start-Sleep -s 100
}
<step2>
Run Code Online (Sandbox Code Playgroud)

不幸的是,"Test-AzureStorageContainerExist"似乎不可用.:)

Mik*_*eWo 8

您可以请求存储容器列表并查找特定存储容器,并等待,直到不再返回.如果帐户中没有大量容器,这可以正常工作.如果它确实有很多容器,那么这根本就没有效率.

while (Get-AzureStorageContainer | Where-Object { $_.Name -eq "mycontainer" })
{
    Start-Sleep -s 100
    "Still there..."
}
Run Code Online (Sandbox Code Playgroud)

Get-AzureStorageContainer cmdlet还采用-Name参数,您可以执行循环请求返回它; 但是,当容器不存在时,它会抛出一个错误(找不到资源)而不是提供一个空的结果,所以你可以捕获该错误并知道它已经消失(确保显式查找Reource Not found vs a timeout)或类似的东西).

更新:另一个选项是直接为get容器属性调用REST API,直到获得404(未找到).这意味着容器已经消失.http://msdn.microsoft.com/en-us/library/dd179370.aspx