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

Odběry 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.

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

Systémový klíč

Koncový bod adresy URL, který vytvoříte, zahrnuje hodnotu systémového klíče. Systémový klíč je autorizační klíč, který musí být součástí adresy URL koncového bodu pro trigger Event Gridu. Následující část vysvětluje, jak získat systémový klíč.

Systémový klíč můžete získat pomocí následujícího rozhraní API (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}"
    }
  ]
}

Hlavní klíč aplikace funkcí můžete získat na kartě Nastavení aplikace funkcí na portálu.

Důležité

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 Autorizační klíče v referenčním článku o triggeru HTTP.

Vytvoření odběru událostí

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.

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

K vytvoření požadavku HTTP POST použijte nástroj, jako je Postman nebo curl :

  • Content-Type: application/json Nastavte záhlaví.

  • aeg-event-type: Notification Nastavte záhlaví.

  • Vložte data RequestBin do textu požadavku.

  • Publikujte na adresu URL funkce triggeru Event Gridu.

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

Parametr functionName musí být název zadaný v atributu FunctionName .

Následující snímky obrazovky ukazují hlavičky a text požadavku v Nástroji Postman:

Hlavičky v nástroji Postman

Text požadavku v Nástroji Postman

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: