azure ARM模板adminPassword对于Uri文件部署为空,但对于本地文件不为空

2guxujil  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(103)

在PowerShell中,我使用SQL Server 2022 VM部署了一个简单的ARM模板。我将adminPassword参数作为securestring传递给脚本中的cmdlet New-AzResourceGroupDeployment,当参数文件和模板文件位于Windows中的本地计算机上时,它工作正常。

# This one works fine:
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateParameterFile parameters.json -TemplateFile template.json -adminPassword $adminPassword

但是当我直接指向GitHub中的文件时,adminPassword的参数传递不起作用。我得到一个错误,说adminPassword参数为空

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -adminPassword $adminPassword -TemplateParameterUri https://raw.githubusercontent.com/camillagaardsted/dp300/main/Lab1VM/parameters.json -TemplateUri https://raw.githubusercontent.com/camillagaardsted/dp300/main/Lab1VM/template.json

我的完整脚本可以在这里找到:https://github.com/camillagaardsted/dp300/blob/main/Lab1VM/deployvm.ps1我知道在脚本中保存密码不是最佳做法,但这只是一个简短的演示,我不想在这种情况下使用Azure密钥保管库。
为什么它在使用github文件时失败,而在使用本地文件时失败?

mv1qrgav

mv1qrgav1#

我在我的环境中尝试了类似的方法,参考此MSDoc创建一个虚拟机并使用ARM模板部署它。通过包含adminusernameadminpassword(secure string)parameters.json文件提供参数。部署成功,templateuri没有管理员密码空错误。

注意:你可能应该升级Azure PowerShell版本并测试它是否与templateuri配合使用。
示例代码片段:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/xxxxxdeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "adminUsername": {
      "type": "string"
    },
    "adminPassword": {
      "type": "secureString",
      "minLength": <userdefined>
    }
  }
}

vm.json

New-AzResourceGroupDeployment

New-AzResourceGroupDeployment -ResourceGroupName <resourceGroup> -TemplateUri "https://raw.githubusercontent.com/Azure/xxxazuredeploy.json" -adminUsername <xxxadminUsername> -adminPassword <securedadminPassword> -dnsLabelPrefix <dnsLabelPrefix>

部署在门户中:

相关问题