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. További információ ezekről a funkciókról: Event Grid-üzenetek kézbesítése és újrapróbálkozása.
Megjegyzés
Az üzenetkézbesítésről, az újrapróbálkozásról és a kézbesítetlen levelekről az Event Grid üzenetkézbesítési és újrapróbálkozási fogalmi cikkében olvashat.
Kézbesítetlen levelek helyének beállítása
A kézbesítetlen levelek helyének beállításához szükség 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ítetlen levelek végpontja számára.
Megjegyzés
- Hozzon létre egy tárfiókot és egy blobtárolót a tárolóban, mielőtt parancsokat futtat ebben a cikkben.
- Az Event Grid szolgáltatás blobokat hoz létre ebben a tárolóban. A blobok neve az Event Grid-előfizetés nevével fog rendelkezni, nagybetűs betűkkel. Ha például az előfizetés
My-Blob-Subscription
neve , akkor a kézbesítetlen blobok nevei (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json
) lesznekMY-BLOB-SUBSCRIPTION
. Ez a viselkedés az Azure-szolgáltatások közötti esetkezelés különbségei ellen nyújt védelmet. - A fenti példában
.../2019/8/8/5/...
a nem nulla párnázott dátumot és órát (UTC) jelöljük:.../YYYY/MM/DD/HH/...
.' - A létrehozott kézbesítetlen levelek blobok egy vagy több eseményt tartalmaznak egy tömbben, ami fontos viselkedés a kézbesítetlen levelek feldolgozásakor.
Azure Portal
Esemény-előfizetés létrehozásakor engedélyezheti a kézbesítetlen levelek használatát a További funkciók lapon, ahogy az alábbi képen látható. A funkció engedélyezése után adja meg azt a blobtárolót, amely kézbesítetlen levelű eseményeket fog tárolni, valamint 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 kézbesítetlen levelekhez. 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 kézbesítetlen levelek használatát 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ítetlen 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ítetlen levelek kikapcsolásához futtassa újra a parancsot az esemény-előfizetés létrehozásához, de ne adjon meg értéket a számára deadletter-endpoint
. Nem kell törölnie az esemény-előfizetést.
Megjegyzés
Ha az Azure CLI-t használja a helyi gépen, 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 lásd : Az Azure CLI telepítése.
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ítetlen levelek kikapcsolásához futtassa újra a parancsot az esemény-előfizetés létrehozásához, de ne adjon meg értéket a számára DeadLetterEndpoint
. Nem kell törölnie az esemény-előfizetést.
Megjegyzés
Ha az Azure Poweshellt használja a helyi gépen, használja Azure PowerShell 1.1.0-s vagy újabb verzióját. Töltse le és telepítse a legújabb Azure PowerShell 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 percig) 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 értéke 1 és 1440 közötti egész szám lehet. 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 konfigurálhatja az újrapróbálkozás szabályzatbeállításait a További funkciók lapon.
Konfigurálhat újrapróbálkozési szabályzatbeállításokat is egy meglévő esemény-előfizetéshez. 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ás szabályzatbeállításainak megtekintéséhez az alábbi képen látható módon.
Azure CLI
Ha az esemény élettartamát 1440 perctő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> \
--event-ttl 720
Ha a maximális újrapróbálkozásokat nem 30 é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
Megjegyzés
Ha a és max-deliver-attempts
a beállítást is event-ttl
beállítja, az Event Grid az elsőt használja a lejárathoz annak meghatározásához, hogy mikor állítsa le az eseménykézbesítést. Ha például 30 percet állít be élettartam (TTL) és 5 maximális kézbesítési kísérletként. Ha egy esemény 30 perc elteltével (vagy) nem lesz kézbesítve 5 kísérlet után, amelyik előbb történik, az esemény kézbesítetlen 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 figyelembevételével legfeljebb 6 kézbesítési kísérlet történik 30 perccel a 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 elteltével kézbesíthetetlenek lesznek.
PowerShell
Ha az esemény élettartamát 1440 perctő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> `
-EventTtl 720
Ha a maximális újrapróbálkozásokat nem 30 é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
Megjegyzés
Ha a és max-deliver-attempts
a beállítást is event-ttl
beállítja, az Event Grid az elsőt használja a lejárathoz annak meghatározásához, hogy mikor állítsa le az eseménykézbesítést. Ha például 30 percet állít be élettartam (TTL) és 5 maximális kézbesítési kísérletként. Ha egy esemény 30 perc elteltével (vagy) nem lesz kézbesítve 5 kísérlet után, amelyik előbb történik, az esemény kézbesítetlen 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 figyelembevételével legfeljebb 6 kézbesítési kísérlet történik 30 perccel a 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 elteltével kézbesíthetetlenek lesznek.
Következő lépések
- Ha egy azure-beli függvényalkalmazást használó mintaalkalmazást használ a kézbesítetlen levelek eseményeinek feldolgozásához, tekintse meg a .NET-hez készült halott levélminták Azure Event Grid című témakört.
- 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 útmutatója nyújt tájékoztatást.
- Az Event Grid ismertetése: Az Event Grid bemutatása.
- Az Event Grid használatának gyors megkezdéséhez lásd: Egyéni események létrehozása és irányítása Azure Event Grid.