Jak pracovat s triggery a vazbami Event Gridu ve službě Azure Functions
Azure Functions poskytuje integrovanou integraci se službou Azure Event Grid pomocí triggerů a vazeb. V tomto článku se dozvíte, jak nakonfigurovat a místně vyhodnotit trigger a vazby event Gridu. Další informace o definicích aktivačních událostí a výstupních vazbách a příkladech služby Event Grid najdete v jednom z následujících referenčních článků:
- Přehled vazeb Azure Event Gridu
- Trigger Služby Azure Event Grid pro Azure Functions
- Výstupní vazba Azure Event Gridu pro Azure Functions
Vytvoření odběru událostí
Pokud chcete začít přijímat požadavky HTTP služby Event Grid, potřebujete odběr událostí vyvolaných službou Event Grid. Odběry událostí určují adresu URL koncového bodu, která funkci vyvolá. Při vytváření odběru událostí na kartě Integrace vaší funkce na webu Azure Portal se za vás zadá adresa URL. Při programovém vytváření odběru událostí nebo při vytváření odběru událostí z Event Gridu budete muset zadat koncový bod. Adresa URL koncového bodu obsahuje systémový klíč, který musíte získat z rozhraní REST API správce služby Functions.
Získání adresy URL koncového bodu webhooku
Koncový bod adresy URL pro funkci aktivovanou službou Event Grid závisí na verzi modulu runtime Služby Functions. Následující příklad ukazuje vzor adresy URL pro konkrétní verzi:
https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}
Poznámka:
Existuje verze triggeru úložiště objektů blob, která také používá odběry událostí. Adresa URL koncového bodu pro tento druh triggeru úložiště objektů blob má cestu /runtime/webhooks/blobs
, zatímco cesta pro trigger Event Gridu by byla /runtime/webhooks/EventGrid
. Porovnání možností zpracování objektů blob najdete v tématu Trigger pro kontejner objektů blob.
Získání systémového klíče
Koncový bod adresy URL, který vytvoříte, obsahuje hodnotu systémového klíče. Systémový klíč je autorizační klíč specifický pro webhook Event Gridu, který musí být součástí požadavku na adresu URL koncového bodu pro trigger Event Gridu. Následující část vysvětluje, jak získat systémový klíč.
Hlavní klíč aplikace funkcí můžete získat také z klíčů aplikace Funkcí>na portálu.
Upozornění
Hlavní klíč poskytuje přístup správce k vaší aplikaci funkcí. Tento klíč nesdílejte s třetími stranami ani ho nedistribuujte v nativních klientských aplikacích.
Další informace najdete v tématu Práce s přístupovými klíči ve službě Azure Functions.
Systémový klíč můžete získat z aplikace funkcí pomocí následujících rozhraní API správce (HTTP GET):
http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}
Toto rozhraní REST API je rozhraní API pro správce, takže vyžaduje hlavní klíč vaší aplikace funkcí. Nezaměňujte systémový klíč (pro vyvolání funkce triggeru Event Gridu) s hlavním klíčem (pro provádění úloh správy v aplikaci funkcí). Když se přihlásíte k odběru tématu Event Gridu, nezapomeňte použít systémový klíč.
Tady je příklad odpovědi, která poskytuje systémový klíč:
{
"name": "eventgridextensionconfig_extension",
"value": "{the system key for the function}",
"links": [
{
"rel": "self",
"href": "{the URL for the function, without the system key}"
}
]
}
Vytvoření odběru
Odběr událostí můžete vytvořit buď z webu Azure Portal , nebo pomocí Azure CLI.
U funkcí, které vyvíjíte na webu Azure Portal s triggerem Event Gridu, vyberte Možnost Integrace a pak vyberte Aktivační událost Event Gridu a vyberte Vytvořit odběr Event Gridu.
Když vyberete tento odkaz, portál otevře stránku Vytvořit odběr událostí s již definovaným aktuálním koncovým bodem triggeru.
Další informace o vytváření odběrů pomocí webu Azure Portal najdete v tématu Vytvoření vlastní události – Azure Portal v dokumentaci ke službě Event Grid.
Další informace o tom, jak vytvořit předplatné, najdete v rychlém startu pro úložiště objektů blob nebo v dalších rychlých startech služby Event Grid.
Místní testování pomocí webové aplikace prohlížeče
Pokud chcete místně otestovat trigger Event Gridu, musíte do místního počítače získat požadavky HTTP služby Event Grid z jejich původu v cloudu. Jedním ze způsobů, jak to udělat, je zachycením žádostí online a jejich ručním opětovným odesláním na místním počítači:
- Vytvořte webovou aplikaci prohlížeče, která zachycuje zprávy událostí.
- Vytvořte odběr služby Event Grid, který odesílá události do aplikace prohlížeče.
- Vygenerujte požadavek a zkopírujte text požadavku z aplikace prohlížeče.
- Ručně publikujte požadavek na adresu URL místního hostitele vaší funkce triggeru Event Gridu.
K odeslání požadavku HTTP post potřebujete testovací nástroj HTTP. Nezapomeňte zvolit nástroj, který zajišťuje zabezpečení vašich dat. Další informace najdete v tématu Nástroje pro testování HTTP.
Po dokončení testování můžete použít stejné předplatné pro produkční prostředí aktualizací koncového bodu. az eventgrid event-subscription update
Použijte příkaz Azure CLI.
Vytvoření webové aplikace prohlížeče
Pro zjednodušení zachytávání zpráv událostí můžete nasadit předem vytvořenou webovou aplikaci , která zobrazuje zprávy událostí. Nasazené řešení zahrnuje plán služby App Service, webovou aplikaci App Service a zdrojový kód z GitHubu.
Vyberte Nasadit do Azure a nasaďte řešení do svého předplatného. Na webu Azure Portal zadejte hodnoty pro parametry.
Dokončení nasazení může trvat několik minut. Po úspěšném nasazení si webovou aplikaci prohlédněte, abyste se ujistili, že funguje. Ve webovém prohlížeči přejděte na: https://<your-site-name>.azurewebsites.net
Zobrazí se web, na který se však zatím neodeslaly žádné události.
Vytvoření odběru Event Gridu
Vytvořte odběr služby Event Grid typu, který chcete testovat, a jako koncový bod pro oznámení události dejte adresu URL z webové aplikace. Koncový bod pro webovou aplikaci musí obsahovat příponu /api/updates/
. Takže úplná adresa URL je https://<your-site-name>.azurewebsites.net/api/updates
Informace o vytváření odběrů pomocí webu Azure Portal najdete v tématu Vytvoření vlastní události – Azure Portal v dokumentaci ke službě Event Grid.
Vygenerování požadavku
Aktivujte událost, která vygeneruje provoz HTTP do koncového bodu webové aplikace. Pokud jste například vytvořili předplatné úložiště objektů blob, nahrajte nebo odstraňte objekt blob. Když se ve webové aplikaci zobrazí požadavek, zkopírujte text požadavku.
Nejprve se obdrží žádost o ověření předplatného; ignorujte všechny žádosti o ověření a zkopírujte požadavek na událost.
Ruční odeslání požadavku
Místně spusťte funkci Event Gridu. Záhlaví Content-Type
a aeg-event-type
hlavičky musí být nastaveny ručně, zatímco všechny ostatní hodnoty mohou být ponechány jako výchozí.
Pomocí testovacího nástroje HTTP vytvořte požadavek HTTP POST:
Content-Type: application/json
Nastavte záhlaví.aeg-event-type: Notification
Nastavte záhlaví.Vložte data RequestBin do textu požadavku.
Odešle požadavek HTTP POST do koncového bodu, který ručně spustí trigger Event Gridu.
Parametr functionName
musí být název zadaný v atributu FunctionName
.
Spustí se funkce triggeru Event Gridu a zobrazí protokoly podobné následujícímu příkladu:
Další kroky
Další informace o Službě Event Grid pomocí funkcí najdete v následujících článcích: