在ARM模板部署输出中获取Azure数据工厂的ObjectId
我正在使用ARM模板部署一个在ARM模板部署输出中获取Azure数据工厂的ObjectId,azure,arm-template,azure-template,Azure,Arm Template,Azure Template,我正在使用ARM模板部署一个Azure数据工厂。我需要部署输出中数据工厂的ObjectId/PricipalId/Managed Identity Object ID。这可以在Azure门户的数据工厂的属性选项卡下找到 我尝试过这些变化,但没有任何效果: "value": "[reference(concat('Microsoft.DataFactory/factories/', variables('name')), '2018-06-01').identity.principalId]" "
Azure数据工厂
。我需要部署输出中数据工厂的ObjectId/PricipalId/Managed Identity Object ID
。这可以在Azure门户的数据工厂的属性选项卡下找到
我尝试过这些变化,但没有任何效果:
"value": "[reference(concat('Microsoft.DataFactory/factories/', variables('name')), '2018-06-01').identity.principalId]"
"value": "[reference(concat('Microsoft.DataFactory/factories/', variables('name')), '2018-06-01').principalId]"
我在使用它们时看到的错误是属性(identity/principalId)不存在
我还尝试了文档中提到的内容:,它给出了相同的错误尝试使用引用(concat('Microsoft.DataFactory/factories/',variables('name')),'2018-06-01','Full')
作为输出值,并检查它,您应该看看您需要的是否存在。如果有-像通常一样引用它,如果没有-你就不走运了。工作输出片段是:
"dataFactoryPrincipalId": {
"type": "string",
"value": "[reference(concat('Microsoft.DataFactory/factories/', parameters('name')), '2018-06-01', 'Full').identity.principalId]"
}
注意,这与“托管标识应用程序ID”属性不同为了防止对任何人有所帮助,我在部署一个ARM模板时遇到了这个问题,该模板配置了一个数据工厂,然后为其创建了一个密钥Vault访问策略。访问策略的objectId属性的语法正确,即:
"[reference(concat('Microsoft.DataFactory/factories/', parameters('dataFactoryName')), '2018-06-01', 'Full').identity.principalId]"
但是,它仍然返回一个错误,即标识属性不可用于资源。问题是我在部署数据工厂时没有设置标识。需要将以下属性添加到数据工厂部署中:
"identity": {
"type": "SystemAssigned"
}
然后该属性可用于引用函数。我最初实际使用了Full
参数,但Visual Studio提示reference
函数只接受1或2个参数!这就是我删除它的原因。遗憾的是,模式是垃圾,不要相信它;)