A kézbesíthetetlen levelek helyének és az újrapróbálkozási szabályzat beállítása
Esemény-előfizetés létrehozásakor testre szabhatja az eseménykézbesítés beállításait. Ez a cikk bemutatja, hogyan állíthat be holt betűhelyet, és hogyan szabhatja testre az újrapróbálkozás beállításait. Ezekről a funkciókról további információt az Event Grid üzenetkézbesítési és újrapróbálkozása című témakörben talál.
Feljegyzés
Az üzenetkézbesítésről, az újrapróbálkozásról és a levéltovábbításról az Event Grid üzenetkézbesítéséről és újrapróbálkozásáról szóló elméleti cikk nyújt tájékoztatást.
Kézbesíthetetlen levelek helyének beállítása
A kézbesíthetetlen levelek helyének beállításához szüksége van egy tárfiókra az olyan események tárolásához, amelyeket nem lehet kézbesíteni egy végpontra. A példák lekérik egy meglévő tárfiók erőforrás-azonosítóját. Létrehoznak egy esemény-előfizetést, amely egy tárolót használ az adott tárfiókban a kézbesíthetetlen levelek végpontja számára.
A cikkben szereplő parancsok futtatása előtt létre kell hoznia egy tárfiókot és egy blobtárolót a tárolóban. Az Event Grid blobokat hoz létre ebben a tárolóban. A blobok neve tartalmazza az Event Grid-előfizetés nevét, nagybetűkkel együtt. Ha például az előfizetés neve, My-Blob-Subscription
akkor a holtbetűs blobok neve (MY-BLOB-SUBSCRIPTION
myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json
). Ez a viselkedés az Azure-szolgáltatások közötti esetkezelés különbségei ellen nyújt védelmet. A példában .../2019/8/8/5/...
a nem időalapú dátumot és órát (UTC) jelöli: .../YYYY/MM/DD/HH/...
.'. A létrehozott halott levélblobok egy vagy több eseményt tartalmaznak egy tömbben, ami fontos viselkedés a halott levelek feldolgozásakor.
Azure Portal
Esemény-előfizetés létrehozásakor engedélyezheti a levéltetovábbítást a További funkciók lapon az alábbi képen látható módon. A funkció engedélyezése után adja meg a blobtárolót, amely halottbetűs eseményeket tárol, és adja meg a blobtárolót tartalmazó Azure-előfizetést.
Opcionálisan engedélyezheti a rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitást a nem betűs üzenetekhez. A felügyelt identitásnak egy szerepköralapú hozzáférés-vezérlési (RBAC) szerepkör tagjának kell lennie, amely lehetővé teszi események írását a tárolóba.
Engedélyezheti a levéltovábbítást is, és konfigurálhatja egy meglévő esemény-előfizetés beállításait. Az esemény-előfizetés Esemény-előfizetés lapján váltson a További funkciók lapra, és tekintse meg a kézbesíthetetlen levelek beállításait az alábbi képen látható módon.
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
A kézbesíthetetlen levelek kikapcsolásához futtassa újra a parancsot az esemény-előfizetés létrehozásához, de ne adjon meg értéket.deadletter-endpoint
Nem kell törölnie az esemény-előfizetést.
Feljegyzés
Ha az Azure CLI-t a helyi gépen használja, használja az Azure CLI 2.0.56-os vagy újabb verzióját. Az Azure CLI legújabb verziójának telepítésével kapcsolatos utasításokért tekintse meg az Azure CLI telepítését ismertető cikket.
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"
A kézbesíthetetlen levelek kikapcsolásához futtassa újra a parancsot az esemény-előfizetés létrehozásához, de ne adjon meg értéket.DeadLetterEndpoint
Nem kell törölnie az esemény-előfizetést.
Feljegyzés
Ha az Azure PowerShellt a helyi gépen használja, használja az Azure PowerShell 1.1.0-s vagy újabb verzióját. Töltse le és telepítse a legújabb Azure PowerShellt az Azure-letöltésekből.
Újrapróbálkozési szabályzat beállítása
Event Grid-előfizetés létrehozásakor megadhatja, hogy az Event Grid mennyi ideig próbálja meg kézbesíteni az eseményt. Az Event Grid alapértelmezés szerint 24 órán keresztül (1440 perc) vagy 30-szor próbálkozik. Ezen értékek bármelyikét beállíthatja az Event Grid-előfizetéshez. Az esemény élettartamának az 1 és 1440 közötti egész számnak kell lennie. A maximális újrapróbálkozések értékének 1 és 30 közötti egész számnak kell lennie.
Az újrapróbálkozás ütemezése nem konfigurálható.
Azure Portal
Esemény-előfizetés létrehozásakor a További funkciók lapon konfigurálhatja az újrapróbálkozás szabályzatbeállításait .
Egy meglévő esemény-előfizetés újrapróbálkozására vonatkozó házirend-beállításokat is konfigurálhat. Az esemény-előfizetés Esemény-előfizetés lapján váltson a További funkciók lapra az újrapróbálkozási szabályzat beállításainak megtekintéséhez az alábbi képen látható módon.
Azure CLI
Az esemény élettartamának 1440 percnél nem régebbi értékre való beállításához használja a következőt:
az eventgrid event-subscription create \
-g gridResourceGroup \
--topic-name <topic_name> \
--name <event_subscription_name> \
--endpoint <endpoint_URL> \
--event-ttl 720
Ha a maximális újrapróbálkozásokat 30-nál eltérő értékre szeretné állítani, használja a következőt:
az eventgrid event-subscription create \
-g gridResourceGroup \
--topic-name <topic_name> \
--name <event_subscription_name> \
--endpoint <endpoint_URL> \
--max-delivery-attempts 18
Feljegyzés
Ha mindkettőt event-ttl
beállítja, az max-deliver-attempts
Event Grid az elsőt használja annak meghatározására, hogy mikor állítsa le az eseménykézbesítést. Ha például 30 percet állít be élettartamként (TTL) és 5 maximális kézbesítési kísérletként. Ha egy esemény 30 perc (vagy) után nem lesz kézbesítve öt kísérlet után, attól függően, hogy melyik az első, az esemény holtbetűs lesz. Ha a maximális kézbesítési kísérleteket 10-re állítja be, az exponenciális újrapróbálkozási ütemezés tekintetében legfeljebb hat kézbesítési kísérlet történik 30 perc TTL elérése előtt, ezért a kísérletek maximális számának 10-re történő beállítása ebben az esetben nem lesz hatással, és az események 30 perc után elhalványulnak.
PowerShell
Az esemény élettartamának 1440 percnél nem régebbi értékre való beállításához használja a következőt:
$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-EventTtl 720
Ha a maximális újrapróbálkozásokat 30-nál eltérő értékre szeretné állítani, használja a következőt:
$topicid = (Get-AzEventGridTopic -ResourceGroupName gridResourceGroup -Name demoTopic).Id
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-MaxDeliveryAttempt 18
Feljegyzés
Ha mindkettőt event-ttl
beállítja, az max-deliver-attempts
Event Grid az elsőt használja annak meghatározására, hogy mikor állítsa le az eseménykézbesítést. Ha például 30 percet állít be élettartamként (TTL) és 5 maximális kézbesítési kísérletként. Ha egy esemény 30 perc (vagy) után nem lesz kézbesítve öt kísérlet után, attól függően, hogy melyik az első, az esemény holtbetűs lesz. Ha a maximális kézbesítési kísérleteket 10-re állítja be, az exponenciális újrapróbálkozási ütemezés tekintetében legfeljebb hat kézbesítési kísérlet történik 30 perc TTL elérése előtt, ezért a kísérletek maximális számának 10-re történő beállítása ebben az esetben nem lesz hatással, és az események 30 perc után elhalványulnak.
Kapcsolódó tartalom
- Ha egy azure-beli függvényalkalmazást használó mintaalkalmazást használ a halottbetűjeles események feldolgozásához, tekintse meg az Azure Event Grid .NET-hez készült holtbetűs mintáit.
- Az eseménykézbesítésről és az újrapróbálkozásról az Event Grid üzenetkézbesítési és újrapróbálkozási információkért.