我几乎同时运行这个PowerShell脚本两次:
#Provision Resource Group and all Resources within ARM Template
New-AzureRmResourceGroupDeployment -ResourceGroupName $ResourceGroupName `
-TemplateFile $TemplateFile `
-Mode Incremental `
-TemplateParameterFile $TemplateParametersFile @ExtraParameters `
-keyVaultAccessPolicies @($keyVaultPoliciesList) `
-Force
Run Code Online (Sandbox Code Playgroud)
这引发了这个异常:
VERBOSE: 16:48:48 - Template is valid.
New-AzureRmResourceGroupDeployment : Unable to edit or replace deployment 'DeploymentTemplate': previous deployment from '5/18/2017 2:48:47 PM' is still active (expiration time is '5/25/2017 2:48:46 PM'). Please see https://aka.ms/arm-deploy for usage details.
At L:\Source\Start-ArmEnvironmentProvisioning.ps1:274 char:1
+ New-AzureRmResourceGroupDeployment -ResourceGroupName $ResourceGroupN ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzureRmResourceGroupDeployment], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet
Run Code Online (Sandbox Code Playgroud)
我需要避免2个部署同时运行到同一个资源.所以,我试图捕获异常,然后强制按顺序运行AzureRM配置.
Try
{
#Provision Resource Group and all Resources within ARM Template
$params = @{'Name' = $ResourceGroupName;
'ResourceGroupName' = $ResourceGroupName;
'TemplateFile' = $TemplateFile;
'TemplateParameterFile' = $TemplateParametersFile;
'keyVaultAccessPolicies' = @($keyVaultPoliciesList) }
New-AzureRmResourceGroupDeployment @params -Force
}
Catch
{
$ErrorMessage = $_.Exception.Message
$FailedItem = $_.Exception.ItemName
Write-Error "We failed to read file $FailedItem. The error message was $ErrorMessage"
Break
}
Run Code Online (Sandbox Code Playgroud)
但是到目前为止我没有成功.我是PowerShell脚本的新手.
col*_*lsw 10
抛出的错误New-AzureRmResourceGroupDeployment是,Non-Terminating并且不会Try{}catch{}按原样触发语句.
通过-ErrorAction Stop在Try块内(在之前或之后-Force)添加Statement的末尾,可以强制它成为终止错误,这将触发Catch语句.
| 归档时间: |
|
| 查看次数: |
2341 次 |
| 最近记录: |