Azure ARM模板使用自动生成的SAS令牌启用Linux诊断扩展
我正在尝试使用新的VM部署arm模板,并设置Linux诊断扩展/LAD,而不创建新的存储帐户,而是使用现有帐户。我发现本文使用了listAccountSas,并在ProtectedSettings中进行了设置: storageAccountSasToken: [listAccountSasparameters'existingStorageName'、'2018-07-01', 变量'accountSasProperties'。accountSasToken] 尝试部署模板时,在验证过程中出现错误: InvalidTemplate,消息:部署模板验证失败: '模板引用'MyExistingStorage Account'无效:无法 找不到此名称的模板资源或资源副本。请看 供使用 详情。} 她说: 引用函数和列表*函数不创建隐式 当资源被其资源ID引用时的依赖关系。到 创建一个隐式依赖项,传递所需资源的名称 部署在同一模板中 但是,我尝试使用嵌套模板创建SAS令牌,并在输出中设置sasToken.Id,稍后在主模板中使用sasToken.Id调用诊断扩展:Azure ARM模板使用自动生成的SAS令牌启用Linux诊断扩展,azure,diagnostics,azure-diagnostics,sas-token,Azure,Diagnostics,Azure Diagnostics,Sas Token,我正在尝试使用新的VM部署arm模板,并设置Linux诊断扩展/LAD,而不创建新的存储帐户,而是使用现有帐户。我发现本文使用了listAccountSas,并在ProtectedSettings中进行了设置: storageAccountSasToken: [listAccountSasparameters'existingStorageName'、'2018-07-01', 变量'accountSasProperties'。accountSasToken] 尝试部署模板时,在验证过程中出现错
{
"apiVersion": "2017-08-01",
"name": "SasTokenNestedTemplate",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
],
"properties": {
"mode" : "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"apiVersion" : "2018-03-01",
"type": "Microsoft.Resources/deployments",
"name": "NestedSasTokenCreation",
"properties": {
"sasToken": "[listAccountSas(parameters('existingStorageName'), '2018-07-01', variables('accountSasProperties')).accountSasToken]"
}
}
],
"outputs": {
"sasToken": {
"type": "string",
"value": "[resourceId('Microsoft.Resources/deployments', parameters('sasToken'))]"
}
}
}
}
},
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "[providers('Microsoft.Compute','virtualMachines/extensions').apiVersions[0]]",
"location": "[parameters('vmLocation')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
],
"name": "[concat(parameters('vmName'), '/LinuxDiagnostic')]",
"properties": {
"publisher": "Microsoft.Azure.Diagnostics",
"type": "LinuxDiagnostic",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "3.0",
"protectedSettings": {
"storageAccountName": "[parameters('existingStorageName')]",
"storageAccountSasToken": { "value": "[reference('SasTokenNestedTemplate', '2017-08-01').outputs.sasToken.value]" },
"storageAccountEndPoint": "https://core.windows.net/",
"sinksConfig": {
"sink": [
{
"name": "WADMetricJsonBlob",
"type": "JsonBlob"
}
]
}
但是仍然得到与上面相同的错误。
提前感谢您的帮助 您需要为它提供存储帐户的资源id,因为它不是模板的一部分,它自己无法计算出来
listAccountSas(resourceId('Microsoft.Storage/storageAccounts', parameters('existingStorageName')), '2018-07-01', variables('accountSasProperties')).accountSasToken
你是我的英雄!谢谢你,伙计!
listAccountSas(resourceId('Microsoft.Storage/storageAccounts', parameters('existingStorageName')), '2018-07-01', variables('accountSasProperties')).accountSasToken