Aracılığıyla paylaş


Teslim edilemeyen ileti konumu ve yeniden deneme ilkesi ayarlama

Olay aboneliği oluştururken, olay teslimi ayarlarını özelleştirebilirsiniz. Bu makalede, bir teslim edilemeyen harf konumu ayarlama ve yeniden deneme ayarlarını özelleştirme işlemi gösterilmektedir. Bu özellikler hakkında bilgi için bkz . Event Grid ileti teslimi ve yeniden deneme.

Not

İleti teslimi, yeniden denemeler ve teslim edilmeme hakkında bilgi edinmek için event grid ileti teslimi ve yeniden deneme kavramsal makalesine bakın.

Teslim edilemeyen harf konumunu ayarlama

Teslim edilemeyen bir konum ayarlamak için uç noktaya teslim edilemeyen olayları tutmak için bir depolama hesabına ihtiyacınız vardır. Örnekler, mevcut bir depolama hesabının kaynak kimliğini alır. Bu kişiler, bu depolama hesabında teslim edilemeyen harf uç noktası için kapsayıcı kullanan bir olay aboneliği oluşturur.

Bu makaledeki komutları çalıştırmadan önce depolama alanında bir depolama hesabı ve blob kapsayıcısı oluşturmanız gerekir. Event Grid bu kapsayıcıda bloblar oluşturur. Blobların adları, event grid aboneliğinin adını ve büyük harfle birlikte tüm harfleri içerir. Örneğin, aboneliğin adı iseMy-Blob-Subscription, geçersiz harf bloblarının adları ()myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json içerir MY-BLOB-SUBSCRIPTION . Bu davranış, Azure hizmetleri arasındaki durum işleme farklılıklarına karşı koruma sağlamaktır. Örnekte sıfırdan .../2019/8/8/5/... doldurulmayan tarih ve saati (UTC) temsil eder: .../YYYY/MM/DD/HH/....'. Oluşturulan ölü harf blobları bir dizide bir veya daha fazla olay içerir. Bu, ölü harfleri işlerken dikkate alınması gereken önemli bir davranıştır.

Azure portal

Olay aboneliği oluştururken, aşağıdaki görüntüde gösterildiği gibi Ek özellikler sekmesinde geçersiz harfle göndermeyi etkinleştirebilirsiniz. Özelliği etkinleştirdikten sonra, teslim edilemeyen olayları barındıran blob kapsayıcısını ve blob depolamaya sahip Azure aboneliğini belirtin.

İsteğe bağlı olarak, sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği, teslim edilemeyen ileti için etkinleştirebilirsiniz. Yönetilen kimlik, depolama alanına olay yazmaya izin veren rol tabanlı erişim denetimi (RBAC) rolünün bir üyesi olmalıdır.

Olay aboneliğinin teslim edilemeyen yapılandırmasını gösteren ekran görüntüsü.

Ayrıca, teslim edilemeyen postayı etkinleştirebilir ve mevcut bir olay aboneliğinin ayarlarını yapılandırabilirsiniz. Olay aboneliğinizin Olay Aboneliği sayfasında Ek özellikler sekmesine geçerek aşağıdaki görüntüde gösterildiği gibi teslim edilemeyen harf ayarlarını görebilirsiniz.

Mevcut olay aboneliğinin teslim edilemeyen yapılandırmasını gösteren ekran görüntüsü.

Azure CLI

containername=testcontainer

topicid=$(az eventgrid topic show --name demoTopic -g gridResourceGroup --query id --output tsv)
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name <event_subscription_name> \
  --endpoint <endpoint_URL> \
  --deadletter-endpoint $storageid/blobServices/default/containers/$containername

Teslim edilmeyi kapatmak için komutunu yeniden çalıştırarak olay aboneliğini oluşturun, ancak için deadletter-endpointbir değer sağlamayın. Olay aboneliğini silmeniz gerekmez.

Not

Yerel makinenizde Azure CLI kullanıyorsanız Azure CLI sürüm 2.0.56 veya üzerini kullanın. Azure CLI'nın en son sürümünü yükleme yönergeleri için bkz . Azure CLI'yi yükleme.

PowerShell

$containername = "testcontainer"

$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id
$storageid = (Get-AzStorageAccount -ResourceGroupName gridResourceGroup -Name demostorage).Id

New-AzEventGridSubscription `
  -ResourceId $topicid `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint <endpoint_URL> `
  -DeadLetterEndpoint "$storageid/blobServices/default/containers/$containername"

Teslim edilmeyi kapatmak için komutunu yeniden çalıştırarak olay aboneliğini oluşturun, ancak için DeadLetterEndpointbir değer sağlamayın. Olay aboneliğini silmeniz gerekmez.

Not

Yerel makinenizde Azure PowerShell kullanıyorsanız Azure PowerShell sürüm 1.1.0 veya üzerini kullanın. Azure indirmelerinden en son Azure PowerShell'i indirin ve yükleyin.

Yeniden deneme ilkesini ayarlama

Event Grid aboneliği oluştururken Event Grid'in olayı ne kadar süreyle teslim etmeye çalışabileceğine ilişkin değerler ayarlayabilirsiniz. Event Grid varsayılan olarak 24 saat (1.440 dakika) veya 30 kez dener. Event Grid aboneliğiniz için bu değerlerden birini ayarlayabilirsiniz. Olay yaşam süresi değeri 1 ile 1440 arası bir tamsayı olmalıdır. En fazla yeniden deneme değeri 1 ile 30 arasındaki bir tamsayı olmalıdır.

Yeniden deneme zamanlamasını yapılandıramazsınız.

Azure portal

Olay aboneliği oluştururken Ek özellikler sekmesinde yeniden deneme ilkesi ayarlarını yapılandırabilirsiniz.

Olay aboneliğinin yeniden deneme ilkesi yapılandırmasını gösteren ekran görüntüsü.

Ayrıca mevcut bir olay aboneliği için yeniden deneme ilkesi ayarlarını yapılandırabilirsiniz. Olay aboneliğinizin Olay Aboneliği sayfasında, aşağıdaki görüntüde gösterildiği gibi yeniden deneme ilkesi ayarlarını görmek için Ek özellikler sekmesine geçin.

Mevcut bir olay aboneliğinin yeniden deneme ilkesi yapılandırmasını gösteren ekran görüntüsü.

Azure CLI

Etkinlik yaşam süresini 1440 dakikadan farklı bir değere ayarlamak için şunu kullanın:

az eventgrid event-subscription create \
  -g gridResourceGroup \
  --topic-name <topic_name> \
  --name <event_subscription_name> \
  --endpoint <endpoint_URL> \
  --event-ttl 720

En fazla yeniden deneme sayısını 30 dışında bir değere ayarlamak için şunu kullanın:

az eventgrid event-subscription create \
  -g gridResourceGroup \
  --topic-name <topic_name> \
  --name <event_subscription_name> \
  --endpoint <endpoint_URL> \
  --max-delivery-attempts 18

Not

hem max-deliver-attemptshem de event-ttl değerini ayarlarsanız Event Grid, olay tesliminin ne zaman durdurulacağını belirlemek için ilk kullanım süresini kullanır. Örneğin, 30 dakikayı yaşam süresi (TTL) ve en fazla 5 teslimat denemesi olarak ayarlarsanız. Bir olay 30 dakika sonra teslim edilmediğinde (veya) beş denemeden sonra teslim edilmediğinde (hangisi önce gerçekleşirse), olay geçersiz olarak yazılır. Üstel yeniden deneme zamanlamasına göre en fazla teslim denemesini 10 olarak ayarlarsanız, 30 dakika öncesinde en fazla altı teslim denemesi sayısı TTL'ye ulaşılır, bu nedenle maksimum deneme sayısını 10 olarak ayarlamak bu durumda hiçbir etkisi olmaz ve olaylar 30 dakika sonra teslim edilemez.

PowerShell

Etkinlik yaşam süresini 1440 dakikadan farklı bir değere ayarlamak için şunu kullanın:

$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id

New-AzEventGridSubscription `
  -ResourceId $topicid `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint <endpoint_URL> `
  -EventTtl 720

En fazla yeniden deneme sayısını 30 dışında bir değere ayarlamak için şunu kullanın:

$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id

New-AzEventGridSubscription `
  -ResourceId $topicid `
  -EventSubscriptionName <event_subscription_name> `
  -Endpoint <endpoint_URL> `
  -MaxDeliveryAttempt 18

Not

hem max-deliver-attemptshem de event-ttl değerini ayarlarsanız Event Grid, olay tesliminin ne zaman durdurulacağını belirlemek için ilk kullanım süresini kullanır. Örneğin, 30 dakikayı yaşam süresi (TTL) ve en fazla 5 teslimat denemesi olarak ayarlarsanız. Bir olay 30 dakika sonra teslim edilmediğinde (veya) beş denemeden sonra teslim edilmediğinde (hangisi önce gerçekleşirse), olay geçersiz olarak yazılır. Üstel yeniden deneme zamanlamasına göre en fazla teslim denemesini 10 olarak ayarlarsanız, 30 dakika öncesinde en fazla altı teslim denemesi sayısı TTL'ye ulaşılır, bu nedenle maksimum deneme sayısını 10 olarak ayarlamak bu durumda hiçbir etkisi olmaz ve olaylar 30 dakika sonra teslim edilemez.

  • Ölü harf olaylarını işlemek için Azure İşlevi uygulaması kullanan örnek bir uygulama için bkz . .NET için Azure Event Grid Ölü Harf Örnekleri.
  • Olay teslimi ve yeniden denemeleri hakkında bilgi için Event Grid ileti teslimi ve yeniden deneyin.