Share via


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-Subscriptionneve , akkor a kézbesítetlen blobok nevei (myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/111111111-1111-1111-1111-111111111111.json) lesznek MY-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.

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

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.

Képernyőkép egy meglévő esemény-előfizetés kézbesítetlen leveleinek 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í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.

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

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.

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

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-attemptsa 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-attemptsa 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