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

标签 powershell azure azure-storage

我正在创建一个 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/

相关文章:

powershell - 导入模块时如何禁用有关未批准动词的警告?

azure - 如何在azure自动化帐户中自动导入Az Powershell模块?

c# - Azure Blob 存储 : How to enumerate blobs in long-running and recoverable fashion?

javascript - 按目录获取azure容器blob列表

powershell - 如何使 PowerShell 处理文件名中的 [ 或 ] 好?

excel - 在事件的 Excel 文档中使用 VBA 从 powershell 连接到 Excel

azure - 创建自签名证书并将其上传到 Azure 应用服务的最简单方法

azure - 我的服务器没有在 azure 上部署最新的 git 代码

.net - 使用哪个 Azure Blob 客户端库? Microsoft.Azure.Storage.Common 或 WindowsAzure.Storage?

Azure SDK C# 将页面 Blob 转换为 VHD?