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ı ise
My-Blob-Subscription
, geçersiz harf bloblarının adlarında (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json
olurMY-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.
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.
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-endpoint
bir 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 DeadLetterEndpoint
bir 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.
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.
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-attempts
hem 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-attempts
hem 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
- Ölü harf olaylarını işlemek için Azure İşlevi uygulamasını kullanan örnek bir uygulama için bkz. .NET için Azure Event Grid Teslim Edilemeyen Harf Örnekleri.
- Olay teslimi ve yeniden denemeleri hakkında bilgi için Event Grid ileti teslimi ve yeniden deneme.
- Event Grid’e giriş için bkz. Event Grid hakkında.
- Event Grid'i kullanmaya hızlı bir şekilde başlamak için bkz. Azure Event Grid ile özel olaylar oluşturma ve yönlendirme.