如何在 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')]"
        }
    }
}