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

Nástroj Postman se používá v následujícím příkladu, ale k odesílání požadavků HTTP můžete použít cURL, Fiddler nebo jakýkoli jiný nástroj.

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.

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ář.

Define the request location: host name + folder path + function name

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

    Locate the master key to copy.

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

    Copy the master key to the clipboard.

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 Postmanu, zobrazí se zprávy z této funkce, které jsou zaprotokolovány.

    Screenshot that shows the 'Code + Test' page with a message from the logs displayed.

  3. Otevřete nástroj Postman (nebo ekvivalentní nástroj pro psaní HTTP) a do textového pole adresy URL zadejte umístění požadavku.

  4. Ujistěte se, že je metoda HTTP nastavená na POST, vyberte kartu Záhlaví a přidejte tyto dva páry klíč-hodnota záhlaví:

    Key Hodnota
    x-functions-key Hodnota hlavního klíče vložená ze schránky.
    Content-Type application/json

    Postman headers settings.

  5. Vyberte kartu Text a zadejte { "input": "<TRIGGER_INPUT>" } jako text požadavku.

    Postman body settings.

    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.

  6. Vyberte Odeslat.

    Send a request with Postman.

    Postman pak hlásí stav 202 Přijato.

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

    View the logs to see the master key test results.

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