我调用PowerShell的New-AzureRmResourceGroupDeployment
cmdlet来根据我的JSON模板调整大量Azure资源。
但是,通常MongoDB或Redis VM第一次无法配置,我再次运行该命令,并且配置成功。
在哪里可以通过编程方式了解我的部署是否成功所有资源,并在while循环中使用此布尔值来继续部署,直到所有资源都已成功配置为止?上面的cmdlet确实返回了一个对象,但我无法找到配置成功的指示器。
有些事情:
While ($didNotSucceed) {
New-AzureRmResourceGroupDeployment -TemplateFile <FileName> -ResourceGroupName <ResourceGroupName>
}
答案 0 :(得分:1)
$result = New-AzureRmResourceGroupDeployment bla-bla-bla
if ($result.ProvisioningState -eq "Failed") {
New-AzureRmResourceGroupDeployment bla-bla-bla
}
资源组部署具有ProvisioningState
属性,该属性具有部署的配置状态(令人惊讶)。它是Failed
或Succeeded
(我还没有看到其他状态)。
此外,这是我在Jenkins构建工作中使用的内容:
try { $deploy = New-AzureRmResourceGroupDeployment @parameters }
catch { Remove-AzureRmResourceGroup -ResourceGroupName $rgName -Force; $error; $_; exit 1 }