Nem HTTP által aktivált függvény manuális futtatása

Ez a cikk bemutatja, hogyan futtathat manuálisan egy nem HTTP-aktivált függvényt speciálisan formázott HTTP-kérésen keresztül.

Bizonyos környezetekben, például a fejlesztés és a hibaelhárítás során előfordulhat, hogy "igény szerinti" Azure-függvényt kell futtatnia, amely közvetett módon aktiválódik. A közvetett eseményindítók közé tartoznak például az ütemezési függvények vagy az események eredményeként futó függvények.

A Postmant a következő példában használjuk, de a cURL, a Fiddler vagy bármely más hasonló eszköz használatával HTTP-kéréseket küldhet.

A cikkben ismertetett eljárás egyenértékű egy függvény Code + Test lapjának Tesztelés/Futtatás funkciójával az Azure Portalon. A Visual Studio Code használatával manuálisan is futtathat függvényeket.

A kérelem helyének meghatározása

Nem HTTP-aktivált függvény futtatásához módot kell adnia arra, hogy kérést küldjön az Azure-nak a függvény futtatásához. A kérés létrehozásához használt URL-cím egy adott űrlapot használ.

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

  • Gazdagép neve: A függvényalkalmazás nyilvános helye, amely a függvényalkalmazás nevéből, valamint azurewebsites.net vagy az egyéni tartományból áll. Amikor az előkészítéshez használt üzembehelyezési pontokkal dolgozik, a gazdagépnév része az éles állomás neve, amelyhez -<slotname> hozzá van fűzve. Az előző példában az URL-cím myfunctiondemos-staging.azurewebsites.net egy .staging
  • Mappa elérési útja: Ha HTTP-kérésen keresztül szeretné elérni a nem HTTP-aktivált függvényeket, a kérést az elérési úton admin/functionskell elküldenie. Az elérési út alatti /admin/ API-k csak engedéllyel érhetők el.
  • Függvény neve: A futtatni kívánt függvény neve.

A következő szempontok vonatkoznak a rendszergazdai végpontokra irányuló kérésekre a függvényalkalmazásban:

  • Amikor kéréseket küld az /admin/ elérési út bármely végpontjára, meg kell adnia az alkalmazás főkulcsát a x-functions-key kérés fejlécében.
  • Helyi futtatáskor a rendszer nem kényszeríti ki az engedélyezést, és a függvény főkulcsa nem szükséges. Közvetlenül meghívhatja a fejlécet kihagyó függvénytx-functions-key.
  • Amikor függvényalkalmazás-végpontokat ér el egy üzembehelyezési ponton, győződjön meg arról, hogy a pontspecifikus gazdagépnevet használja a kérelem URL-címében, valamint a pontspecifikus főkulcsot.

A főkulcs lekérése

A főkulcsot az Azure Portalról vagy az Azure CLI használatával szerezheti be.

Figyelem

A főkulcs által megadott, a függvényalkalmazásban megadott emelt szintű engedélyek miatt nem szabad megosztania ezt a kulcsot harmadik felekkel, és nem terjesztheti azt egy alkalmazásban. A kulcsot csak HTTPS-végpontnak kell elküldeni.

  1. Lépjen a függvényalkalmazásra az Azure Portalon, válassza az Alkalmazáskulcsok lehetőséget, majd a _master kulcsot.

    Locate the master key to copy.

  2. A Kulcs szerkesztése szakaszban másolja a kulcs értékét a vágólapra, majd kattintson az OK gombra.

    Copy the master key to the clipboard.

A függvény meghívása

  1. Az Azure Portalon navigáljon a függvényalkalmazás tetejére, és válassza ki a függvényt.

  2. Válassza a Kód + Teszt lehetőséget, majd a Naplók lehetőséget. Az itt naplózott függvény üzenetei akkor láthatók, amikor manuálisan futtatja a függvényt a Postmanből.

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

  3. Nyissa meg a Postmant (vagy azzal egyenértékű HTTP-szerkesztő eszközt), és írja be a kérés helyét az URL-szövegmezőbe.

  4. Győződjön meg arról, hogy a HTTP-metódus POST értékre van állítva, válassza a Fejlécek lapot, és adja hozzá a következő két fejléckulcs-érték párot:

    Kulcs Érték
    x-functions-key A vágólapról beillesztett főkulcsérték.
    Content-Type application/json

    Postman headers settings.

  5. Válassza a Törzs fület, és írja be { "input": "<TRIGGER_INPUT>" } a kérés törzsét.

    Postman body settings.

    <TRIGGER_INPUT> A megadott megadott érték az eseményindító típusától függ, de csak sztring, numerikus vagy logikai érték lehet. A JSON-hasznos adatokat használó szolgáltatások, például az Azure Service Bus esetében a JSON-hasznos adatokat sztringként kell kiszúrni és szerializálni.

    Ha nem szeretne bemeneti adatokat átadni a függvénynek, akkor is üres szótárat {} kell megadnia a POST-kérelem törzseként. További információt az adott nem HTTP-eseményindító referenciacikkében talál.

  6. Válassza az Küldés lehetőséget.

    Send a request with Postman.

    A Postman ezután a 202 Elfogadva állapotot jelenti.

  7. Ezután térjen vissza a függvényhez az Azure Portalon. Tekintse át a naplókat, és a függvény manuális hívásából érkező üzeneteket láthatja.

    View the logs to see the master key test results.

Az eseményindítónak küldött adatok elérésének módja az eseményindító típusától és a függvény nyelvétől függ. További információkért tekintse meg az adott eseményindítóra vonatkozó hivatkozási példákat.

Következő lépések