Bagikan melalui


Mengaktifkan dead-lettering saat kedaluwarsa pesan untuk antrean dan langganan Azure Service Bus

Antrean dan langganan Azure Service Bus untuk topik menyediakan antrean sekunder, yang disebut dead-letter queue (DLQ). Antrean surat mati tidak perlu dibuat secara eksplisit dan tidak dapat dihapus atau dikelola secara independen dari entitas utama. Tujuan dari dead-letter queue adalah untuk menyimpan pesan yang tidak dapat dikirimkan ke penerima, atau pesan yang tidak dapat diproses. Untuk informasi selengkapnya, lihat Ringkasan antrean dead-letter Service Bus. Artikel ini memperlihatkan kepada Anda berbagai cara untuk mengaktifkan dead-lettering untuk antrean dan langganan Service Bus.

Menggunakan portal Azure

Saat membuat antrean atau langganan untuk topik di portal Microsoft Azure, pilih Aktifkan dead-lettering pada kedaluwarsa pesan seperti yang diperlihatkan dalam contoh berikut.

Membuat antrean dengan dead-lettering diaktifkan

Mengaktifkan dead-lettering pada saat pembuatan antrean

Membuat langganan dengan dead-lettering diaktifkan

Mengaktifkan dead-lettering pada saat pembuatan langganan

Memperbarui dead-lettering pada pengaturan kedaluwarsa pesan untuk antrean yang sudah ada

Pada halaman Ringkasan untuk antrean Service Bus Anda, pilih nilai saat ini untuk Dead-lettering pada pengaturan kedaluwarsa pesan. Dalam contoh berikut, nilai saat ini adalah Dinonaktifkan. Anda dapat mengaktifkan atau menonaktifkan dead lettering saat kedaluwarsa pesan di jendela popup.

Aktifkan dead-lettering pada saat kedaluwarsa pesan untuk antrean yang sudah ada

Memperbarui dead-lettering pada pengaturan kedaluwarsa pesan untuk langganan yang sudah ada

Pada halaman Ringkasan untuk langganan Service Bus Anda, pilih nilai saat ini untuk Dead-lettering pada kedaluwarsa pesan. Dalam contoh berikut, nilai saat ini adalah Dinonaktifkan. Anda dapat mengaktifkan atau menonaktifkan dead lettering saat kedaluwarsa pesan di jendela popup.

Aktifkan dead-lettering pada saat kedaluwarsa pesan untuk langganan yang sudah ada

Menggunakan Azure CLI

Untuk membuat antrean dengan dead-lettering pada kedaluwarsa pesan diaktifkan, gunakan perintah az servicebus queue create dengan --enable-dead-lettering-on-message-expiration diatur ke true.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-dead-lettering-on-message-expiration true

Untuk mengaktifkan dead-lettering pada pengaturan kedaluwarsa pesan untuk antrean yang ada, gunakan perintah az servicebus queue update dengan --enable-dead-lettering-on-message-expiration diatur ke true.

az servicebus queue update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-dead-lettering-on-message-expiration true

Untuk membuat langganan ke topik dengan dead-lettering pada kedaluwarsa pesan diaktifkan, gunakan perintah az servicebus topic subscription create dengan --enable-dead-lettering-on-message-expiration diatur ke true.

az servicebus topic subscription create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-dead-lettering-on-message-expiration true

Untuk mengaktifkan dead-letter pada pengaturan kedaluwarsa pesan untuk langganan ke sebuah topik, gunakan perintah az servicebus topic subscription update dengan --enable-dead-lettering-on-message-expiration diatur ke true.

az servicebus topic subscription update \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --topic-name mytopic \
    --name mysubscription \
    --enable-dead-lettering-on-message-expiration true

Catatan

Jika Anda menentukan antrean atau topik dengan menggunakan parameter , Bus Layanan secara otomatis meneruskan pesan surat mati ke antrean atau topik tersebut--forward-dead-lettered-messages-to. Berikut adalah contohnya: az servicebus queue create --resource-group mysbusrg --namespace-name mysbusns --name myqueue --enable-dead-lettering-on-message-expiration true --forward-dead-lettered-messages-to myqueue2.

Menggunakan Azure PowerShell

Untuk membuat antrean dengan dead-lettering pada kedaluwarsa pesan diaktifkan, gunakan perintah New-AzServiceBusQueue dengan -DeadLetteringOnMessageExpiration diatur ke $True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -DeadLetteringOnMessageExpiration $True

Untuk mengaktifkan dead-letter pada pengaturan kedaluwarsa pesan untuk antrean yang ada, gunakan perintah Set-AzServiceBusQueue sebagaimana ditunjukkan pada contoh berikut.

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

$queue.DeadLetteringOnMessageExpiration=$True

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

Untuk membuat langganan untuk topik dengan dead-lettering pada kedaluwarsa pesan diaktifkan, gunakan perintah New-AzServiceBusSubscription dengan -DeadLetteringOnMessageExpiration diatur ke $True.

New-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysubscription `
    -DeadLetteringOnMessageExpiration $True

Untuk mengaktifkan dead-lettering pada pengaturan kedaluwarsa pesan untuk langganan yang sudah ada, lihat contoh berikut ini.

$subscription=Get-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -TopicName mytopic `
    -SubscriptionName mysub

$subscription.DeadLetteringOnMessageExpiration=$True

Set-AzServiceBusSubscription -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -SubscriptionName mysub `
    -SubscriptionObj $subscription 

Catatan

Jika Anda menentukan antrean atau topik dengan menggunakan parameter , Event Grid secara otomatis meneruskan pesan surat mati ke antrean atau topik tersebut -ForwardDeadLetteredMessagesTo .

Menggunakan templat Azure Resource Manager

Untuk membuat antrean dengan dead-letter pada kedaluwarsa pesan diaktifkan, atur deadLetteringOnMessageExpiration di bagian properti antrean ke true. Untuk informasi selengkapnya, lihat templat referensi Microsoft.ServiceBus namespaces/queues.

{
  "$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": {
            "deadLetteringOnMessageExpiration": true
          }
        }
      ]
    }
  ]
}

Untuk membuat langganan untuk sebuah topik dengan dead-lettering pada kedaluwarsa pesan diaktifkan, atur deadLetteringOnMessageExpiration di bagian properti antrean ke true. Untuk informasi selengkapnya, lihat referensi templat namespaces/topik/langganan 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"
      }
    },
    "serviceBusSubscriptionName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Subscription"
      }
    },
    "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": {
            "maxSizeInMegabytes": 1024
          },
          "resources": [
            {
              "apiVersion": "2017-04-01",
              "name": "[parameters('serviceBusSubscriptionName')]",
              "type": "Subscriptions",
              "dependsOn": [
                "[parameters('serviceBusTopicName')]"
              ],
              "properties": {
                "deadLetteringOnMessageExpiration": true
              }
            }
          ]
        }
      ]
    }
  ]
}

Catatan

Jika Anda menentukan antrean atau topik untuk properti , Event Grid secara otomatis meneruskan pesan surat mati ke antrean atau topik tersebut forwardDeadLetteredMessagesTo .

Langkah berikutnya

Cobalah sampel dalam bahasa pilihan Anda untuk menjelajahi fitur Azure Service Bus.

Temukan sampel untuk pustaka klien .NET dan Java yang lebih lama:

Pada 30 September 2026, kami akan menghentikan pustaka Azure Bus Layanan SDK WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus, dan com.microsoft.azure.servicebus, yang tidak sesuai dengan panduan Azure SDK. Kami juga akan mengakhiri dukungan protokol SBMP, sehingga Anda tidak akan lagi dapat menggunakan protokol ini setelah 30 September 2026. Migrasikan ke pustaka Azure SDK terbaru, yang menawarkan pembaruan keamanan penting dan kemampuan yang ditingkatkan, sebelum tanggal tersebut.

Meskipun pustaka lama masih dapat digunakan melebihi 30 September 2026, pustaka tersebut tidak akan lagi menerima dukungan dan pembaruan resmi dari Microsoft. Untuk informasi selengkapnya, lihat pengumuman penghentian dukungan.