Sdílet prostřednictvím


Ruční spuštění funkce neaktivované protokolem HTTP

Tento článek ukazuje, jak ručně spustit funkci neaktivovanou protokolem HTTP prostřednictvím speciálně naformátovaného požadavku HTTP.

V některých kontextech, jako je například během vývoje a řešení potíží, možná budete muset spustit funkci Azure Na vyžádání, která se nepřímo aktivuje. Mezi příklady nepřímých triggerů patří funkce podle plánu nebo funkcí, které se spouští jako výsledek událostí.

Postup popsaný v tomto článku je ekvivalentem použití funkce Test/Run na kartě Kód a testování funkce na webu Azure Portal. Pomocí editoru Visual Studio Code můžete také ručně spouštět funkce.

Požadavky

Příklady v tomto článku používají 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.

Definování umístění požadavku

Pokud chcete spustit funkci, která není aktivovaná protokolem HTTP, potřebujete způsob, jak odeslat požadavek do Azure ke spuštění funkce. Adresa URL použitá k provedení tohoto požadavku má konkrétní formulář.

Definování umístění požadavku: název hostitele + cesta ke složce + název funkce

  • Název hostitele: Veřejné umístění aplikace funkcí, které se skládá z názvu aplikace funkcí a azurewebsites.net nebo vlastní domény. Když pracujete se sloty nasazení používanými k přípravě, část názvu hostitele je název produkčního hostitele s připojeným -<slotname> k němu. V předchozím příkladu by adresa URL byla myfunctiondemos-staging.azurewebsites.net pro slot s názvem staging.
  • Cesta ke složce: Pokud chcete získat přístup k neaktivovaným funkcím http prostřednictvím požadavku HTTP, musíte požadavek odeslat prostřednictvím cesty admin/functions. Rozhraní API v cestě /admin/ jsou přístupná pouze s autorizací.
  • Název funkce: Název funkce, kterou chcete spustit.

Při žádostech o koncové body správce ve vaší aplikaci funkcí platí následující aspekty:

  • Při provádění požadavků na jakýkoli koncový bod v /admin/ rámci cesty musíte zadat hlavní klíč vaší aplikace v x-functions-key hlavičce požadavku.
  • Při místním spuštění se autorizace nevynucuje a hlavní klíč funkce se nevyžaduje. Funkci můžete přímo volat vynecháním x-functions-key záhlaví.
  • Při přístupu ke koncovým bodům aplikace funkcí v slotu nasazení se ujistěte, že v adrese URL požadavku použijete název hostitele specifického pro slot a hlavní klíč specifický pro slot.

Získání hlavního klíče

Hlavní klíč můžete získat z webu Azure Portal nebo pomocí Azure CLI.

Upozornění

Vzhledem ke zvýšeným oprávněním v aplikaci funkcí udělených hlavním klíčem byste tento klíč neměli sdílet s třetími stranami ani ho distribuovat v aplikaci. Klíč by se měl odesílat jenom do koncového bodu HTTPS.

  1. Na webu Azure Portal přejděte do aplikace funkcí, vyberte Klíče aplikace a pak _master klíč.

    Vyhledejte hlavní klíč, který chcete zkopírovat.

  2. V části Upravit klíč zkopírujte hodnotu klíče do schránky a pak vyberte OK.

    Zkopírujte hlavní klíč do schránky.

Volání funkce

  1. Na webu Azure Portal přejděte na začátek aplikace funkcí a zvolte svou funkci.

  2. Vyberte Kód + Test a pak vyberte Protokoly. Když funkci spustíte ručně z testovacího nástroje HTTP, zobrazí se zprávy z funkce, které jsou zde zaprotokolovány.

    Snímek obrazovky znázorňující stránku Code + Test se zprávou ze zobrazených protokolů

  3. V testovacím nástroji HTTP použijte umístění požadavku, které jste definovali jako adresu URL požadavku, ujistěte se, že metoda požadavku HTTP je POST, a zahrňte tyto dvě hlavičky požadavku:

    Key Hodnota
    x-functions-key Hodnota hlavního klíče vložená ze schránky.
    Content-Type application/json
  4. Ujistěte se, že datová část nebo text požadavku POST je { "input": "<TRIGGER_INPUT>" }. Konkrétní <TRIGGER_INPUT> zadáte závisí na typu triggeru, ale může to být pouze řetězec, číselná nebo logická hodnota. Pro služby, které používají datové části JSON, jako je Azure Service Bus, by testovací datová část JSON měla být řídicí a serializovaná jako řetězec.

    Pokud nechcete funkci předávat vstupní data, musíte jako text požadavku POST zadat prázdný slovník {} . Další informace najdete v referenčním článku pro konkrétní trigger jiného typu než HTTP.

  5. Odešlete požadavek HTTP POST. Odpověď by měla být odpověď HTTP 202 (Přijato).

  6. V dalším kroku se vraťte ke své funkci na webu Azure Portal. Zkontrolujte protokoly a uvidíte zprávy přicházející z ručního volání funkce.

    Prohlédněte si protokoly a podívejte se na výsledky hlavního testu klíčů.

Způsob, jakým přistupujete k datům odesílaným do triggeru, závisí na typu triggeru a jazyku funkce. Další informace najdete v referenčních příkladech konkrétního triggeru.

Další kroky