Azure Powershell 位置参数错误
Azure Powershell Positional Parameter error
我正在尝试使用 powershell 进行部署。参数和模板文件都存储在 blob 存储中,但在尝试下载 blob 之前我收到以下错误。
New-AzResourceGroupDeployment : A positional parameter cannot be found that accepts argument 'newdeployment-878059'. At C:\Temp\New-Deployment\deploy-core.ps1:86 char:1
我使用的代码如下
$vnetRG = "rg-vnet"
$vpnRG = "rg-vpn"
$fwRG = "rg-fw"
$btnRG = "rg-bastion"
$loc = "west europe"
New-AzResourceGroupDeployment -Name = "newdeployment-$random"-ResourceGroupName "rg-vnet" `
-TemplateParameterFile "$PSScriptRoot\core.parameters.json" -TemplateUri = $templateFileUri `
-vpnResourceGroupName $rgRG -vpnResourceGroupName $vpnRG -fwResourceGroupName $fwRG -btnResourceGroupName $btnRG
我正在尝试将多个资源部署到一个订阅中的各个资源组。
提前致谢:)
这里是我的评论作为回答
在您的代码中,您在一些参数名称和用于该参数的实际值之间添加了一个 =
字符。
在 PowerShell 中,您可以为参数赋值,两者之间有一个 space 字符。
此外,使用的参数(根据 the docs)对于该 cmdlet 不存在,例如 vpnResourceGroupName
、fwResourceGroupName
和 btnResourceGroupName
。对我来说,它们听起来像是错误地添加为参数的变量,前导 $
被剥离了?
对于可能会使用大量参数的 cmdlet,我建议使用 Splatting,以保持代码整洁且易于维护。
类似于:
$splatParams = @{
Name = "newdeployment-$random"
ResourceGroupName = "rg-vnet"
TemplateParameterFile = "$PSScriptRoot\core.parameters.json"
TemplateUri = $templateFileUri
}
New-AzResourceGroupDeployment @splatParams
我正在尝试使用 powershell 进行部署。参数和模板文件都存储在 blob 存储中,但在尝试下载 blob 之前我收到以下错误。
New-AzResourceGroupDeployment : A positional parameter cannot be found that accepts argument 'newdeployment-878059'. At C:\Temp\New-Deployment\deploy-core.ps1:86 char:1
我使用的代码如下
$vnetRG = "rg-vnet"
$vpnRG = "rg-vpn"
$fwRG = "rg-fw"
$btnRG = "rg-bastion"
$loc = "west europe"
New-AzResourceGroupDeployment -Name = "newdeployment-$random"-ResourceGroupName "rg-vnet" `
-TemplateParameterFile "$PSScriptRoot\core.parameters.json" -TemplateUri = $templateFileUri `
-vpnResourceGroupName $rgRG -vpnResourceGroupName $vpnRG -fwResourceGroupName $fwRG -btnResourceGroupName $btnRG
我正在尝试将多个资源部署到一个订阅中的各个资源组。
提前致谢:)
这里是我的评论作为回答
在您的代码中,您在一些参数名称和用于该参数的实际值之间添加了一个 =
字符。
在 PowerShell 中,您可以为参数赋值,两者之间有一个 space 字符。
此外,使用的参数(根据 the docs)对于该 cmdlet 不存在,例如 vpnResourceGroupName
、fwResourceGroupName
和 btnResourceGroupName
。对我来说,它们听起来像是错误地添加为参数的变量,前导 $
被剥离了?
对于可能会使用大量参数的 cmdlet,我建议使用 Splatting,以保持代码整洁且易于维护。
类似于:
$splatParams = @{
Name = "newdeployment-$random"
ResourceGroupName = "rg-vnet"
TemplateParameterFile = "$PSScriptRoot\core.parameters.json"
TemplateUri = $templateFileUri
}
New-AzResourceGroupDeployment @splatParams