Condividi tramite


Abilitare il rilevamento di messaggi duplicati per una coda di bus di servizio di Azure o un argomento

Quando si abilita il rilevamento dei duplicati per una coda o un argomento, bus di servizio di Azure mantiene una cronologia di tutti i messaggi inviati alla coda o all'argomento per un periodo di tempo configurato. Durante tale intervallo, la coda o l'argomento non archivierà messaggi duplicati. L'abilitazione di questa proprietà garantisce esattamente una volta il recapito in un intervallo di tempo definito dall'utente. Per altre informazioni, vedere Rilevamento duplicati. Questo articolo illustra diversi modi per abilitare il rilevamento di messaggi duplicati per una coda bus di servizio o un argomento.

Nota

  • Il livello di base di bus di servizio non supporta il rilevamento dei duplicati. I livelli Standard e Premium supportano il rilevamento dei duplicati. Per le differenze tra questi livelli, vedere Prezzi del bus di servizio.
  • Non è possibile abilitare o disabilitare il rilevamento dei duplicati dopo la creazione della coda o dell'argomento. È possibile farlo solo al momento della creazione della coda o dell'argomento.

Con il portale di Azure

Quando si crea una coda nella portale di Azure, selezionare Abilita rilevamento duplicati, come illustrato nell'immagine seguente. È possibile configurare le dimensioni della finestra di rilevamento duplicati durante la creazione di una coda o di un argomento.

Enable duplicate detection at the time of the queue creation

Quando si crea un argomento nella portale di Azure, selezionare Abilita rilevamento duplicati, come illustrato nell'immagine seguente.

Enable duplicate detection at the time of the topic creation

È anche possibile configurare questa impostazione per una coda o un argomento esistente, se è stato abilitato il rilevamento dei duplicati al momento della creazione.

Aggiornare le dimensioni della finestra di rilevamento duplicati per una coda esistente o un argomento

Per modificare le dimensioni della finestra di rilevamento duplicati per una coda esistente o un argomento, nella pagina Panoramica selezionare Modifica per La finestra di rilevamento duplicati.

Coda

Set duplicate detection window size for a queue

Argomento

Set duplicate detection window size for a topic

Utilizzare l'interfaccia della riga di comando di Azure

Per creare una coda con rilevamento duplicato abilitato, usare il az servicebus queue create comando con --enable-duplicate-detection impostato su true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-duplicate-detection true \
    --duplicate-detection-history-time-window P1D

Per creare un argomento con rilevamento duplicati abilitato, usare il az servicebus topic create comando con --enable-duplicate-detection impostato su true.

az servicebus topic create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name mytopic \
    --enable-duplicate-detection true \
    --duplicate-detection-history-time-window P1D

Gli esempi precedenti impostano anche le dimensioni della finestra di rilevamento duplicati usando il --duplicate-detection-history-time-window parametro . Le dimensioni della finestra sono impostate su un giorno. Il valore predefinito è 10 minuti e il valore massimo consentito è sette giorni.

Per aggiornare una coda con una nuova dimensione della finestra di rilevamento, usare il az servicebus queue update comando con il --duplicate-detection-history-time-window parametro . In questo esempio le dimensioni della finestra vengono aggiornate a sette giorni.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --duplicate-detection-history-time-window P7D

Analogamente, per aggiornare un argomento con una nuova dimensione della finestra di rilevamento, usare il az servicebus topic update comando con il --duplicate-detection-history-time-window parametro . In questo esempio le dimensioni della finestra vengono aggiornate a sette giorni.

az servicebus topic update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --duplicate-detection-history-time-window P7D

Uso di Azure PowerShell

Per creare una coda con rilevamento duplicato abilitato, usare il New-AzServiceBusQueue comando con -RequiresDuplicateDetection impostato su $True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -RequiresDuplicateDetection $True `
    -DuplicateDetectionHistoryTimeWindow P1D

Per creare un argomento con rilevamento duplicati abilitato, usare il New-AzServiceBusTopic comando con -RequiresDuplicateDetection impostato su true.

New-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -RequiresDuplicateDetection $True
    -DuplicateDetectionHistoryTimeWindow P1D

Gli esempi precedenti impostano anche le dimensioni della finestra di rilevamento duplicati usando il -DuplicateDetectionHistoryTimeWindow parametro . Le dimensioni della finestra sono impostate su un giorno. Il valore predefinito è 10 minuti e il valore massimo consentito è sette giorni.

Per aggiornare una coda con una nuova dimensione della finestra di rilevamento, vedere l'esempio seguente. In questo esempio le dimensioni della finestra vengono aggiornate a sette giorni.

$queue=Get-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue 

$queue.DuplicateDetectionHistoryTimeWindow='P7D'

Set-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -QueueObj $queue

Per aggiornare un argomento con una nuova dimensione della finestra di rilevamento, vedere l'esempio seguente. In questo esempio le dimensioni della finestra vengono aggiornate a sette giorni.

$topic=Get-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic

$topic.DuplicateDetectionHistoryTimeWindow='P7D'

Set-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -TopicObj $topic

Uso del modello di Azure Resource Manager

Per creare una coda con rilevamento duplicato abilitato, impostare su requiresDuplicateDetection true nella sezione delle proprietà della coda. Per altre informazioni, vedere Informazioni di riferimento sui modelli di spazi dei nomi/code Microsoft.ServiceBus. Specificare un valore per la duplicateDetectionHistoryTimeWindow proprietà per impostare le dimensioni della finestra di rilevamento duplicati. Nell'esempio seguente viene impostato su un giorno.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serviceBusNamespaceName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Service Bus namespace"
      }
    },
    "serviceBusQueueName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Queue"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ServiceBus/namespaces",
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('serviceBusNamespaceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard"
      },
      "properties": {},
      "resources": [
        {
          "type": "Queues",
          "apiVersion": "2017-04-01",
          "name": "[parameters('serviceBusQueueName')]",
          "dependsOn": [
            "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
          ],
          "properties": {
            "requiresDuplicateDetection": true,
            "duplicateDetectionHistoryTimeWindow": "P1D"
          }
        }
      ]
    }
  ]
}

Per creare un argomento con rilevamento duplicato abilitato, impostare su requiresDuplicateDetection true nella sezione delle proprietà dell'argomento. Per altre informazioni, vedere Informazioni di riferimento sui modelli di spazi dei nomi/argomenti Microsoft.ServiceBus.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "service_BusNamespace_Name": {
      "type": "string",
      "metadata": {
        "description": "Name of the Service Bus namespace"
      }
    },
    "serviceBusTopicName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Topic"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('service_BusNamespace_Name')]",
      "type": "Microsoft.ServiceBus/namespaces",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard"
      },
      "properties": {},
      "resources": [
        {
          "apiVersion": "2017-04-01",
          "name": "[parameters('serviceBusTopicName')]",
          "type": "topics",
          "dependsOn": [
            "[resourceId('Microsoft.ServiceBus/namespaces/', parameters('service_BusNamespace_Name'))]"
          ],
          "properties": {
            "requiresDuplicateDetection": true,
            "duplicateDetectionHistoryTimeWindow": "P1D"
          }
        }
      ]
    }
  ]
}

Passaggi successivi

Provare gli esempi nel linguaggio preferito per esplorare bus di servizio di Azure funzionalità.

Trovare esempi per le librerie client .NET e Java precedenti di seguito:

Il 30 settembre 2026 verranno ritirati le librerie bus di servizio di Azure SDK WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Il supporto del protocollo SBMP verrà terminato, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.

Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio di ritiro del supporto.