Teslim edilemeyen ileti konumu ve yeniden deneme ilkesi ayarlama

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

Not

İleti teslimi, yeniden denemeler ve teslim edilmeyenler hakkında bilgi edinmek için kavramsal makaleye bakın: Event Grid ileti teslimi ve yeniden deneme.

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.

Not

  • Bu makaledeki komutları çalıştırmadan önce depolama alanında bir depolama hesabı ve blob kapsayıcısı oluşturun.
  • Event Grid hizmeti bu kapsayıcıda bloblar oluşturur. Blobların adları, tüm harfleri büyük harfle birlikte Event Grid aboneliğinin adına sahip olur. Örneğin, aboneliğin adı iseMy-Blob-Subscription, geçersiz harf bloblarının adlarında (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json olur MY-BLOB-SUBSCRIPTION ). Bu davranış, Azure hizmetleri arasındaki durum işleme farklılıklarına karşı koruma sağlamaktır.
  • Yukarıdaki örnekte .../2019/8/8/5/... sıfır 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 harfe çevirmeyi etkinleştirebilirsiniz. Özelliği etkinleştirdikten sonra, teslim edilemeyen olayları barındıracak 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 geçersiz harfe çevirme için etkinleştirebilirsiniz. Yönetilen kimlik, depolama alanına olay yazmaya izin veren rol tabanlı erişim denetimi (RBAC) rolünün üyesi olmalıdır.

Olay aboneliğinin geçersiz harf yapılandırmasını gösteren ekran görüntüsü.

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

Mevcut olay aboneliğinin geçersiz harf 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 edilemeyen harfi 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 edilemeyen harfi 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 Poweshell kullanıyorsanız Azure PowerShell sürüm 1.1.0 veya üzerini kullanın. Azure indirmelerinden en son Azure PowerShell indirip yükleyin.

Yeniden deneme ilkesini ayarlama

Event Grid aboneliği oluştururken Event Grid'in olayı teslim etmeye çalışması gereken süreye ilişkin değerler ayarlayabilirsiniz. Varsayılan olarak, Event Grid 24 saat (1440 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 var olan 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

Olay 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 öğesini 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) 5 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 denemesi sayısını 10 olarak ayarlarsanız, 30 dakika TTL'ye ulaşılmadan önce en fazla 6 teslim denemesi gerçekleşir, bu nedenle maksimum deneme sayısını 10 olarak ayarlamak bu durumda herhangi bir etkisi olmaz ve olaylar 30 dakika sonra teslim edilemez.

PowerShell

Olay 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 öğesini 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) 5 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 denemesi sayısını 10 olarak ayarlarsanız, 30 dakika TTL'ye ulaşılmadan önce en fazla 6 teslim denemesi gerçekleşir, bu nedenle maksimum deneme sayısını 10 olarak ayarlamak bu durumda herhangi bir etkisi olmaz ve olaylar 30 dakika sonra teslim edilemez.

Sonraki adımlar