0
votes

Comment obtenir le nom du groupe de ressources à partir de l'application logique

Dans une application Azure Logic, comment puis-je obtenir le nom du groupe de ressources contenant l'application logique actuelle?

Je souhaite inclure des détails de suivi dans la sortie JSON que j'envoie à un autre système.

Je peux obtenir l'identifiant d'exécution (en utilisant @ {workflow () ['run'] ['name']} ),

et le nom actuel de l'application logique (en utilisant @ {workflow () ['name']} )

Cependant, je ne peux pas trouver comment obtenir le nom du groupe de ressources sur lequel l'application logique est déployée.

En dernier recours, j'utiliserai le nom du groupe de ressources utilisé par le modèle de déploiement, mais ce sera faux si l'application logique est déplacée plus tard. Je pourrais également utiliser des balises, mais encore une fois, cela pourrait devenir déphasé si l'application logique est déplacée.

Merci


0 commentaires

3 Réponses :


0
votes

Tout d'abord, nous pouvons créer une action "Initialiser la variable" pour obtenir toutes les données du flux de travail, comme illustré ci-dessous:

entrez la description de l'image ici

Ensuite, nous pouvons trouver les données dans le flux de travail:

substring(workflow()['id'],add(indexOf(workflow()['id'],'resourceGroups/'),15),sub(sub(indexOf(workflow()['id'],'/providers'),indexOf(workflow()['id'],'resourceGroups/')),15))

Il contient le nom du groupe de ressources, il nous suffit donc d'obtenir la propriété "id" et sa sous-chaîne pour obtenir le nom du groupe de ressources. La longueur de "resourceGroups /" est de 15, donc dans l'expression ci-dessous, j'utilise add ( , 15) et sub ( , 15).

Vous pouvez utiliser l'expression comme ci-dessous:

{
    "id": "/subscriptions/*****/resourceGroups/huryTest/providers/Microsoft.Logic/workflows/hurylogicblob",
    "name": "hurylogicblob",
    "type": "Microsoft.Logic/workflows",
    "location": "eastus",
    "tags": {},
    "run": {
        "id": "/subscriptions/*****/resourceGroups/huryTest/providers/Microsoft.Logic/workflows/hurylogicblob/runs/*****",
        "name": "*****",
        "type": "Microsoft.Logic/workflows/runs"
    }
}

Enfin, j'ai obtenu le nom du groupe de ressources de l'application logique:

entrez la description de l'image ici


0 commentaires

0
votes

Une formule simple peut être:

split(workflow().id, "/")[4]


0 commentaires

0
votes

Si vous déployez les applications logiques à l'aide de modèles ARM (par exemple, modifier dans Visual Studio, archiver dans le référentiel git Azure DevOps et déployer à l'aide du pipeline de publication), vous pouvez créer un paramètre ARM:

      "resGroup_LA": {
        "value": "[parameters('resGroup_ARM')]"
      }

Ensuite, vous pouvez créer un paramètre de workflow:

        "resGroup_LA": {
          "type": "string",
          "defaultValue": "ResGroup LA default"
        }

... et donnez-lui une valeur dans la section d'initialisation des paramètres:

"resGroup_ARM": {
  "type": "string",
  "defaultValue": "[resourceGroup().name]",
  "metadata": {
    "description": "Resouce group name"
  }
}

Vous pouvez obtenir toutes les autres propriétés de resourceGroup () de la même manière, voir: https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource?tabs= json # resourcegroup


0 commentaires