gpt4 book ai didi

azure - 如何将运行时参数的数量传递给Azure管道中的变量?

转载 作者:行者123 更新时间:2023-12-03 02:18:37 25 4
gpt4 key购买 nike

我正在使用 Azure Devops 管道通过 ARM 部署任务自动创建 Azure 警报。为了自动化警报的阈值,我在管道内创建了运行时参数,需要用替换 token 任务替换该参数,并将相应的运行时参数值更新到“parameters.json”文件。

在这里,我面临着这样的挑战,为了将运行时参数的值替换为parameters.json,首先我需要通过在变量部分定义这些变量或单独使用bash任务来将参数值转换为变量输出变量值。我正在寻找满足以下要求的解决方案

  • 是否有任何方法可以直接将运行时参数值更新到“parameters.json”
  • 我们可以将子值添加到参数值中吗?例如,如果警报类别是 logquery type-metricmeasurement,则只需具有某些运行时参数值;如果类型是“count type”,则需要其他值集。

最佳答案

如果您尝试使用 parameters.json 来执行此操作,则有点不方便。为什么 ?因为你必须解析 json,然后在运行时使用 PS/Bash 脚本更新 json 中所需的节点。

我将提出另一个解决方案来做到这一点。使用模板参数对象而不是parameters.json。只需使用 PS/Bash 调用 ARM 模板即可

创建虚拟机的示例-

$a = "abc"
$b = "efg"
$c = "hij"
$d = "klm"
$e = "nop"

$paramList =
@{
"Params1" = @{ customVmName = $a ; userImageStorageAccountName = $b ; adminUsername = $c ; adminPassword = $d ; osDiskVhdUri = $e }
}

foreach ($keys in $paramList.Keys)
{
$paramvalues = $paramList.$keys
New-AzureRmResourceGroupDeployment -ResourceGroupName "deploymentRG" -TemplateFile "YourARMTemplate.json" -TemplateParameterObject $paramValues
}

回答你的问题:在 Azure DevOps 中覆盖运行时的值

在调用 PS 文件时参数化脚本并覆盖值。如果您在 Azure DevOps 中使用 PS 任务,只需覆盖参数部分中的参数值 -

enter image description here

如果你是 PS/Bash 人员,你可以在脚本部分进行操作,比如根据条件或环境设置 $a="abc" ,并为另一个环境设置不同的值,意思是说参数值的覆盖可以在运行时作为代码完成(只是另一个选项)

关于azure - 如何将运行时参数的数量传递给Azure管道中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70058044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com