Směrování vlastních událostí do webového koncového bodu pomocí webu Azure Portal a Azure Event Gridu

Event Grid je plně spravovaná služba, která umožňuje snadnou správu událostí v mnoha různých službách a aplikacích Azure. Zjednodušuje vytváření aplikací řízených událostmi a bezserverových aplikací. Přehled služby najdete v přehledu služby Event Grid.

V tomto článku pomocí webu Azure Portal provedete následující úlohy:

  1. Vytvořte vlastní téma.
  2. Přihlaste se k odběru vlastního tématu.
  3. Aktivujte událost.
  4. Zobrazte 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 Azure před tím, než začnete.

Registrace poskytovatele prostředků Event Gridu

Pokud jste službu Event Grid ještě nepoužívali, budete muset zaregistrovat poskytovatele prostředků Event Gridu. Pokud jste službu Event Grid používali dříve, přejděte k další části.

Na webu Azure Portal proveďte následující kroky:

  1. V nabídce vlevo vyberte Předplatná.

  2. V seznamu odběrů vyberte předplatné , které chcete použít pro Event Grid.

  3. Na stránce Předplatné vyberte v části Nastavení v nabídce vlevo poskytovatele prostředků.

  4. Vyhledejte Microsoft.EventGrid a ověřte, že stav není zaregistrovaný.

  5. V seznamu zprostředkovatelů vyberte Microsoft.EventGrid .

  6. Na panelu příkazů vyberte Zaregistrovat .

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

  7. Aktualizujte, abyste měli jistotu , že je stav Microsoft.EventGrid změněn na Zaregistrovaný.

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

Vytvoření vlastního tématu

Téma Event Gridu poskytuje uživatelem definovaný koncový bod, do kterého publikujete události.

  1. Přihlaste se na portál Azure.

  2. Na panelu hledání v tématu zadejte Témata Event Gridu a v rozevíracím seznamu vyberte Témata Event Gridu.

    Screenshot showing the Azure port search bar to search for Event Grid topics.

  3. Na stránce Témata event Gridu vyberte na panelu nástrojů možnost + Vytvořit.

    Screenshot showing the Create Topic button on Event Grid topics page.

  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ázevskupiny 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 délku 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. Vyberte Zkontrolovat a vytvořit v dolní části stránky.

      Create Topic page

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

      Review settings and create

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

    Screenshot showing the Event Grid topic home page.

    Poznámka:

    Pokud chcete rychlý start zachovat jednoduchý, budete k vytvoření tématu používat jenom stránku Základy . Podrobný postup konfigurace nastavení sítě, zabezpečení a rezidence dat na jiných stránkách průvodce najdete v tématu Vytvoření vlastního tématu.

Vytvoření koncového bodu zpráv

Před vytvořením odběru vlastního tématu 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á zobrazí zprávy událostí. 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 vašeho předplatného. Na webu Azure Portal zadejte hodnoty pro parametry.

    Button to deploy the Resource Manager template 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 bude jednodušší vyčistit skupinu prostředků.

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

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

    4. Vyberte Zkontrolovat a vytvořit.

      Screenshot showing the Custom deployment page.

  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 Výstrahy (ikona zvonku) a pak vyberte Přejít do skupiny prostředků.

    Screenshot showing the successful deployment message with a link to navigate to the resource group.

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

    Screenshot that shows the Resource Group page with the deployed resources.

  6. Na stránce služby App Service pro vaši webovou aplikaci 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.

    Screenshot that shows the App Service page with the link to the site highlighted.

  7. Potvrďte, že se web zobrazuje, ale zatím se do něj nezveřejnily žádné události.

    Screenshot that shows the Event Grid Viewer sample app.

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

Přihlásíte se k odběru tématu Event Gridu, abyste službě Event Grid řekli, které události chcete sledovat a kam se mají události odesílat.

  1. Teď na stránce Téma event Gridu pro vlastní téma vyberte na panelu nástrojů možnost + Odběr událostí.

    Add event subscription button

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

    3. Zvolte Vybrat koncový bod.

      Provide event subscription values

    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.

      Provide endpoint URL

    5. Zpět 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.

    Screenshot of the Event Grid Viewer app with the Subscription Validated event.

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. Na webu Azure Portal vyberte Cloud Shell. Cloud Shell se otevře v dolním podokně webového prohlížeče.

    Select Cloud Shell icon

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

    Screenshot that shows the Cloud Shell with Bash selected in the top-left corner.

  3. Spuštěním následujícího příkazu získejte koncový bod tématu: Po zkopírování a vložení příkazu před spuštěním příkazu aktualizujte název tématu a název skupiny prostředků. Do tohoto koncového bodu tématu publikujete 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 webu Azure Portal, přejděte na kartu Přístupové klíče na stránce Téma event gridu. Abyste mohli publikovat 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 Curl publikujte událost: V příkazu je hlavička nastavená na přístupový klíč, aeg-sas-key který jste získali dříve.

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

Azure PowerShell

Druhý příklad používá k podobnému postupu PowerShell.

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

    Select Cloud Shell icon

  2. V Cloud Shellu vyberte PowerShell v levém horním rohu okna Cloud Shellu. Podívejte se na ukázkový obrázek okna Cloud Shellu 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:

    Skupina prostředků:

    $resourceGroupName = "<resource group name>"
    

    Název tématu Event Gridu:

    $topicName = "<topic name>"
    
  4. Spuštěním následujících příkazů získejte koncový bod a klíče pro dané 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 okně Cloud Shellu.

    $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 Gridu

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 vyberte Skupiny prostředků.

    Screenshot that shows the Resource Groups page.

  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 v imagi, byla vytvořena a používána oknem Cloud Shellu. Pokud nechcete později okno Cloud Shellu používat, odstraňte ho.

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 Event Gridu a jejich využívání pomocí různých programovacích jazyků.