Relocaliser Azure Event Hubs dans une autre région

Cet article explique comment copier un espace de noms Event Hubs et des paramètres de configuration dans une autre région.

Si vous avez d’autres ressources dans le groupe de ressources Azure qui contient l’espace de noms Event Hubs, vous pouvez exporter le modèle au niveau du groupe de ressources afin que toutes les ressources associées puissent être déplacées vers la nouvelle région en une seule étape. Pour savoir comment exporter un groupe de ressources vers le modèle, consultez Déplacer des ressources entre régions (à partir d’un groupe de ressources).

Prérequis

  • Vérifiez que les services et fonctionnalités utilisés par votre compte sont pris en charge dans la région cible.

  • Si vous avez activé la fonctionnalité de capture pour les hubs d’événements dans l’espace de noms, déplacez les comptes de Stockage Azure ou Azure Data Lake Store Gen 2 avant de déplacer l’espace de noms Event Hubs. Vous pouvez également déplacer le groupe de ressources contenant à la fois les espaces de noms Storage et Event Hubs vers l’autre région en suivant les étapes similaires à celles décrites dans cet article.

  • Si l’espace de noms Event Hubs se trouve dans un cluster Event Hubs, déplacez le cluster dédié vers la région cible avant de suivre les étapes de cet article. Vous pouvez également utiliser le modèle de démarrage rapide sur GitHub pour créer un cluster Event Hubs. Dans le modèle, supprimez la partie Espace de noms du JSON pour créer uniquement le cluster.

  • Identifiez toutes les dépendances des ressources. Selon la façon dont vous avez déployé Event Hubs, les services suivants peuvent devoir être déployés dans la région cible :

  • Identifiez toutes les ressources dépendantes. Event Hubs est un système de messagerie qui permet aux applications de publier des messages et de s’y abonner. Déterminez si votre application au niveau de la cible nécessite la prise en charge de la messagerie pour le même ensemble de services dépendants qu’au niveau de la cible source.

Temps d’arrêt

Pour comprendre les temps d’arrêt possibles impliqués, consultez Cloud Adoption Framework pour Azure : sélectionnez une méthode de relocalisation.

Considérations sur les points de terminaison de service

Les points de terminaison de service de réseau virtuel pour Azure Event Hubs limitent l’accès à un réseau virtuel spécifié. Les points de terminaison limitent également l’accès à une liste de plages d’adresses IPv4 (Internet Protocol version 4). L’accès est refusé à tout utilisateur se connectant au Event Hubs en dehors de ces sources. Si les points de terminaison de service ont été configurés dans la région source de la ressource Event Hubs, la même chose doit être effectuée dans la région cible.

Pour recréer le Event Hubs dans la région cible, le VNet et le sous-réseau doivent être créés au préalable. Si le déplacement de ces deux ressources est effectué avec l’outil Azure Resource Mover, les points de terminaison de service ne sont pas configurés automatiquement. Par conséquent, ils doivent être configurés manuellement, ce qui peut être effectué dans le portail Azure, Azure CLI ou Azure PowerShell.

Considérations sur les points de terminaison privés

Azure Private Link fournit une connectivité privée entre un réseau virtuel et la plateforme Azure en tant que service (PaaS), appartenant à un client ou à des services partenaires Microsoft. Private Link simplifie l’architecture réseau et sécurise la connexion entre les points de terminaison dans Azure en éliminant l’exposition des données sur l’Internet public.

Pour recréer le Event Hubs dans la région cible, le VNet et le sous-réseau doivent être créés avant la recréation effective.

Préparer

Pour commencer, exportez un modèle Resource Manager. Ce modèle contient des paramètres qui décrivent votre espace de noms Event Hubs.

  1. Connectez-vous au portail Azure.

  2. Choisissez Toutes les ressources, puis sélectionnez votre espace de noms Event Hubs.

  3. Dans la page Espace de noms Event Hubs, sélectionnez Exporter un modèle sous Automation dans le menu de gauche.

  4. Choisissez Télécharger dans le panneau Exporter le modèle.

    Capture d’écran montrant où télécharger le modèle Resource Manager

  5. Localisez le fichier .zip que vous avez téléchargé à partir du portail, puis décompressez-le dans le dossier de votre choix.

    Ce fichier zip contient les fichiers .json qui incluent le modèle et des scripts pour le déployer.

Modifier le modèle

Modifiez le modèle en modifiant le nom et la région de l’espace de noms Event Hubs.

  1. Sélectionnez Déploiement de modèle.

  2. Dans le Portail Azure, sélectionnez Créer.

  3. Sélectionnez Générer votre propre modèle dans l’éditeur.

  4. Sélectionnez Charger le fichier, puis suivez les instructions pour charger le fichier template.json que vous avez téléchargé dans la section précédente.

  5. Dans le fichier template.json, nommez l’espace de noms Event Hubs en définissant la valeur par défaut du nom de l’espace de noms. Cet exemple montre comment définir la valeur par défaut du nom de l’espace de noms Event Hubs sur namespace-name.

     "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
     "contentVersion": "1.0.0.0",
     "parameters": {
         "namespaces_name": {
             "defaultValue": "namespace-name",
             "type": "String"
         },
     },
    
  6. Remplacez la propriété location dans le fichier template.json par la région cible. Cet exemple définit centralus comme région cible.

    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "apiVersion": "2023-07-01",
            "name": "[parameters('vaults_name')]",
            "location": "centralus",
    
        },
    
    ]
    
    
     "resources": [
     {
         "type": "Microsoft.EventHub/namespaces",
         "apiVersion": "2023-01-01-preview",
         "name": "[parameters('namespaces_name')]",
         "location": "centralus",
    
      },
     {
         "type": "Microsoft.EventHub/namespaces/authorizationrules",
         "apiVersion": "2023-01-01-preview",
         "name": "[concat(parameters('namespaces_name'), '/RootManageSharedAccessKey')]",
         "location": "centralus",
         "dependsOn": [
             "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_name'))]"
         ],
         "properties": {
             "rights": [
                 "Listen",
                 "Manage",
                 "Send"
             ]
         }
     },
     {
         "type": "Microsoft.EventHub/namespaces/networkrulesets",
         "apiVersion": "2023-01-01-preview",
         "name": "[concat(parameters('namespaces_name'), '/default')]",
         "location": "centralus",
         "dependsOn": [
             "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_name'))]"
         ],
         "properties": {
             "publicNetworkAccess": "Enabled",
             "defaultAction": "Deny",
             "virtualNetworkRules": [
                 {
                     "subnet": {
                         "id": "[concat(parameters('virtualNetworks_vnet_akv_externalid'), '/subnets/default')]"
                     },
                     "ignoreMissingVnetServiceEndpoint": false
                 }
             ],
             "ipRules": [],
             "trustedServiceAccessEnabled": false
         }
     },
     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
         "apiVersion": "2023-01-01-preview",
         "name": "[concat(parameters('namespaces_peterheesbus_name'), '/81263915-15d5-4f14-8d65-25866d745a66')]",
         "location": "centralus",
         "dependsOn": [
             "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_peterheesbus_name'))]"
         ],
         "properties": {
             "provisioningState": "Succeeded",
             "privateEndpoint": {
                 "id": "[parameters('privateEndpoints_pvs_eventhub_externalid')]"
             },
             "privateLinkServiceConnectionState": {
                 "status": "Approved",
                 "description": "Auto-Approved"
             }
         }
     }
    

    Pour obtenir les codes d’emplacement des régions, consultez Emplacements Azure. Le code d’une région est le nom de la région sans espace, USA Centre = centralus.

  7. Supprimez les ressources de type point de terminaison privé dans le modèle.

     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
    
     }
    
  8. Si vous avez configuré un point de terminaison de service dans votre Event Hubs, dans la section networkrulesets, sous virtualNetworkRules, ajoutez la règle pour le sous-réseau cible. Vérifiez que l’indicateur ignoreMissingVnetServiceEndpoint_ est défini sur False, afin que l’IaC ne parvienne pas à déployer Event Hubs si le point de terminaison de service n’est pas configuré dans la région cible.

    _parameter.json_

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
    
        "target_vnet_externalid": {
          "value": "virtualnetwork-externalid"
        },
        "target_subnet_name": {
          "value": "subnet-name"
        }
      }
    }
    

    _template.json

    {
        "type": "Microsoft.EventHub/namespaces/networkrulesets",
        "apiVersion": "2023-01-01-preview",
        "name": "[concat(parameters('namespaces_name'), '/default')]",
        "location": "centralus",
        "dependsOn": [
            "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_name'))]"
        ],
        "properties": {
            "publicNetworkAccess": "Enabled",
            "defaultAction": "Deny",
            "virtualNetworkRules": [
                {
                    "subnet": {
                        "id": "[concat(parameters('target_vnet_externalid), concat('/subnets/', parameters('target_subnet_name')]"
                    },
                    "ignoreMissingVnetServiceEndpoint": false
                }
            ],
            "ipRules": [],
            "trustedServiceAccessEnabled": false
        }
    },
    
    
  9. Sélectionnez Enregistrer pour enregistrer le modèle.

Redeploy

  1. Dans le portail Azure, sélectionnez Créer une ressource.

  2. Dans Rechercher dans la Place de marché, tapez déploiement de modèle, puis sélectionnez Déploiement de modèle (déployer à l’aide de modèles personnalisés) .

  3. Sélectionnez Générer votre propre modèle dans l’éditeur.

  4. Sélectionnez Charger le fichier, puis suivez les instructions pour charger le fichier template.json que vous avez modifié dans la dernière section.

  5. Dans la page Déploiement personnalisé, procédez comme suit :

    1. Sélectionnez un abonnement Azure.
    2. Sélectionnez un groupe de ressources ou créez-en un. Si l’espace de noms source figurait dans un cluster Event Hubs, sélectionnez le groupe de ressources contenant le cluster dans la région cible.
    3. Sélectionnez l’emplacement ou la région cible. Si vous avez sélectionné un groupe de ressources existant, ce paramètre est en lecture seule.
    4. Dans la section SETTINGS , procédez comme suit :
      1. Entrez le nouveau nom de l’espace de noms.

        Déployer le modèle Azure Resource Manager

      2. Si votre espace de noms source figurait dans un cluster Event Hubs, entrez les noms du groupe de ressources et du cluster Event Hubs dans l’ID externe.

        /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
        
      3. Si Event Hubs dans votre espace de noms utilise un compte de stockage pour capturer des événements, spécifiez le nom du groupe de ressources et le compte de stockage pour le champ StorageAccounts_<original storage account name>_external.

        /subscriptions/0000000000-0000-0000-0000-0000000000000/resourceGroups/<STORAGE'S RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>
        
    5. Au bas de la page, sélectionnez Examiner et créer.
    6. Dans la page Vérifier + créer, passez en revue les paramètres, puis sélectionnez Créer.
  6. Les paramètres de configuration réseau (points de terminaison privés) doivent être re-configurés dans les nouveaux Event Hubs.

Ignorer ou nettoyer

Après le déploiement, si vous souhaitez recommencer, vous pouvez supprimer l’espace de noms Event Hubs cible et répéter les étapes décrites dans les sections Préparer et Déplacer de cet article.

Pour valider les modifications et terminer le déplacement d’un espace de noms Event Hubs, supprimez l’espace de noms Event Hubs dans la région d’origine. Assurez-vous que vous avez traité tous les événements dans l’espace de noms avant de supprimer cet espace de noms.

Pour supprimer un espace de noms Event Hubs (source ou cible) à l’aide du portail Azure :

  1. Dans la fenêtre de recherche en haut du portail Azure, tapez Event Hubs, puis sélectionnez Event hubs dans les résultats de la recherche. Les espaces de noms Event Hubs apparaissent dans une liste.

  2. Sélectionnez l’espace de noms cible à supprimer, puis choisissez Supprimer dans la barre d’outils.

    Capture d’écran montrant le bouton Supprimer l’espace de noms

  3. Sur la page supprimer un espace de noms, confirmez la suppression en tapant le nom de l’espace de noms, puis sélectionnez Supprimer.

Étapes suivantes

Dans ce guide pratique, vous avez appris à déplacer un espace de noms Event Hubs d’une région à une autre.

Consultez l’article Relocaliser Event Hubs dans une autre région pour obtenir des instructions sur le déplacement d’un cluster Event Hubs d’une région à une autre région.

Pour en savoir plus sur le déplacement de ressources entre régions et la reprise d’activité après sinistre dans Azure, consultez :