Azure Powershell-检查资源是否存在

use*_*734 7 powershell azure azure-powershell

我正在使用Powershell自动设置我的Azure环境-创建存储帐户,数据库,网站等。

在开发中,我要进行大量配置和拆卸。很多时候,我想运行配置脚本并创建天蓝色资产(如果尚不存在)

但是,我还没有找到一种优雅的方法。如果该项目不存在,则某些“ Get” cmdlet会引发异常,并且捕获该项目有点hack:

try {
    $storageAcct = Get-AzureStorageAccount -StorageAccountName $Name
    Write-Verbose "Storage Account already exists"
} catch {
    $storageAcct = New-AzureStorageAccount -StorageAccountName $Name -Location $Location
}
Run Code Online (Sandbox Code Playgroud)

此外,使用某些命令,我​​根本无法捕获异常,而且我也不知道为什么:

try {
        $cache = Get-AzureRedisCache -ResourceGroupName $resourceGroupName -Name $cacheName
} catch {
       //Even with an exception, never arrives here.
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

Ant*_*dez 5

这是我使用新的 Azure PowerShell Az 模块的解决方案


$StorageAccountName = "Storage account name"
$ResourceGroupName = "Resource group name"

$StorageAccount = Get-AzStorageAccount -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -ErrorAction SilentlyContinue

if($StorageAccount -eq $null){
    $storage =  New-AzStorageAccount -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName -Location "westeurope" -SkuName Standard_LRS -Kind StorageV2
}
else{
    Write-Host "$StorageAccountName already exist"
}
Run Code Online (Sandbox Code Playgroud)


Loï*_*HEL 0

像这样的东西?

if(
 Get-AzureStorageAccount | Where {$_.Label -match $name} | measure |select -expand count -eq 0) {

    $storageAcct = New-AzureStorageAccount -StorageAccountName $Name -Location $Location
}
Run Code Online (Sandbox Code Playgroud)