Sdílet prostřednictvím


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ů:

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.

Snímek obrazovky s připojením k novému odběru událostí, které se aktivuje na portálu

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.

Snímek obrazovky s vytvářením odběru událostí s již definovaným koncovým bodem funkce

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:

  1. Vytvořte webovou aplikaci prohlížeče, která zachycuje zprávy událostí.
  2. Vytvořte odběr služby Event Grid, který odesílá události do aplikace prohlížeče.
  3. Vygenerujte požadavek a zkopírujte text požadavku z aplikace prohlížeče.
  4. 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.

Tlačítko pro nasazení šablony Resource Manageru do Azure

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.

Zobrazení nového webu

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.

Kopírování textu požadavku z webové aplikace

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.

    http://localhost:7071/runtime/webhooks/eventgrid?functionName={FUNCTION_NAME}
    

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:

Ukázkové protokoly funkcí triggeru Event Gridu

Další kroky

Další informace o Službě Event Grid pomocí funkcí najdete v následujících článcích: