作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个 Azure ARM Teamplate,它应该使用 Docker 创建 Linux VM。 Docker 是使用 Azure 的 DockerExtension 安装的。安装 Docker 后,我需要使用 Azure 的 CustomScriptForLinux
运行自定义脚本。因此,第二个脚本应该取决于 Docker 安装。下面是一个示例,展示了我如何尝试在 ARM 模板中编写该内容:
{
...,
"variables": {
"extensionName": "DockerExtension",
"vmName": "Docker",
...
},
"resources": [
...,
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(variables('vmName'), '/', variables('extensionName'))]",
"tags": {
"displayName": "DockerExtension"
},
"apiVersion": "2015-06-15",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"type": "DockerExtension",
"typeHandlerVersion": "1.1",
"autoUpgradeMinorVersion": true,
"settings": { }
}
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(variables('vmName'), '/config')]",
"apiVersion": "2015-06-15",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/extensions/', variables('vmName'), '/', variables('extensionName'))]"
],
"properties": {
"publisher": "Microsoft.OSTCExtensions",
"type": "CustomScriptForLinux",
"typeHandlerVersion": "1.4",
"settings": {
"fileUris": [
"..."
],
"commandToExecute": "bash configure.sh"
}
}
}
]
}
如果我运行此 ARM 模板,我会收到错误资源
我不明白为什么。这是我模板中的 Docker 扩展的名称,不是吗?
模板中未定义“Microsoft.Compute/virtualMachines/extensions/Docker/DockerExtension”。
如果我只运行其中一个脚本,该模板就可以工作。所以模板中不应该出现一般错误。
感谢任何帮助。
问候,雷纳。
最佳答案
您可以尝试在 ARM 模板中使用 ARM 模板函数 resourceId() 来引用 Docker 扩展资源,如下所示。
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(variables('vmName'), '/config')]",
"dependsOn": [
"[resourceId('Microsoft.Compute/virtualMachines/extensions', variables('vmName'), variables('extensionName'))]"
],...
引用:Azure 资源管理器模板函数
关于Azure ARM 模板取决于 : How to reference a VM extension?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35390084/
我是一名优秀的程序员,十分优秀!