Rychlý start: Směrování vlastních událostí do funkce Azure pomocí Event Gridu

Azure Event Grid je služba směrování událostí pro cloud. Azure Functions je jedním z podporovaných obslužných rutin událostí.

V tomto rychlém startu pomocí webu Azure Portal vytvoříte vlastní téma, přihlásíte se k odběru vlastního tématu a aktivujete událost, aby se zobrazil výsledek. Události odešlete do funkce Azure.

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

Vytvoření funkce s triggerem Event Gridu pomocí editoru Visual Studio Code

V této části pomocí editoru Visual Studio Code vytvoříte funkci s triggerem Event Gridu.

Požadavky

Vytvoření funkce

  1. Otevřete Visual Studio Code.

  2. Na levém panelu vyberte Azure.

  3. V levém podokně v části PRACOVNÍ PROSTOR vyberte na panelu příkazů tlačítko Azure Functions a pak vyberte Vytvořit funkci.

    Snímek obrazovky znázorňující kartu Azure editoru Visual Studio Code s příkazem nabídky pro vytvoření funkce

  4. Vyberte složku, do které chcete kód funkce uložit.

  5. V případě příkazu Vytvořit nový projekt vyberte jazyk C# a pak stiskněte klávesu Enter.

    Snímek obrazovky znázorňující výběr jazyka C Sharp jako jazyka pro vývoj funkce Azure

  6. V případě modulu runtime .NET vyberte .NET 8.0 Isolated LTS a pak stiskněte klávesu Enter.

  7. Jako šablonu pro funkci vyberte trigger Azure Event Gridu a pak stiskněte klávesu Enter.

  8. Jako název funkce zadejte název funkce a pak stiskněte klávesu Enter.

  9. Jako obor názvů zadejte název oboru názvů funkce a pak vyberte klávesu Enter.

  10. Otevřete projekt v aktuálním okně nebo v novém okně nebo ho přidejte do pracovního prostoru.

  11. Počkejte, až se funkce vytvoří. Stav vytvoření funkce se zobrazí v pravém dolním rohu.

    Snímek obrazovky znázorňující stav vytvoření funkce

  12. Prohlédněte si kód v souboru YourFunctionName.cs , konkrétně metodu Run . Vytiskne informace pomocí protokolovacího nástroje.

    [Function(nameof(MyEventGridTriggerFunc))]
    public void Run([EventGridTrigger] CloudEvent cloudEvent)
    {
        _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
    }
    

Nasazení funkce do Azure

  1. Pokud podokno Azure ještě není otevřené, vyberte tlačítko Azure na levém panelu.

  2. Najeďte myší na projekt a vyberte tlačítko Nasadit do Azure .

    Snímek obrazovky znázorňující tlačítko pro nasazení do Azure

  3. V rozevíracím seznamu palety příkazů vyberte + Vytvořit novou aplikaci funkcí a pak vyberte klávesu Enter.

  4. Jako Název zadejte globálně jedinečný název nové aplikace funkcí a pak vyberte klávesu Enter.

  5. V případě zásobníku modulu runtime vyberte .NET 8 Isolated.

  6. V části Umístění prostředků Azure vyberte oblast, která je blízko vás.

  7. Stav vytvoření aplikace funkcí se zobrazí na kartě AZURE v dolním podokně. Po vytvoření aplikace funkcí se zobrazí stav nasazení funkce, kterou jste vytvořili místně do aplikace funkcí.

  8. Po úspěšném nasazení rozbalte zprávu Vytvořit aplikaci funkcí úspěšnou a kliknutím zobrazíte prostředek. Ověřte, že je vaše funkce vybrána v části PROSTŘEDKY v levém podokně.

  9. Klikněte pravým tlačítkem na funkci a pak vyberte Otevřít na portálu.

    Snímek obrazovky znázorňující výběry pro otevření funkce na portálu

  10. V případě potřeby se přihlaste k Azure a ověřte, že se pro vaši funkci zobrazí stránka aplikace funkcí.

  11. V dolním podokně vyberte funkci.

    Snímek obrazovky znázorňující výběr funkce Azure na stránce Aplikace funkcí

  12. Přepněte na kartu Protokoly . Nechte tuto kartu otevřenou, abyste při odesílání události do tématu Event Gridu později v tomto kurzu viděli protokolované zprávy.

    Snímek obrazovky znázorňující kartu Protokoly pro funkci na webu Azure Portal

Vytvoření vlastního tématu

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

  1. Na nové kartě okna webového prohlížeče se přihlaste k webu Azure Portal.

  2. Na panelu hledání v tématu vyhledejte témata Event Gridu a pak vyberte Témata Event Gridu.

    Snímek obrazovky znázorňující výběr témat Event Gridu

  3. Na stránce Témata vyberte na panelu příkazů + Vytvořit.

    Snímek obrazovky znázorňující tlačítko pro vytvoření tématu Event Gridu

  4. V podokně Vytvořit téma postupujte takto:

    1. Jako předplatné vyberte své předplatné Azure.

    2. V části Skupina prostředků vyberte stejnou skupinu prostředků z předchozích kroků.

    3. Jako Název zadejte jedinečný název vlastního tématu. Název tématu musí být jedinečný, protože položka DNS (Domain Name System) ji představuje.

      Nepoužívejte název zobrazený v ukázkovém obrázku. Místo toho vytvořte vlastní název. Musí mít 3–50 znaků a obsahovat pouze hodnoty a-z, A-Z, 0-9 a spojovník (-).

    4. V části Oblast vyberte umístění tématu Event Gridu.

    5. Vyberte Zkontrolovat a vytvořit.

      Snímek obrazovky znázorňující podokno pro vytvoření tématu

    6. Na kartě Zkontrolovat a vytvořit zkontrolujte nastavení a pak vyberte Vytvořit.

  5. Po vytvoření vlastního tématu vyberte odkaz Přejít k prostředku a otevřete stránku tématu Event Gridu pro dané téma.

    Snímek obrazovky znázorňující stránku vlastního tématu Event Gridu

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. Na stránce Téma Event Gridu pro vlastní téma vyberte na panelu nástrojů možnost + Odběr událostí.

    Snímek obrazovky znázorňující tlačítko pro přidání odběru událostí na panelu nástrojů

  2. V podokně Vytvořit odběr událostí postupujte takto:

    1. Jako Název zadejte název odběru události.

    2. V případě schématu událostí vyberte Schéma cloudové události verze 1.0.

    3. Jako typ koncového bodu vyberte funkci Azure Functions.

    4. Vyberte Konfigurovat koncový bod.

      Snímek obrazovky znázorňující hodnoty odběru událostí

    5. V podokně Vybrat funkci Azure postupujte takto:

      1. V části Předplatné vyberte předplatné Azure, které má funkci.

      2. V části Skupina prostředků vyberte skupinu prostředků, která má funkci.

      3. V případě aplikace funkcí vyberte svou aplikaci funkcí.

      4. Jako funkci vyberte funkci v aplikaci funkcí.

      5. Zvolte Potvrdit výběr.

        Snímek obrazovky znázorňující podokno pro výběr dříve vytvořené funkce Azure

    6. Tento krok je volitelný, ale doporučujeme ho pro produkční scénáře. V podokně Vytvořit odběr událostí přejděte na kartu Další funkce a nastavte hodnoty maximálních událostí na dávku a upřednostňovanou velikost dávky v kilobajtech.

      Dávkování vám může poskytnout vysokou propustnost. U maximálních událostí na dávku nastavte maximální počet událostí, které bude odběr obsahovat v dávce. Upřednostňovaná velikost dávky v kilobajtech nastaví upřednostňovanou horní mez velikosti dávky, ale dá se překročit, pokud je jedna událost větší než tato prahová hodnota.

      Snímek obrazovky znázorňující nastavení dávkování odběru událostí

    7. V podokně Vytvořit odběr událostí vyberte Vytvořit.

Odeslání události do tématu

Teď aktivujte událost, abyste viděli, jak Event Grid distribuuje zprávu do koncového bodu. K odeslání testovací události do vlastního tématu použijte Azure CLI nebo Azure PowerShell. Aplikace nebo služba Azure obvykle odesílají data událostí.

První příklad používá Azure CLI. Získá adresu URL a klíč pro vlastní téma a ukázková data událostí. Místo položky topicname 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í.

Nástroj cURL odesílá požadavky HTTP. V tomto článku použijete cURL k odeslání události do vlastního tématu.

Azure CLI

  1. Na webu Azure Portal vyberte Cloud Shell. Pokud jste v režimu Azure PowerShellu, vyberte Přepnout na Bash.

    Snímek obrazovky znázorňující okno Bash v Azure Cloud Shellu

  2. Nastavte proměnné topicname resourcegroupname , které se používají v příkazech.

    Nahraďte TOPICNAME názvem tématu Event Gridu.

    topicname="TOPICNAME"
    

    Nahraďte RESOURCEGROUPNAME názvem skupiny prostředků Azure, která obsahuje téma Event Gridu.

    resourcegroupname="RESOURCEGROUPNAME"
    
  3. K získání koncového bodu tématu použijte následující příkaz. Po zkopírování a vložení příkazu před spuštěním aktualizujte název tématu a název skupiny prostředků.

    endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)
    
  4. Pomocí následujícího příkazu získejte klíč pro vlastní téma. Po zkopírování a vložení příkazu před spuštěním aktualizujte název tématu a název skupiny prostředků.

    key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)
    
  5. Zkopírujte následující příkaz s definicí události a pak vyberte klávesu 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:

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    
  7. Ověřte, že se zpráva z funkce zobrazí na kartě Protokoly pro vaši funkci na webu Azure Portal.

    Snímek obrazovky znázorňující kartu Protokoly pro funkci Azure

Azure PowerShell

Druhý příklad používá Azure PowerShell k provedení podobných kroků.

  1. Na webu Azure Portal vyberte Cloud Shell (nebo přejděte na stránku Azure Cloud Shell). V levém horním rohu okna Cloud Shellu vyberte Přepnout na PowerShell.

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

    $resourceGroupName = "RESOURCEGROUPNAME"
    
    $topicName = "TOPICNAME"
    
  3. 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
    
  4. Připravte událost. Zkopírujte a spusťte tyto příkazy v okně Cloud Shellu:

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

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    
  6. Ověřte, že se zpráva z funkce zobrazí na kartě Protokoly pro vaši funkci na webu Azure Portal.

    Snímek obrazovky znázorňující kartu Protokoly pro funkci

Ověřte, že funkce přijala událost.

Aktivovali jste událost a Event Grid odeslal zprávu do koncového bodu, který jste nakonfigurovali při přihlášení k odběru. Teď můžete zkontrolovat, jestli ji funkce přijala.

  1. Na stránce Monitorování funkce vyhledejte vyvolání.

    Snímek obrazovky znázorňující kartu Vyvolání na stránce Monitorování

  2. Výběrem vyvolání zobrazíte podrobnosti.

    Snímek obrazovky s podrobnostmi o vyvolání

    Můžete také použít kartu Protokoly v pravém podokně k zobrazení protokolovaných zpráv při publikování událostí do koncového bodu tématu.

    Snímek obrazovky znázorňující zobrazení funkce Monitor s protokolem

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

Pokud chcete pokračovat v práci s touto událostí, nevyčistíte prostředky, které jste vytvořili v tomto článku. Jinak odstraňte prostředky, které jste vytvořili v tomto článku.

  1. V nabídce vlevo vyberte Skupiny prostředků.

    Snímek obrazovky znázorňující stránku pro skupiny prostředků

    Alternativou je vybrat všechny služby v nabídce vlevo a pak vybrat skupiny prostředků.

  2. Výběrem skupiny prostředků otevřete podokno s podrobnostmi.

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

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

Okno Cloud Shellu se vytvořilo a použilo druhou skupinu prostředků, která se zobrazí na stránce Skupiny prostředků. Tuto skupinu prostředků odstraňte, pokud později neplánujete používat okno Cloud Shellu.

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

Informace o publikování událostí do Event Gridu a jejich využívání pomocí různých programovacích jazyků najdete v následujících ukázkách: