Condividi tramite


Rilocare Hub eventi di Azure in un'altra area

Questo articolo illustra come copiare uno spazio dei nomi e le impostazioni di configurazione di Hub eventi in un'altra area.

Se nel gruppo di risorse di Azure sono presenti altre risorse che contengono lo spazio dei nomi di Hub eventi, è possibile esportare il modello a livello di gruppo di risorse in modo che tutte le risorse correlate possano essere spostate nella nuova area in un unico passaggio. Per informazioni su come esportare un gruppo di risorse nel modello, vedere Spostare le risorse tra aree (dal gruppo di risorse).

Prerequisiti

  • Assicurarsi che i servizi e le funzionalità usati dall'account siano supportati nell'area di destinazione.

  • Se la funzionalità di acquisizione è abilitata per gli hub eventi nello spazio dei nomi, spostare gli account di Archiviazione di Azure o Azure Data Lake Store Gen 2 prima di spostare lo spazio dei nomi di Hub eventi. È anche possibile spostare il gruppo di risorse che contiene spazi dei nomi di Archiviazione e Hub eventi nell'altra area seguendo i passaggi simili a quelli descritti in questo articolo.

  • Se lo spazio dei nomi di Hub eventi si trova in un cluster di Hub eventi, spostare il cluster dedicato nell'area di destinazione prima di seguire i passaggi descritti in questo articolo. È anche possibile usare il modello di avvio rapido in GitHub per creare un cluster di Hub eventi. Nel modello rimuovere la parte dello spazio dei nomi del codice JSON per creare solo il cluster.

  • Identificare tutte le dipendenze delle risorse. A seconda della modalità di distribuzione di Hub eventi, i servizi seguenti potrebbero aver bisogno di essere distribuiti nell'area di destinazione:

  • Identificare tutte le risorse dipendenti. Hub eventi è un sistema di messaggistica che consente alle applicazioni di pubblicare e sottoscrivere messaggi. Valutare se l'applicazione nella destinazione richiede o meno il supporto della messaggistica per lo stesso set di servizi dipendenti che aveva nella destinazione di origine.

Tempo di inattività

Per comprendere i possibili tempi di inattività, vedere Cloud Adoption Framework per Azure: selezionare un metodo di rilocazione.

Considerazioni sugli endpoint di servizio

Gli endpoint servizio di rete virtuale per Hub eventi di Azure limitano l'accesso a una rete virtuale specifica. Gli endpoint possono inoltre limitare l'accesso a un elenco di intervalli di indirizzi IPv4 (protocollo IP versione 4). L'accesso viene negato a tutti gli utenti che si connettono a Hub eventi dall'esterno di tali origini. Se gli endpoint di servizio sono stati configurati nell'area di origine per la risorsa di Hub eventi, è necessario eseguire la stessa operazione nell'area di destinazione.

Per ricreare correttamente l'istanza di Hub eventi nell'area di destinazione, è necessario creare prima la rete virtuale e la subnet. Nel caso in cui lo spostamento di queste due risorse venga eseguito con lo strumento Spostamento risorse di Azure, gli endpoint di servizio non verranno configurati automaticamente. Di conseguenza, è necessario configurarli manualmente. L'operazione può essere eseguita tramite il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell.

Considerazioni sull'endpoint privato

Collegamento privato di Azure offre connettività privata da una rete virtuale alla piattaforma di Azure distribuita come servizio (PaaS), di proprietà del cliente o dei servizi partner Microsoft. Il collegamento privato semplifica l'architettura di rete e protegge la connessione tra gli endpoint in Azure eliminando l'esposizione dei dati alla rete Internet pubblica.

Per una ricreazione corretta di Hub eventi nell'area di destinazione, è necessario creare la rete virtuale e la subnet prima che si verifichi la ricreazione effettiva.

Preparazione

Per iniziare, esportare un modello di Resource Manager. Questo modello contiene impostazioni che descrivono lo spazio dei nomi di Hub eventi.

  1. Accedere al portale di Azure.

  2. Selezionare Tutte le risorse e quindi selezionare lo spazio dei nomi di Hub eventi.

  3. Nella pagina Spazio dei nomi di Hub eventi selezionare Esporta modello in Automazione nel menu a sinistra.

  4. Scegliere Scarica nella pagina Esporta modello.

    Screenshot che mostra dove scaricare il modello di Resource Manager

  5. Individuare il file .zip scaricato dal portale e decomprimere il file in una cartella di propria scelta.

    Questo file ZIP contiene i file .json che includono il modello e gli script per distribuire il modello.

Modificare il modello

Modificare il modello modificando il nome e l'area dello spazio dei nomi di Hub eventi.

  1. Selezionare Distribuzione modello.

  2. Nel portale di Azure selezionare Crea.

  3. Selezionare Creare un modello personalizzato nell'editor.

  4. Selezionare Carica file e quindi seguire le istruzioni per caricare il file template.json scaricato nell'ultima sezione.

  5. Nel file template.json assegnare un nome allo spazio dei nomi di Hub eventi impostando il valore predefinito del nome dello spazio dei nomi. In questo esempio il valore predefinito del nome dello spazio dei nomi di Hub eventi viene impostato su 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. Modificare la proprietà posizione nel file template.json nell'area di destinazione. In questo esempio l'area di destinazione viene impostata su centralus.

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

    Per ottenere i codici di posizione dell'area, vedere Località di Azure. Il codice per un'area è il nome dell'area senza spazi, Stati Uniti centrali = centralus.

  7. Rimuovere le risorse di tipo endpoint privato nel modello.

     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
    
     }
    
  8. Se è stato configurato un endpoint di servizio in Hub eventi, nella sezione networkrulesets in virtualNetworkRules aggiungere la regola per la subnet di destinazione. Assicurarsi che il flag ignoreMissingVnetServiceEndpoint_ sia impostato su False, in modo che l'IaC non distribuisca l'Hub eventi nel caso in cui l'endpoint del servizio non sia configurato nell'area di destinazione.

    _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. Selezionare Salva per salvare il modello.

Ripetere la distribuzione

  1. Nel portale di Azure selezionare Crea una risorsa.

  2. In Cerca nel Marketplace digitare distribuzione modelli e selezionare Distribuzione modelli (distribuzione con modelli personalizzati).

  3. Selezionare Creare un modello personalizzato nell'editor.

  4. Selezionare Carica file e quindi seguire le istruzioni per caricare il file template.json modificato nell'ultima sezione.

  5. Nella pagina Distribuzione personalizzata seguire questa procedura:

    1. Selezionare una sottoscrizione di Azure.
    2. Selezionare un gruppo di risorse esistente o crearne uno. Se lo spazio dei nomi di origine si trovava in un cluster di Hub eventi, selezionare il gruppo di risorse che contiene il cluster nell'area di destinazione.
    3. Selezionare la posizione o l'area di destinazione. Se è stato selezionato un gruppo di risorse esistente, questa impostazione è di sola lettura.
    4. Nella sezione IMPOSTAZIONI seguire questa procedura:
      1. Immettere il nuovo nome dello spazio dei nomi.

        Distribuire un modello di Resource Manager

      2. Se lo spazio dei nomi di origine si trovava in un cluster di Hub eventi, immettere i nomi di gruppo di risorse e cluster di Hub eventi come parte di ID esterno.

        /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
        
      3. Se Hub eventi nello spazio dei nomi usa un account di archiviazione per l'acquisizione degli eventi, specificare il nome del gruppo di risorse e l'account di archiviazione per il campo 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. Selezionare Rivedi e crea nella parte inferiore della pagina.
    6. Nella pagina Rivedi e crea controllare le impostazioni e selezionare Crea.
  6. È necessario riconfigurare le impostazioni di configurazione di rete (endpoint privati) nei nuovi Hub eventi.

Eliminare o pulire

Dopo la distribuzione, se si vuole ricominciare, è possibile eliminare lo spazio dei nomi di Hub eventi di destinazionee ripetere i passaggi descritti nelle sezioni Preparare e Spostare di questo articolo.

Per eseguire il commit delle modifiche e completare lo spostamento di uno spazio dei nomi di Hub eventi, eliminare lo spazio dei nomi di Hub eventi nell'area originale. Assicurarsi di aver elaborato tutti gli eventi nello spazio dei nomi prima di eliminarlo.

Per eliminare uno spazio dei nomi di Hub eventi (origine o destinazione) usando il portale di Azure:

  1. Nella finestra di ricerca nella parte superiore del portale di Azure digitare Hub eventi e selezionare Hub eventi dai risultati della ricerca. Gli spazi dei nomi di Hub eventi vengono visualizzati in un elenco.

  2. Selezionare lo spazio dei nomi di destinazione da eliminare e selezionare Elimina sulla barra degli strumenti.

    Screenshot che mostra il pulsante Elimina spazio dei nomi

  3. Nella pagina Elimina spazio dei nomi confermare l'eliminazione digitando il nome dello spazio dei nomi e quindi selezionare Elimina.

Passaggi successivi

In questa procedura si è appreso come spostare uno spazio dei nomi di Hub eventi da un'area a un'altra.

Per istruzioni sullo spostamento di un cluster di Hub eventi da un'area a un'altra, vedere l'articolo Rilocare Hub eventi in un'altra area.

Per altre informazioni sullo spostamento di risorse tra aree e sul ripristino di emergenza in Azure, vedere: