我正在使用ARM模板部署Azure Data Factory
。在部署的输出中,我需要数据工厂的ObjectId/PricipalId/Managed Identity Object ID
。可以在Azure门户的“数据工厂”的Properties
选项卡下找到
我尝试了这些变化,但无济于事:
"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)不存在
我还尝试了以下文档中提到的内容:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions-resource#reference,它给出了相同的错误
答案 0 :(得分:2)
尝试使用reference(concat('Microsoft.DataFactory/factories/', variables('name')), '2018-06-01', 'Full')
作为输出值并检查它,您应该查看所需的内容是否存在。如果有的话-像平常一样引用它;如果没有,则不走运。
答案 1 :(得分:0)
工作输出片段为:
"dataFactoryPrincipalId": {
"type": "string",
"value": "[reference(concat('Microsoft.DataFactory/factories/', parameters('name')), '2018-06-01', 'Full').identity.principalId]"
}
请注意,此属性与“ Managed Identity Application ID”属性不同
答案 2 :(得分:0)
为防万一,在部署配置有Data Factory的ARM模板并为其创建Key Vault访问策略时,我就遇到了这个问题。语法对于访问策略的objectId属性是正确的,即:
"[reference(concat('Microsoft.DataFactory/factories/', parameters('dataFactoryName')), '2018-06-01', 'Full').identity.principalId]"
但是,它仍然返回错误,表明该属性不能用于该资源。问题是,在部署数据工厂时我没有配置身份。需要将以下属性添加到Data Factory部署中:
"identity": {
"type": "SystemAssigned"
}
然后该属性可用于引用函数。