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.
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.
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-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 edilmeyi 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 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.
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.
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-attempts
hem 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-attempts
hem 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.
İlgili içerik
- Ö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.