2
votes

Obtenez ObjectId d'Azure Data Factory, dans la sortie de déploiement de modèle ARM

Je déploie une Azure Data Factory à l'aide de modèles ARM. J'ai besoin de l ' ObjectId / PricipalId / Managed Identity Object ID de Data Factory dans les sorties du déploiement. Cela peut être trouvé sur le portail Azure sous l'onglet Propriétés d'une Data Factory

J'ai essayé ces variantes mais en vain:

"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]"

L'erreur que je vois en les utilisant est que la propriété (identity / principalId) n'existe pas

J'ai également essayé les éléments mentionnés dans la documentation ici: https://docs.microsoft.com/en- us / azure / azure-resource-manager / resource-group-template-functions-resource # reference , il a donné la même erreur


0 commentaires

3 Réponses :


2
votes

essayez d'utiliser reference (concat ('Microsoft.DataFactory / factories /', variables ('name')), '2018-06-01', 'Full') comme valeur pour le sortie et l'examiner, vous devriez voir si ce dont vous avez besoin existe. si c'est le cas - référencez-le comme vous le feriez normalement, si ce n'est pas le cas - vous n'avez pas de chance.


2 commentaires

J'avais en fait utilisé le paramètre Full au départ, mais Visual Studio m'a demandé que la fonction reference n'accepte que 1 ou 2 arguments! c'est pourquoi je l'avais supprimé.


malheureusement, le schéma est une poubelle, ne lui faites pas confiance;)



2
votes

L'extrait de sortie de travail est:

 "dataFactoryPrincipalId": {
  "type": "string",
  "value": "[reference(concat('Microsoft.DataFactory/factories/', parameters('name')), '2018-06-01', 'Full').identity.principalId]"
}

notez que ce n'est pas la même chose que la propriété "Managed Identity Application ID"


0 commentaires

1
votes

Juste au cas où cela aiderait quelqu'un, j'étais confronté à ce problème lors du déploiement d'un modèle ARM qui approvisionnait une Data Factory, puis créais une politique d'accès Key Vault pour celle-ci. La syntaxe était correcte pour la propriété objectId pour la stratégie d'accès, c'est-à-dire :

"identity": {
    "type": "SystemAssigned"
 }

Cependant, il retournait toujours une erreur indiquant que la propriété d'identité n'était pas disponible pour la ressource. Le problème était que je ne fournissais pas d'identité lorsque j'ai déployé Data Factory. La propriété suivante devait être ajoutée au déploiement de Data Factory:

"[reference(concat('Microsoft.DataFactory/factories/', parameters('dataFactoryName')), '2018-06-01', 'Full').identity.principalId]"

Ensuite, la propriété était disponible pour la fonction de référence.


0 commentaires