Loupe

Déploiement d’un service bus avec Azure Resource Manager

En parcourant la documentation Azure pour connaitre les providers de ressources utilisables avec Azure Resource Manager, je me suis rendu compte qu’il était possible de déployer des Service Bus et des hubs de notifications avec ARM. Cependant en cliquant sur le lien de la colonne « Modèle de démarrage rapide », je me suis aperçu qu’aucun modèle de déploiement n’était encore disponible :

 

image[7]

nh-arm-available

sb-arm-available

 

C’est en utilisant « Azure Resource Explorer » que j’ai pu trouver les Templates de deploiement.

 

Qu’est-ce que « Azure Resource Explorer » ?

Azure Resource Explorer est un portail Azure de « bas niveau » : C’est une application web qui permet de découvrir les API Azure Resource Manager mais également d’administrer ses ressources Azure.

Lorsque l’on utilise le portail Azure (la nouvelle version), des appels vers les API Azure Resource Manager sont effectués en arrière-plan pour administrer les ressources. Pour que le portail soit agréable et utilisable, les appels et les réponses des API ARM sont traités par des interfaces graphiques. Avec Azure Resource Explorer cette couche d’interface graphique n’est plus présente, on peut donc communiquer directement avec les API ARM, en effectuant des requêtes de types GET / POST / PUT / DELETE sur les ressources de nos souscriptions Azure.

 

Avec ARE, il est possible d’explorer : 

  • Les providers de ressources utilisables avec ARM
  • Les ressources de la souscription Azure, organisées dans leurs groupes de ressource respectifs.

 

Il existe deux points d’entrées pour ARE :

 

Pour utiliser ARE depuis le portail Azure, il faut sélectionner le service « Resource Explorer » :

ARE

 

Pour découvrir comment utiliser ARE, je vous renvoie vers cette vidéo, qui explique l’essentiel. La visualisation de cette vidéo est conseillée pour bien comprendre la suite de l’article Sourire

 

Les modèles de déploiement :

Pour investiguer, il est nécessaire de créer deux services bus (un de type « Messaging » et l’autre de type « Notification Hub ») depuis l’ancien portail Azure.

Depuis l’ancien portail il n’est pas possible de créer un service bus (“Messaging” ou “notification hub”) dans un groupe de ressources de notre choix, automatiquement deux nouveaux groupes de ressources vont être créés : « Default-ServiceBus-NorthEurope » et « Default-NotificationHubs-NorthEurope » si les ressources ont été crée dans la région “North Europe”. Ces groupes de ressources sont visibles depuis le nouveau portail Azure, on peut d’ailleurs y visualiser les deux ressources que nous venons de créer : la notification Hub est administrable directement depuis le nouveau portail, cependant le service bus de type « messaging » n’est administrable que depuis l’ancien portail.

Il est alors intéressant d’aller voir sur ARE, si nous pouvons accéder au Template de déploiement de ces deux services bus, nous retrouvons alors les deux groupes  de ressources créés précédemment :

 

ARE-nhARE-sb 

 

En sélectionnant les ressources présentes dans chaque groupe de ressources, on découvre leur définition en json avec deux providers différents :

  • Pour le service bus de type « messaging » : Microsoft.ServiceBus/namespaces
  • Pour le service bus de type « notification hub » : Microsoft.NotificationHubs/namespaces

 

En adaptant les modèles json renvoyés par ARE, on peut créer assez rapidement les deux modèles ARM suivants : 

 

Service bus de types « Messaging » : *

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "sku": {
      "type": "int",
      "allowedValues": [
        1,
        2
      ],
      "defaultValue": 1
    },
    "sbName": {
      "type": "string"
    }
  },
  "resources": [
    {
      "apiVersion": "2014-09-01",
      "type": "Microsoft.ServiceBus/namespaces",
      "name": "[parameters('sbName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "namespaceType": "Messaging",
        "sku": ["parameters('sku')"]
      }
    }
  ]
}

Ce template permet de spécifier le « pricing tier » du service bus (1 = basic / 2 = Standard)

 

Service bus de types « NotificationHub » : *

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "sbName": {
      "type": "string"
    }
  },
  "resources": [
    {
      "apiVersion": "2014-09-01",
      "type": "Microsoft.NotificationHubs/namespaces",
      "name": "[parameters('sbName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "namespaceType": "NotificationHub"
      }
    }
  ]
}

 

Avec ces deux templates, il est possible de déployer des services bus et des hubs de notifications dans ses propres groupes de ressources. Ci-dessous un exemple d’utilisation de ces deux templates dans un groupe de ressource nommé « armPlayground-rg » :

 

PortalAzure-SB HB

 

Happy coding Sourire

 

* En cliquant sur ce lien, vous pouvez directement déployer le Template lié !

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus