在使用以下代码段通过ARM模板创建VM之后,我有python script1.py和bash脚本script2.sh运行。由于某种原因,当我添加此script2.sh时,VM创建失败。 'fileUris'和commandToExecute是正确的。可能是什么原因,以及在哪里查找错误?
{
"name": "[concat(variables('web'),'/script1')]",
"properties":
{
"settings": {
"fileUris": ["https://.../script1.py"],
"commandToExecute": "python script1.py"
}
}
},
{
"name": "[concat(variables('web'),'/script2')]",
"properties":
{
"settings": {
"fileUris": ["https://.../script2.sh"],
"commandToExecute": "bash script2.sh"
}
}
},
为了清楚起见,我省略了类型,apiVersion,位置以及发布者,类型和typeHandlerVersion。这两个脚本都取决于 “ [[concat('Microsoft.Compute / virtualMachines /',variables('web'))]”
答案 0 :(得分:1)
对于Azure VM扩展,它是Azure资源,而不是资源的属性。因此,如果要在一个模板中将多个扩展添加到VM,则应将每个扩展作为一个资源。这是example。
更新
如果一个模板中有两个或更多扩展名,则应确保执行扩展名的顺序。尽管一个模板中有多个扩展,但它们仍在VM中一一执行。
例如,第一个扩展名为
"[concat(variables('vmName'),'/', 'antiMalwareExtension')]"
,您需要在第二个扩展名中添加“ dependsOn”:
"dependsOn":[
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]",
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),'/', 'antiMalwareExtension')]"
],
之后的扩展名也应该这样做。