如何在 Azure ARM 模板中设置环境变量
How to set environment variables in Azure ARM templates
我想在 ARM 模板中设置我的部署环境,以保证环境在不同机器上是相同的。有没有办法为使用 ARM 模板创建的虚拟机设置环境变量?
我认为没有直接的方法来做到这一点(查看架构),但您总是可以实现一些自定义的东西,Script extension or DSC extension。
Windows
您可以在部署时使用 Custom Script Extension to invoke SETX
。将嵌套资源添加到 VM 资源的 resources
数组。此示例在目标计算机上调用 SETX MyEnvironmentPrefix (environmentPrefix-parameter-value) /m
:
{
"apiVersion": "2017-12-01",
"type": "extensions",
"name": "SetEnvironmentVar",
"comments": "Sets the MyEnvironmentPrefix system env var",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "[concat('SETX MyEnvironmentPrefix ', parameters('environmentPrefix'), ' /m')]"
}
}
}
我想在 ARM 模板中设置我的部署环境,以保证环境在不同机器上是相同的。有没有办法为使用 ARM 模板创建的虚拟机设置环境变量?
我认为没有直接的方法来做到这一点(查看架构),但您总是可以实现一些自定义的东西,Script extension or DSC extension。
Windows
您可以在部署时使用 Custom Script Extension to invoke SETX
。将嵌套资源添加到 VM 资源的 resources
数组。此示例在目标计算机上调用 SETX MyEnvironmentPrefix (environmentPrefix-parameter-value) /m
:
{
"apiVersion": "2017-12-01",
"type": "extensions",
"name": "SetEnvironmentVar",
"comments": "Sets the MyEnvironmentPrefix system env var",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.9",
"autoUpgradeMinorVersion": true,
"settings": {
"commandToExecute": "[concat('SETX MyEnvironmentPrefix ', parameters('environmentPrefix'), ' /m')]"
}
}
}