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
- Visual Studio Code nainstalovaný na jedné z podporovaných platforem
- Rozšíření Azure Functions
Vytvoření funkce
Otevřete Visual Studio Code.
Na levém panelu vyberte Azure.
V levém podokně v části PRACOVNÍ PROSTOR vyberte na panelu příkazů tlačítko Azure Functions a pak vyberte Vytvořit funkci.
Vyberte složku, do které chcete kód funkce uložit.
V případě příkazu Vytvořit nový projekt vyberte jazyk C# a pak stiskněte klávesu Enter.
V případě modulu runtime .NET vyberte .NET 8.0 Isolated LTS a pak stiskněte klávesu Enter.
Jako šablonu pro funkci vyberte trigger Azure Event Gridu a pak stiskněte klávesu Enter.
Jako název funkce zadejte název funkce a pak stiskněte klávesu Enter.
Jako obor názvů zadejte název oboru názvů funkce a pak vyberte klávesu Enter.
Otevřete projekt v aktuálním okně nebo v novém okně nebo ho přidejte do pracovního prostoru.
Počkejte, až se funkce vytvoří. Stav vytvoření funkce se zobrazí v pravém dolním rohu.
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
Pokud podokno Azure ještě není otevřené, vyberte tlačítko Azure na levém panelu.
Najeďte myší na projekt a vyberte tlačítko Nasadit do Azure .
V rozevíracím seznamu palety příkazů vyberte + Vytvořit novou aplikaci funkcí a pak vyberte klávesu Enter.
Jako Název zadejte globálně jedinečný název nové aplikace funkcí a pak vyberte klávesu Enter.
V případě zásobníku modulu runtime vyberte .NET 8 Isolated.
V části Umístění prostředků Azure vyberte oblast, která je blízko vás.
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í.
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ě.
Klikněte pravým tlačítkem na funkci a pak vyberte Otevřít na portálu.
V případě potřeby se přihlaste k Azure a ověřte, že se pro vaši funkci zobrazí stránka aplikace funkcí.
V dolním podokně vyberte funkci.
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.
Vytvoření vlastního tématu
Téma Event Gridu poskytuje uživatelem definovaný koncový bod, do kterého publikujete události.
Na nové kartě okna webového prohlížeče se přihlaste k webu Azure Portal.
Na panelu hledání v tématu vyhledejte témata Event Gridu a pak vyberte Témata Event Gridu.
Na stránce Témata vyberte na panelu příkazů + Vytvořit.
V podokně Vytvořit téma postupujte takto:
Jako předplatné vyberte své předplatné Azure.
V části Skupina prostředků vyberte stejnou skupinu prostředků z předchozích kroků.
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 (
-
).V části Oblast vyberte umístění tématu Event Gridu.
Vyberte Zkontrolovat a vytvořit.
Na kartě Zkontrolovat a vytvořit zkontrolujte nastavení a pak vyberte Vytvořit.
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.
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.
Na stránce Téma Event Gridu pro vlastní téma vyberte na panelu nástrojů možnost + Odběr událostí.
V podokně Vytvořit odběr událostí postupujte takto:
Jako Název zadejte název odběru události.
V případě schématu událostí vyberte Schéma cloudové události verze 1.0.
Jako typ koncového bodu vyberte funkci Azure Functions.
Vyberte Konfigurovat koncový bod.
V podokně Vybrat funkci Azure postupujte takto:
V části Předplatné vyberte předplatné Azure, které má funkci.
V části Skupina prostředků vyberte skupinu prostředků, která má funkci.
V případě aplikace funkcí vyberte svou aplikaci funkcí.
Jako funkci vyberte funkci v aplikaci funkcí.
Zvolte Potvrdit výběr.
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.
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
Na webu Azure Portal vyberte Cloud Shell. Pokud jste v režimu Azure PowerShellu, vyberte Přepnout na Bash.
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"
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)
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)
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"} ]'
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
Ověřte, že se zpráva z funkce zobrazí na kartě Protokoly pro vaši funkci na webu Azure Portal.
Azure PowerShell
Druhý příklad používá Azure PowerShell k provedení podobných kroků.
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.
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"
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
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)+"]"
Invoke-WebRequest
K odeslání události použijte rutinu:Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Ověřte, že se zpráva z funkce zobrazí na kartě Protokoly pro vaši funkci na webu Azure Portal.
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.
Na stránce Monitorování funkce vyhledejte vyvolání.
Výběrem vyvolání zobrazíte podrobnosti.
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.
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.
V nabídce vlevo vyberte Skupiny prostředků.
Alternativou je vybrat všechny služby v nabídce vlevo a pak vybrat skupiny prostředků.
Výběrem skupiny prostředků otevřete podokno s podrobnostmi.
Na panelu nástrojů vyberte Odstranit skupinu prostředků.
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.
Související obsah
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 službě Event Grid
- Směrování událostí služby Azure Blob Storage do vlastního webového koncového bodu
- Monitorování změn virtuálního počítače pomocí služeb Azure Event Grid a Logic Apps
- Streamování velkých objemů dat do datového skladu
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: