Megosztás a következőn keresztül:


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-Subscriptionakkor a holtbetűs blobok neve (MY-BLOB-SUBSCRIPTIONmyblobcontainer/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.

Képernyőkép egy esemény-előfizetés kézbesíthetetlen betűs konfigurációjáról.

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.

Képernyőkép egy meglévő esemény-előfizetés levéltovábbítási konfigurációjáról.

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 .

Képernyőkép egy esemény-előfizetés újrapróbálkozásának szabályzatkonfigurációjáról.

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.

Képernyőkép egy meglévő esemény-előfizetés újrapróbálkozásának szabályzatkonfigurációjáról.

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-attemptsEvent 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-attemptsEvent 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.

  • 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.