0

Je tente de déployer une application Azure Logic qui inclut une action permettant d'envoyer un message sur un bus de service à l'aide d'un modèle ARM. Outre le déploiement de l'application Logic, le modèle ARM déploie un espace de noms de bus de service, une file d'attente et deux AuthorizationRule (un pour l'envoi et un pour l'écoute).Comment définir la chaîne de connexion pour une action de l'application logique de bus de service dans un modèle ARM?

Je souhaite définir de manière dynamique les informations de connexion pour l'action Envoyer un message de bus de service afin d'utiliser la chaîne de connexion générée pour la règle d'autorisation qui prend en charge l'envoi.

Lorsque je crée cela dans l'éditeur de portail (en spécifiant la chaîne de connexion pour l'envoi), je remarquais ce qui suit est généré en vue de code ...

"Send_message.": { 
    "conditions": [ 
     { 
      "dependsOn": "<previous action>" 
     } 
    ], 
    "inputs": { 
     "body": { 
      "ContentData": "@{encodeBase64(triggerBody())}" 
     }, 
     "host": { 
      "api": { 
       "runtimeUrl": "https://logic-apis-westus.azure-apim.net/apim/servicebus" 
      }, 
      "connection": { 
       "name": "@parameters('$connections')['servicebus']['connectionId']" 
      } 
     }, 
     "method": "post", 
     "path": "/@{encodeURIComponent(string('<queuename>'))}/messages" 
    }, 
    "type": "apiconnection" 
} 

},

Je suppose que la J'ai ensuite utilisé resources.azure.com pour naviguer vers l'application logique pour voir si je pouvais obtenir plus de détails sur la façon dont @parameters('$connections')['servicebus']['connectionId']" est défini.

Je trouve ceci:

"parameters": { 
    "$connections": { 
    "value": { 
     "servicebus": { 
     "connectionId": "/subscriptions/<subguid>/resourceGroups/<rgname>/providers/Microsoft.Web/connections/servicebus", 
     "connectionName": "servicebus", 
     "id": "/subscriptions/<subguid>/providers/Microsoft.Web/locations/westus/managedApis/servicebus" 
     } 
    } 
    } 
} 

Mais je ne vois toujours pas où la chaîne de connexion est réglée.

Où puis-je définir la chaîne de connexion pour l'action du bus de service dans un modèle ARM en utilisant quelque chose comme ce qui suit?

[listkeys(variables('sendAuthRuleResourceId'), variables('sbVersion')).primaryConnectionString] 

EDIT: Aussi, j'ai parlé était semble être a promising Azure quick start on github (based on the title), mais je ne peux faire aucun sens de celui-ci. Il semble utiliser un ancien schéma 2014-12-01-preview, et le "queueconnector" fait référence à une passerelle Api. S'il y a un exemple plus récent pour ce scénario, j'aimerais le voir.

+1

Comme vous le savez les connexions est une ressource donc il doit être créé en premier avez-vous référé à https://blogs.msdn.microsoft.com/logicapps/2016/02/23/deploying-in-the-logic-apps -preview-refresh /. Le lien de démarrage rapide auquel vous faites référence est celui d'un schéma plus ancien. – TusharJ

+0

Merci Tushar. Cela m'a pris un peu de temps, mais j'ai réussi à faire fonctionner le modèle ARM en utilisant l'info dans ce lien. Heureux de vous donner le crédit pour la réponse si vous voulez soumettre votre commentaire comme réponse. – Paul

+0

Paul s'il vous plaît n'hésitez pas à modifier ma réponse pour ajouter plus d'informations afin que votre apprentissage pourrait bénéficier aux autres. Aussi, je vais partager les informations avec mon équipe pour ajouter plus de détails de la documentation. – TusharJ

Répondre