我正在尝试使用 ARM 模板和 Powershell 从 Devops 部署 azure 资源 [资源组]。下面是设置
错误
New-AzResourceGroupDeployment用于将部署添加到
pre-existing
资源组,如果资源组不存在,则会报告屏幕截图中的错误。
要创建资源组,您可以简单地使用New-AzResourceGroup,不需要ARM模板。然后就可以开始在这个资源组上部署了。
我这边的ARM模板用于在资源组上部署存储帐户,修复了管道和powershell,如下所示:
stages:
- stage: Partner
displayName: Dev
jobs:
- deployment: Dev_deployment
displayName: Dev deployment
pool:
vmImage: Windows-latest
environment: Dev
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: AzurePowerShell@5
displayName: Lab Dev Deployment
inputs:
azureSubscription: 'ARMConn4'
ScriptType: 'InlineScript'
Inline: |
Set-Location $(System.DefaultWorkingDirectory)
./deployment/master.ps1 -environment "dev" -rgconfig @{"dev"=@{"rgname"="rg_DevOpsCICDNew"}} # rgconfig is required as hashtable type in your powershell
azurePowerShellVersion: 'LatestVersion'
powershell:
param
(
[Parameter(Mandatory=$true)][string] $environment,
#[Parameter(Mandatory=$true)][hashtable] $commonconfig,
[Parameter(Mandatory=$true)][hashtable] $rgconfig
)
$ARMTemplateFilePath = Resolve-Path -Path .\ARMtemplate\resourcegroup\resourcegroup.json
$ARMTemplateParamFilePath = Resolve-Path -Path .\ARMtemplate\resourcegroup\parameters.json
Write-Host $ARMTemplateFilePath
Write-Host $ARMTemplateParamFilePath
Write-Host $rgconfig[$environment].rgname
# $Deployment = @{
# ResourceGroupName = $rgconfig[$environment].rgname
# TemplateFile = $ARMTemplateFilePath
# TemplateParameterFile = $ARMTemplateParamFilePath
# }
New-AzResourceGroup -Name $rgconfig[$environment].rgname -Location "East US"
sleep 60 # add delay after resource group creation
#New-AzResourceGroupDeployment @Deployment
New-AzResourceGroupDeployment -ResourceGroupName $rgconfig[$environment].rgname -TemplateFile $ARMTemplateFilePath -TemplateParameterFile $ARMTemplateParamFilePath
Write-Host "Deployment is complted for ResourceGroup :" $rgconfig[$environment].rgname
管道成功,创建资源组,在资源组上完成部署(存储帐户)。