Směrování vlastních událostí do webového koncového bodu s využitím webu Azure Portal a Event Gridu

Event Grid je plně spravovaná služba, která umožňuje snadnou správu událostí napříč mnoha různými službami a aplikacemi Azure. Zjednodušuje vytváření aplikací řízených událostmi a bez serveru. Přehled služby najdete v tématu Event Grid .

V tomto článku použijete následující Azure Portal k následujícím úlohám:

  1. Vytvořte vlastní téma.
  2. Přihlaste se k odběru vlastního tématu.
  3. Aktivujte událost.
  4. Podívejte se na výsledek. Obvykle odesíláte události do koncového bodu, který data události zpracuje a provede akce. Pro zjednodušení tohoto článku však budete události odesílat do webové aplikace, která shromažďuje a zobrazuje zprávy.

Požadavky

Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.

Povolit poskytovatele prostředků služby Event Grid

Pokud jste ve vašem předplatném Azure ještě službu Event Grid nepoužívali, budete možná muset zaregistrovat poskytovatele prostředků služby Event Grid.

Na webu Azure Portal:

  1. V nabídce vlevo vyberte odběry .
  2. Vyberte předplatné, které používáte pro službu Event Grid.
  3. V nabídce vlevo v části Nastavení vyberte poskytovatelé prostředků.
  4. Vyhledejte Microsoft.EventGrid.
  5. Pokud prostředek není zaregistrovaný, vyberte Zaregistrovat.

Dokončení registrace může chvíli trvat. Stav můžete aktualizovat kliknutím na Aktualizovat. Jakmile se Stav změní na Zaregistrováno, můžete pokračovat.

Vytvoření vlastního tématu

Téma Event Gridu poskytuje uživatelsky definovaný koncový bod, do kterého odesíláte události.

  1. Přihlaste se k portálu Azure.

  2. Do panelu hledání v tématu zadejte Event Grid Témata a pak v rozevíracím seznamu Event Grid Témata.

    Hledání a výběr Event Grid témat

  3. Na stránce Event Grid témata vyberte na panelu nástrojů + Vytvořit.

  4. Na stránce Vytvořit téma postupujte takto:

    1. Vyberte své předplatné Azure.

    2. Vyberte existující skupinu prostředků nebo vyberte Vytvořit novou a zadejte název skupiny prostředků.

    3. Zadejte jedinečný název vlastního tématu. Název tématu musí být jedinečný, protože je reprezentován položkou DNS. Nepoužívejte název zobrazený na obrázku. Místo toho vytvořte vlastní název – musí mít 3 až 50 znaků a obsahovat pouze hodnoty a–z, A–Z, 0–9 a "-".

    4. Vyberte umístění tématu Event Gridu.

    5. V dolní části stránky vyberte Zkontrolovat a vytvořit.

      Stránka Vytvořit téma

    6. Na kartě Zkontrolovat a vytvořit na stránce Vytvořit téma vyberte Vytvořit.

      Kontrola nastavení a vytvoření

  5. Po úspěšném nasazení vyberte Přejít k prostředku a přejděte Event Grid téma pro vaše téma. Nechte tuto stránku otevřenou. Použijete ho později v tomto rychlém startu.

    Snímek obrazovky znázorňující domovskou Event Grid téma

Vytvoření koncového bodu zpráv

Před vytvořením odběru pro vlastní téma vytvořte koncový bod pro zprávu události. Koncový bod obvykle provede akce na základě dat události. Pro zjednodušení tohoto rychlého startu nasadíte předem připravenou webovou aplikaci, která zobrazuje zprávy události. Nasazené řešení zahrnuje plán služby App Service, webovou aplikaci App Service a zdrojový kód z GitHubu.

  1. Na stránce článku vyberte Nasadit do Azure a nasaďte řešení do svého předplatného. Na webu Azure Portal zadejte hodnoty pro parametry.

    Button to deploy to Azure.

  2. Na stránce Vlastní nasazení proveďte následující kroky:

    1. V části Skupina prostředků vyberte skupinu prostředků, kterou jste vytvořili při vytváření účtu úložiště. Po dokončení kurzu odstraněním skupiny prostředků vám usnadní vyčištění.

    2. Jako Název webu zadejte název webové aplikace.

    3. Do pole Název plánu hostování zadejte název App Service, který se má použít k hostování webové aplikace.

    4. Vyberte Zkontrolovat a vytvořit.

      Snímek obrazovky se stránkou Vlastní nasazení

  3. Na stránce Zkontrolovat a vytvořit vyberte Vytvořit.

  4. Dokončení nasazení může trvat několik minut. Na portálu vyberte Upozornění (ikona zvonku) a pak vyberte Přejít ke skupině prostředků.

    Upozornění – přejděte do skupiny prostředků.

  5. Na stránce Skupina prostředků vyberte v seznamu prostředků webovou aplikaci, kterou jste vytvořili. V tomto seznamu se App Service plán úložiště a účet úložiště.

    Vyberte web.

  6. Na App Service vaší webové aplikace vyberte adresu URL a přejděte na web. Adresa URL by měla být v tomto formátu: https://<your-site-name>.azurewebsites.net .

    Přejděte na web.

  7. Ověřte, že se web zobrazí, ale zatím na něj nebyly publikovány žádné události.

    Zobrazit nový web.

Přihlášení k odběru vlastního tématu

K odběru tématu Event Gridu se přihlašujete, aby služba Event Grid věděla, které události chcete sledovat a kam má tyto události odesílat.

  1. Teď na stránce Event Grid tématu vlastního tématu vyberte na panelu nástrojů + Odběr událostí.

    Tlačítko Přidat odběr události

  2. Na stránce Vytvořit odběr události postupujte takto:

    1. Zadejte název odběru události.

    2. Jako Typ koncového bodu vyberte Webhooky.

    3. Zvolte Vybrat koncový bod.

      Zadání hodnot pro odběr události

    4. Jako koncový bod webhooku zadejte adresu URL vaší webové aplikace a do adresy URL domovské stránky přidejte api/updates. Zvolte Potvrdit výběr.

      Zadání adresy URL koncového bodu

    5. Zpátky na stránce Vytvořit odběr události vyberte Vytvořit.

  3. Podívejte se na webovou aplikaci znovu a všimněte si, že do ní byla odeslána událost ověření odběru. Vyberte ikonu oka a rozbalte data události. Služba Event Grid odešle událost ověření, aby koncový bod mohl ověřit, že data události chce přijímat. Webová aplikace obsahuje kód pro ověření odběru.

    Zobrazení události odběru

Odeslání události do tématu

Nyní aktivujeme událost, abychom viděli, jak služba Event Grid distribuuje zprávu do vašeho koncového bodu. K odeslání testovací události do vlastního tématu použijte Azure CLI nebo PowerShell. Obvykle by aplikace nebo služba Azure odesílala data události.

V prvním příkladu se používá Azure CLI. Načte adresu URL a klíč vlastního tématu a data ukázkové události. Místo položky <topic name> použijte název vlastního tématu. Vytvoří se ukázková data události. Element JSON data je datová část vaší události. V tomto poli může být libovolný JSON ve správném formátu. Můžete také použít pole subject (předmět) pro pokročilé směrování a filtrování. CURL je nástroj, který odesílá požadavky HTTP.

Azure CLI

  1. V Azure Portal vyberte Cloud Shell. Okno Cloud Shell otevře v dolním podokně webového prohlížeče.

    Výběr Cloud Shell ikony

  2. V levém horním rohu okna Cloud Shell Bash.

    Cloud Shell – Bash

  3. Spuštěním následujícího příkazu získejte koncový bod pro téma: Po zkopírování a vložení příkazu aktualizujte název tématu a název skupiny prostředků před spuštěním příkazu. Do tohoto koncového bodu tématu budete publikovat ukázkové události.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Spuštěním následujícího příkazu získejte klíč pro vlastní téma: Po zkopírování a vložení příkazu aktualizujte název tématu a název skupiny prostředků před spuštěním příkazu. Je to primární klíč tématu Event Gridu. Pokud chcete tento klíč získat z Azure Portal, přepněte na kartu Přístupové klíče na Event Grid téma. Abyste mohli odeslat událost do vlastního tématu, potřebujete přístupový klíč.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Zkopírujte následující příkaz s definicí události a stiskněte ENTER.

    event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
    
  6. Spuštěním následujícího příkazu c CURL událost z postate: V příkazu je hlavička nastavená aeg-sas-key na přístupový klíč, který jste získali dříve.

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    

Azure PowerShell

V druhém příkladu se k podobným krokům používá PowerShell.

  1. V Azure Portal vyberte Cloud Shell (případně přejděte na https://shell.azure.com/ ). Okno Cloud Shell otevře v dolním podokně webového prohlížeče.

    Výběr Cloud Shell ikony

  2. V Cloud Shell vyberte v levém horním rohu okna Cloud Shell PowerShell. Podívejte se na Cloud Shell ukázkového okna v části Azure CLI.

  3. Nastavte následující proměnné. Po zkopírování a vložení každého příkazu aktualizujte název tématu a název skupiny prostředků před spuštěním příkazu:

    Resource group (Skupina prostředků):

    $resourceGroupName = "<resource group name>"
    

    Event Grid tématu:

    $topicName = "<topic name>"
    
  4. Spuštěním následujících příkazů získejte koncový bod a klíče pro toto téma:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Připravte událost. Zkopírujte a spusťte příkazy v Cloud Shell okně.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. K odeslání události použijte rutinu Invoke-WebRequest.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Ověření v prohlížeči Event Grid Viewer

Právě jste aktivovali událost a služba Event Grid odeslala zprávu do koncového bodu, který jste nakonfigurovali při přihlášení k odběru. Podívejte se na webovou aplikaci, abyste si zobrazili událost, kterou jste právě odeslali.

Event Grid Viewer

Vyčištění prostředků

Pokud chcete pokračovat v práci s touto událostí, nevyčišťujte prostředky vytvořené v rámci tohoto článku. V opačném případě odstraňte prostředky, které jste v rámci tohoto článku vytvořili.

  1. V nabídce vlevo vyberte Skupiny prostředků. Pokud ji v nabídce vlevo nevidíte, vyberte v nabídce vlevo Všechny služby a pak vyberte Skupiny prostředků.

    Skupiny prostředků

  2. Výběrem skupiny prostředků spusťte stránku Skupina prostředků.

  3. Na panelu nástrojů vyberte Odstranit skupinu prostředků.

  4. Potvrďte odstranění zadáním názvu skupiny prostředků a vyberte Odstranit.

    Druhá skupina prostředků, kterou vidíte na obrázku, byla vytvořena a používána oknem Cloud Shell prostředků. Odstraňte ho, pokud nechcete toto okno použít Cloud Shell později.

Další kroky

Když teď víte, jak vytvářet vlastní témata a odběry událostí, zjistěte, s čím vám služba Event Grid ještě může pomoct:

V následujících ukázkách se dozvíte o publikování událostí do a používání událostí z Event Grid různých programovacích jazyků.