Oktatóanyag: Azure Functions aktiválása blobtárolókon esemény-előfizetés használatával

Ha a Blob Storage-eseményindító korábbi verzióit használja az Azure Functions használatával, gyakran késik a végrehajtás, mert az eseményindító lekérdezi a blobtárolót a frissítésekért. Csökkentheti a késést, ha egy esemény-előfizetés használatával aktiválja a függvényt ugyanarra a tárolóra. Az esemény-előfizetés az Event Grid-infrastruktúrával továbbítja a tároló módosításait. Ezt a képességet a legújabb Azure Functions-bővítményekkel valósíthatja meg.

Ez a cikk bemutatja, hogyan hozhat létre olyan függvényt, amely egy blob tárolóhoz való hozzáadásakor felmerülő események alapján fut. A Visual Studio Code-ot fogja használni a helyi fejlesztéshez, és ellenőrizni fogja, hogy a függvény helyileg működik-e, mielőtt üzembe helyezené a projektet az Azure-ban.

  • Hozzon létre egy általános 2-s tárfiókot az Azure Storage-ban.
  • Hozzon létre egy tárolót a Blob Storage-ban.
  • Eseményvezérelt Blob Storage-függvény létrehozása.
  • Esemény-előfizetés létrehozása blobtárolóhoz.
  • Helyi hibakeresés ngrok használatával fájlok feltöltésével.
  • Üzembe helyezés az Azure-ban, és egy szűrt esemény-előfizetés létrehozása.

Fontos

Ez a cikk lapokat használ a Node.js programozási modell több verziójának támogatásához. A v4-modell általánosan elérhető, és úgy lett kialakítva, hogy rugalmasabb és intuitívabb felhasználói élményt nyújtson JavaScript- és TypeScript-fejlesztők számára. A v4-modell működésével kapcsolatos további információkért tekintse meg az Azure Functions Node.js fejlesztői útmutatóját. A v3 és a v4 közötti különbségekről a migrálási útmutatóban olvashat bővebben.

Előfeltételek

  • Az ngrok segédprogram, amely lehetővé teszi, hogy az Azure meghívja a helyileg futó függvényt.

  • Azure Storage-bővítmény a Visual Studio Code-hoz, minimálisan 5.x-es verzió.

Feljegyzés

A Visual Studio Code Azure Storage-bővítménye jelenleg előzetes verzióban érhető el.

Tárfiók létrehozása

Ha esemény-előfizetést szeretne használni az Azure Storage-ban, szüksége lesz egy általános célú v2-tárfiókra. Ezt a tárfiókot alapértelmezés szerint a Visual Studio Code-projektből hozhatja létre, ha telepítve van az Azure Storage-bővítmény.

  1. A Visual Studio Code-ban nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), írja be a következőt Azure Storage: Create Storage Account...: A parancssorban adja meg a következő információkat:

    Adatkérés Művelet
    Adja meg az új tárfiók nevét Adjon meg egy globálisan egyedi nevet. A tárfiókok nevének 3–24 karakter hosszúságúnak kell lennie, csak kisbetűkkel és számokkal. A könnyebb azonosítás érdekében ugyanazt a nevet fogjuk használni az erőforráscsoporthoz és a függvényalkalmazás nevéhez.
    Új erőforrások helyének kiválasztása A jobb teljesítmény érdekében válasszon egy Önhöz közeli régiót.

    A bővítmény létrehoz egy általános célú v2-tárfiókot a megadott névvel. Ugyanezt a nevet használja a tárfiókot tartalmazó erőforráscsoport is.

  2. A tárfiók létrehozása után nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), és írja be a következőt Azure Storage: Create Blob Container...: A parancssorban adja meg a következő információkat:

    Adatkérés Művelet
    Erőforrás kiválasztása Válassza ki a létrehozott tárfiókot.
    Adja meg az új blobtároló nevét Adja meg samples-workitemsa kódprojektben hivatkozott tárolónevet.

Most, hogy létrehozta a blobtárolót, létrehozhatja a tárolón aktiváló függvényt és az eseményeket a függvénynek kézbesítő esemény-előfizetést is.

Blob által aktivált függvény létrehozása

Amikor a Visual Studio Code-tal létrehoz egy Blob Storage által aktivált függvényt, egy új projektet is létrehoz. A függvényt úgy kell szerkesztenie, hogy egy esemény-előfizetést használjon forrásként a szokásos lekérdezési tároló használata helyett.

  1. Nyissa meg a függvényalkalmazást a Visual Studio Code-ban.

  2. Nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), írja be Azure Functions: Create Function..., majd válassza az Új projekt létrehozása lehetőséget.

  3. A projekt-munkaterületen válassza ki a címtár helyét. Győződjön meg arról, hogy létrehoz egy új mappát, vagy kiválaszt egy üres mappát a projekt-munkaterülethez.

    Ne válasszon olyan projektmappát, amely már része egy munkaterületnek.

  4. A parancssorban adja meg a következő információkat:

    Adatkérés Művelet
    Nyelv kiválasztása Válassza ki C#.
    .NET-futtatókörnyezet kiválasztása Válassza ki .NET 6.0 Isolated LTS az izolált feldolgozói folyamatban vagy .NET 6.0 LTS a folyamatban való futtatáshoz.
    Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger.
    Függvénynév megadása Írja be BlobTriggerEventGrid.
    Névtér megadása Írja be My.Functions.
    Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting.
    Tárfiók kiválasztása Válassza ki a listából létrehozott tárfiókot.
    Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems.
    Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window.
    Adatkérés Művelet
    Nyelv kiválasztása Válassza ki Python.
    Python-értelmező kiválasztása virtuális környezet létrehozásához Válassza ki az előnyben részesített Python-értelmezőt. Ha egy lehetőség nem jelenik meg, adja meg a Python-bináris teljes elérési útját.
    Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger.
    Függvénynév megadása Írja be BlobTriggerEventGrid.
    Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting.
    Tárfiók kiválasztása Válassza ki a listából létrehozott tárfiókot.
    Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems.
    Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window.
    Adatkérés Művelet
    Nyelv kiválasztása Válassza ki Java.
    Java-verzió kiválasztása Válassza ki vagy Java 8válassza ki Java 11 azt a Java-verziót, amelyen a függvények futnak az Azure-ban, és amelyet helyileg ellenőrzött.
    Csoportazonosító megadása Válassza ki com.function.
    Összetevő-azonosító megadása Válassza ki BlobTriggerEventGrid.
    Verzió megadása Válassza ki 1.0-SNAPSHOT.
    Adja meg a csomag nevét Válassza ki com.function.
    Alkalmazásnév megadása Fogadja el a létrehozott nevet a következővel kezdődően BlobTriggerEventGrid: .
    A Java-projekt buildelési eszközének kiválasztása Válassza ki Maven.
    Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window.
    Adatkérés Művelet
    A függvényprojekt nyelvének kiválasztása Válassza ki TypeScript.
    TypeScript programozási modell kiválasztása Válassza ki Model V4.
    Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger.
    Függvénynév megadása Írja be BlobTriggerEventGrid.
    Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting.
    Tárfiók kiválasztása Válassza ki a létrehozott tárfiókot.
    Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems.
    Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window.
    Adatkérés Művelet
    A függvényprojekt nyelvének kiválasztása Válassza ki JavaScript.
    JavaScript-programozási modell kiválasztása Válassza ki Model V4.
    Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger.
    Függvénynév megadása Írja be BlobTriggerEventGrid.
    Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting.
    Tárfiók kiválasztása Válassza ki a létrehozott tárfiókot.
    Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems.
    Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window.
    Adatkérés Művelet
    A függvényprojekt nyelvének kiválasztása Válassza ki PowerShell.
    Sablon kiválasztása a projekt első függvényéhez Válassza ki Azure Blob Storage trigger.
    Függvénynév megadása Írja be BlobTriggerEventGrid.
    Válassza ki a beállítást a "local.settings.json" elemből Válassza ki Create new local app setting.
    Tárfiók kiválasztása Válassza ki a létrehozott tárfiókot.
    Ez az az elérési út a tárfiókban, amelyet az eseményindító figyelni fog Fogadja el az alapértelmezett értéket samples-workitems.
    Válassza ki, hogyan szeretné megnyitni a projektet Válassza ki Open in current window.
  5. A kérés megjelenése után válassza a Tárfiók>hozzáadása a munkaterülethez lehetőséget.

Az egyszerűség kedvéért ez az oktatóanyag ugyanazt a tárfiókot használja újra a függvényalkalmazással. Éles környezetben azonban érdemes lehet külön tárfiókot használni a függvényalkalmazással. További információért lásd az Azure Functions tárolási szempontjait.

A Storage-bővítmény frissítése

Az Event Grid-alapú Blob Storage-eseményindító használatához a függvénynek legalább 5.x-es verzióra van szüksége a Storage-bővítményhez.

Ha frissíteni szeretné a projektet a szükséges bővítményverzióval, futtassa a következő parancsot a terminálablakban: dotnet add package

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs --version 6.1.0
  1. Nyissa meg a host.json projektfájlt, és vizsgálja meg az extensionBundle elemet.

  2. Ha extensionBundle.version nem, 3.3.0 akkor cserélje le extensionBundle a legújabbra:

    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
    

A függvény frissítése események használatára

A BlobTriggerEventGrid.cs fájlban adja hozzá Source = BlobTriggerSource.EventGrid a Blob trigger attribútum paramétereit, például:

[Function("BlobTriggerCSharp")]
public async Task Run([BlobTrigger("samples-workitems/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")] Stream myBlob, string name, FunctionContext executionContext)
{
    var logger = executionContext.GetLogger("BlobTriggerCSharp");
    logger.LogInformation($"C# Blob trigger function Processed blob\n Name: {name} \n Size: {myBlob.Length} Bytes");
}

A függvény létrehozása után a function.json konfigurációs fájlban adja hozzá "source": "EventGrid" a myBlob kötést, például:

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "samples-workitems/{name}",
      "source": "EventGrid",
      "connection": "<NAMED_STORAGE_CONNECTION>"
    }
  ]
}
  1. A létrehozott Function.java fájlban cserélje le a tartalmat a következő kódra, és nevezze át a fájlt a következőre BlobTriggerEventGrid.java:

    package com.function;
    
    import com.microsoft.azure.functions.annotation.*;
    import com.microsoft.azure.functions.*;
    
    /**
    * Azure Functions with Azure Blob trigger.
    */
    public class BlobTriggerEventGrid {
        /**
        * This function will be invoked when a new or updated blob is detected at the specified path. The blob contents are provided as input to this function.
        */
        @FunctionName("BlobTriggerEventGrid")
        @StorageAccount("glengatesteventgridblob_STORAGE")
        public void run(
            @BlobTrigger(name = "content", path = "samples-workitems/{name}", dataType = "binary", source = "EventGrid" ) byte[] content,
            @BindingName("name") String name,
            final ExecutionContext context
        ) {
              context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name + "\n  Size: " + content.length + " Bytes");
          }
    }
    
  2. Távolítsa el a társított egységtesztfájlt, amely már nem vonatkozik az új eseményindító típusára.

A függvény létrehozása után adja hozzá source: "EventGrid" az objektumot a options TypeScript-fájlban, például:

import { app, InvocationContext } from '@azure/functions';

export async function storageBlobTrigger1(blob: Buffer, context: InvocationContext): Promise<void> {
    context.log(
        `Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
    );
}

app.storageBlob('storageBlobTrigger1', {
    path: 'samples-workitems/{name}',
    connection: 'MyStorageAccountAppSetting',
    source: 'EventGrid',
    handler: storageBlobTrigger1,
});

A függvény létrehozása után adja hozzá source: "EventGrid" az options objektumot a JavaScript-fájlban, például:

const { app } = require('@azure/functions');

app.storageBlob('storageBlobTrigger1', {
    path: 'samples-workitems/{name}',
    connection: 'MyStorageAccountAppSetting',
    source: 'EventGrid',
    handler: (blob, context) => {
        context.log(
            `Storage blob function processed blob "${context.triggerMetadata.name}" with size ${blob.length} bytes`
        );
    },
});

A függvény létrehozása után a function.json konfigurációs fájlban adja hozzá "source": "EventGrid" a myBlob kötést, például:

{
    "bindings": [
        {
            "name": "myblob",
            "type": "blobTrigger",
            "direction": "in",
            "path": "samples-workitems/{name}",
            "source": "EventGrid",
            "connection": "<NAMED_STORAGE_CONNECTION>"
        }
    ]
}

Helyi hibakeresés indítása

Az Event Grid ellenőrzi a végpont URL-címét, amikor esemény-előfizetést hoz létre az Azure Portalon. Ez az ellenőrzés azt jelenti, hogy a helyi hibakereséshez szükséges esemény-előfizetés létrehozása előtt a függvénynek helyileg kell futnia az ngrok segédprogram által engedélyezett táveléréssel. Ha a helyi függvénykód nem fut és érhető el az Azure-hoz, nem fogja tudni létrehozni az esemény-előfizetést.

A blob-eseményindító végpontjának meghatározása

Ha a függvény helyileg fut, az eseményvezérelt blobtároló-eseményindítóhoz használt alapértelmezett végpont az alábbi URL-címhez hasonlóan néz ki:

http://localhost:7071/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid
http://localhost:7071/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid

Mentse ezt az elérési utat, amelyet később az esemény-előfizetések végponti URL-címeinek létrehozásához fog használni. Ha más nevet használt a Blob Storage által aktivált függvényhez, módosítania kell az functionName értéket a lekérdezési sztringben.

Feljegyzés

Mivel a végpont egy Blob Storage-eseményindító eseményeit kezeli, a végpont elérési útja tartalmazza blobsa következőket: . Az Event Grid-eseményindító végponti URL-címe ehelyett az elérési úton található eventgrid .

Ngrok futtatása

A számítógépen hibakeresés alatt álló függvénybe való betöréshez meg kell adnia egy módot az Azure Event Grid számára, hogy kommunikáljon a helyi számítógépen futó függvényekkel.

Az ngrok segédprogram egy véletlenszerűen létrehozott proxykiszolgáló-címre továbbítja a külső kéréseket a helyi számítógépen található adott címre és portra. segítségével meghívhatja a számítógépen futó függvény webhook-végpontját.

  1. Indítsa el az ngrokot a következő paranccsal:

    ngrok.exe http http://localhost:7071
    

    A segédprogram elindulásakor a parancsablaknak az alábbi képernyőképhez hasonlóan kell kinéznie:

    Screenshot that shows the Command Prompt after starting the

  2. Másolja ki az ngrok futtatásakor létrehozott HTTPS URL-címet. Ez az érték az ngrok használatával közzétett webhook-végpont meghatározására szolgál a számítógépen.

Fontos

Ezen a ponton, ne állj le ngrok. Minden indításkor ngroka HTTPS URL-cím egy másik értékkel lesz újragenerálva. Mivel az esemény-előfizetés végpontja nem módosítható, minden futtatáskor ngroklétre kell hoznia egy új esemény-előfizetést.

Ha nem hoz létre ngrok-fiókot, a maximális ngrok-munkamenet időtartama legfeljebb két óra lehet.

A végpont URL-címének létrehozása

Az esemény-előfizetésben használt végpont három különböző részből áll, egy előtagú kiszolgálónévből, egy elérési útból és egy lekérdezési sztringből. Az alábbi táblázat a következő részeket ismerteti:

URL-rész Leírás
Előtag és kiszolgálónév Ha a függvény helyileg fut, az előtaggal rendelkező https:// kiszolgálónév az ngrok által létrehozott továbbítási URL-címből származik. A localhost URL-címben az ngrok URL-cím helyébe lép http://localhost:7071. Az Azure-ban való futtatáskor ehelyett a közzétett függvényalkalmazás-kiszolgálót fogja használni, amely általában az űrlapon https://<FUNCTION_APP_NAME>.azurewebsites.netvan.
Elérési út A végpont URL-címének elérési útja a korábban másolt localhost URL-címből származik, és egy Blob Storage-eseményindítóhoz hasonlóan /runtime/webhooks/blobs néz ki. Az Event Grid-eseményindító elérési útja a következő: /runtime/webhooks/EventGrid
Lekérdezési sztring A .NET-et is beleértve minden nyelv esetében izolálta a functionName=Host.Functions.BlobTriggerEventGrid paramétert, kivéve a .NET Folyamatban, amelynek a lekérdezési sztringben kell lennie functionName=BlobTriggerEventGrid , megadja az eseményt kezelő függvény nevét. Ha más nevet használt a függvényhez, ezt az értéket módosítania kell. Helyi futtatáskor nincs szükség hozzáférési kulcsra. Az Azure-ban való futtatáskor egy paramétert is fel kell vennie code= az URL-címre, amely tartalmaz egy kulcsot, amelyet a portálról szerezhet be.

Az alábbi képernyőképen egy példa látható arra, hogyan kell kinéznie a végső végpont URL-címének egy Blob Storage-eseményindító használatakor BlobTriggerEventGrid:

Endpoint selection

Hibakeresés indítása

Ha az ngrok már fut, indítsa el a helyi projektet az alábbiak szerint:

  1. Állítson be egy töréspontot a függvényben a naplózást kezelő sorban.

  2. Indítsa el a hibakeresési munkamenetet.

    Nyisson meg egy új terminált, és futtassa a következő mvn parancsot a hibakeresési munkamenet elindításához.

    mvn azure-functions:run -DenableDebug
    

    Hibakeresési munkamenet indításához nyomja le az F5 billentyűt.

A kód futtatásával és a továbbítási kérések ngrokálásával ideje létrehozni egy esemény-előfizetést a blobtárolóba.

Az esemény-előfizetés létrehozása

Az Azure Event Grid által üzemeltetett esemény-előfizetés a csatolt blobtároló változásai alapján hoz létre eseményeket. Ez az esemény ezután a függvény eseményindítóján található webhook-végpontra kerül. Az esemény-előfizetés létrehozása után a végpont URL-címe nem módosítható. Ez azt jelenti, hogy miután végzett a helyi hibakereséssel (vagy ha újraindítja az ngrokot), törölnie kell és újra létre kell hoznia az esemény-előfizetést.

  1. A Visual Studio Code-ban válassza az Azure ikont a Tevékenységsávon. Az Erőforrások területen bontsa ki előfizetését, bontsa ki a Tárfiókokat, kattintson a jobb gombbal a korábban létrehozott tárfiókra, és válassza a Megnyitás a portálon lehetőséget.

  2. Jelentkezzen be az Azure Portalra , és jegyezze fel a tárfiók erőforráscsoportját . A többi erőforrást ugyanabban a csoportban fogja létrehozni, hogy egyszerűbben törölhesse az erőforrásokat, amikor elkészült.

  3. válassza az Események lehetőséget a bal oldali menüből.

    Add storage account event

  4. Az Események ablakban válassza az + Esemény-előfizetés gombot, és adja meg az alábbi táblázat értékeit az Alapszintű lapra:

    Beállítás Ajánlott érték Leírás
    Név myBlobLocalNgrokEventSub Az esemény-előfizetést azonosító név. A névvel gyorsan megtalálhatja az esemény-előfizetést.
    Eseményséma Event Grid-séma Használja az alapértelmezett sémát az eseményekhez.
    Rendszertémakör neve samples-workitems-blobs A témakör neve, amely a tárolót jelöli. A témakör az első előfizetéssel jön létre, és a jövőbeli esemény-előfizetésekhez fogja használni.
    Szűrés eseménytípusokra Blob létrehozva
    Végpont típusa Webes horog A Blob Storage-eseményindító webhookvégpontot használ. Az Azure Functionst egy Event Grid-eseményindítóhoz használná.
    Végpont Az ngrok-alapú URL-végpont Használja a korábban meghatározott ngrok-alapú URL-végpontot.
  5. Válassza a Kijelölés megerősítése lehetőséget a végpont URL-címének érvényesítéséhez.

  6. Válassza a Létrehozás lehetőséget az esemény-előfizetés létrehozásához.

Fájl feltöltése a tárolóba

Ha az esemény-előfizetés működik, és a kódprojekt és az ngrok továbbra is fut, feltölthet egy fájlt a tárolóba a függvény aktiválásához. A Visual Studio Code használatával feltölthet egy fájlt a számítógépről a Blob Storage-tárolóba.

  1. A Visual Studio Code-ban nyissa meg a parancskatalógust (nyomja le az F1 billentyűt), és írja be a következőt Azure Storage: Upload Files...:

  2. A Megnyitás párbeszédpanelen válasszon ki egy fájlt, lehetőleg olyan bináris képfájlt, amely nem túl nagy, válassza a Feltöltés lehetőséget.

  3. Amikor a rendszer kéri, adja meg az alábbi információkat:

    Beállítás Ajánlott érték Leírás
    Erőforrás kiválasztása Tárfiók neve Válassza ki az előző lépésben létrehozott tárfiók nevét.
    Erőforrástípus kiválasztása Blobtárolók Blobtárolóba tölt fel.
    Blobtároló kiválasztása samples-workitems Ez az érték az előző lépésben létrehozott tároló neve.
    Adja meg a feltöltés célkönyvtárát alapértelmezett Csak fogadja el a tárológyökér alapértelmezett értékét /.

Ez a parancs feltölt egy fájlt a számítógépről az Azure-beli tárolóba. Ezen a ponton a futó ngrok-példánynak jelentenie kell egy kérés továbbítását. A hibakeresési munkamenet func.exe kimenetében is látni fogja, hogy a függvény elindult. Remélhetőleg ezen a ponton a hibakeresési munkamenet arra vár, ahol beállította a töréspontot.

A projekt közzététele az Azure-ban

Most, hogy sikeresen ellenőrizte a függvénykódot helyileg, ideje közzétenni a projektet egy új függvényalkalmazásban az Azure-ban.

A függvényalkalmazás létrehozása

Az alábbi lépések létrehozzák az Azure-ban szükséges erőforrásokat, és üzembe helyezik a projektfájlokat.

  1. A parancspalettán adja meg az Azure Functionst: Függvényalkalmazás létrehozása az Azure-ban... (Speciális).

  2. Az utasításokat követve adja meg ezt az információt:

    Adatkérés Kiválasztás
    Adjon meg egy globálisan egyedi nevet az új függvényalkalmazásnak. Írjon be egy globálisan egyedi nevet, amely azonosítja az új függvényalkalmazást, majd válassza az Enter lehetőséget. A függvényalkalmazás nevéhez használható érvényes karakterek a következők: a-z, 0-9 és -. Írja le ezt a nevet; az új végpont URL-címének létrehozásakor később szüksége lesz rá.
    Válasszon ki egy futtatókörnyezeti vermet. Válassza ki azt a nyelvi verziót, amelyen helyileg fut.
    Válasszon ki egy operációs rendszert. Válassza a Linux vagy a Windows lehetőséget. A Python-alkalmazásoknak Linuxon kell futniuk.
    Válasszon egy erőforráscsoportot az új erőforrásokhoz. Válassza ki a tárfiókkal létrehozott erőforráscsoport nevét, amelyet korábban a portálon is feljegyzett.
    Válasszon egy helyet az új erőforrásokhoz. Válasszon ki egy helyet egy Önhöz közeli régióban vagy a függvények által elérhető egyéb szolgáltatások közelében.
    Válasszon egy üzemeltetési tervet. Válassza a Kiszolgáló nélküli használat csomag üzemeltetése lehetőséget, ahol csak a függvények futtatásakor kell fizetnie.
    Válasszon ki egy tárfiókot. Válassza ki a használt meglévő tárfiók nevét.
    Válasszon egy alkalmazás-Elemzések erőforrást az alkalmazáshoz. Válassza az Új alkalmazás létrehozása Elemzések erőforrást, és a parancssorba írja be a futtatókörnyezet adatainak a függvényekből való tárolásához használt példány nevét.

    A függvényalkalmazás létrehozása és az üzembe helyezési csomag alkalmazása után megjelenik egy értesítés. Válassza a Kimenet megtekintése lehetőséget az értesítésben a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure-erőforrásokat is.

A függvénykód üzembe helyezése

Fontos

A meglévő függvényalkalmazásban való üzembe helyezés mindig felülírja az alkalmazás tartalmát az Azure-ban.

  1. Az Azure-tevékenység Erőforrások területén keresse meg az imént létrehozott függvényalkalmazás-erőforrást, kattintson a jobb gombbal az erőforrásra, és válassza az Üzembe helyezés függvényalkalmazáshoz... lehetőséget.

  2. Amikor a rendszer kéri a korábbi üzemelő példányok felülírását, válassza az Üzembe helyezés lehetőséget a függvénykód új függvényalkalmazás-erőforrásban való üzembe helyezéséhez.

  3. Az üzembe helyezés befejezése után válassza a Kimenet megtekintése lehetőséget a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure-erőforrásokat is. Ha nem jelenik meg az értesítés, a jobb alsó sarokban lévő harang ikont választva ismét láthatja.

    Screenshot of the View Output window.

Alkalmazásbeállítások közzététele

Mivel a local.settings.json helyi beállításai nincsenek automatikusan közzétéve, most fel kell töltenie őket, hogy a függvény megfelelően fusson az Azure-ban.

A parancspalettán adja meg az Azure Functions: Helyi Gépház feltöltése..., majd a Select a resource. prompt (Erőforrás kiválasztása) mezőben válassza ki a függvényalkalmazás nevét.

Az esemény-előfizetés újbóli létrehozása

Most, hogy a függvényalkalmazás az Azure-ban fut, létre kell hoznia egy új esemény-előfizetést. Ez az új esemény-előfizetés a függvény végpontját használja az Azure-ban. Szűrőt is hozzáad az esemény-előfizetéshez, így a függvény csak akkor aktiválódik, ha JPEG -fájlokat (.jpg) adnak hozzá a tárolóhoz. Az Azure-ban a végpont URL-címe egy hozzáférési kulcsot is tartalmaz, amely megakadályozza, hogy az Event Gridtől eltérő szereplők hozzáférjenek a végponthoz.

A blobbbővítmény kulcsának lekérése

  1. A Visual Studio Code-ban válassza az Azure ikont a Tevékenységsávon. Az Erőforrások területen bontsa ki előfizetését, bontsa ki a Függvényalkalmazást, kattintson a jobb gombbal a létrehozott függvényalkalmazásra, és válassza a Megnyitás a portálon lehetőséget.

  2. A bal oldali menü Függvények területén válassza az Alkalmazáskulcsok lehetőséget.

  3. A Rendszerkulcsok csoportban válassza ki a blobs_extension nevű kulcsot, és másolja ki a kulcs értékét.

Ezt az értéket az új végpont URL-címének lekérdezési sztringjében fogja szerepeltetni.

A végpont URL-címének létrehozása

Hozzon létre egy új végpont URL-címet a Blob Storage-eseményindítóhoz az alábbi példa alapján:

https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid&code=<BLOB_EXTENSION_KEY>
https://<FUNCTION_APP_NAME>.azurewebsites.net/runtime/webhooks/blobs?functionName=Host.Functions.BlobTriggerEventGrid&code=<BLOB_EXTENSION_KEY>

Ebben a példában cserélje le <FUNCTION_APP_NAME> a függvényalkalmazás nevére, és cserélje le <BLOB_EXTENSION_KEY> a portálról kapott értékre. Ha más nevet használt a függvényhez, szükség szerint módosítania kell a lekérdezési sztringet functionName is.

Szűrt esemény-előfizetés létrehozása

Mivel egy esemény-előfizetés végponti URL-címe nem módosítható, új esemény-előfizetést kell létrehoznia. A régi esemény-előfizetést is törölnie kell, mivel az nem használható újra.

Ezúttal a szűrőt is belefoglalja az esemény-előfizetésbe, hogy csak JPEG-fájlok (*.jpg) aktiválják a függvényt.

  1. A Visual Studio Code-ban válassza az Azure ikont a Tevékenységsávon. Az Erőforrások területen bontsa ki előfizetését, bontsa ki a Tárfiókokat, kattintson a jobb gombbal a korábban létrehozott tárfiókra, és válassza a Megnyitás a portálon lehetőséget.

  2. Az Azure Portalon válassza az Események lehetőséget a bal oldali menüből.

  3. Az Események ablakban válassza ki a régi ngrok-alapú esemény-előfizetést, és válassza a Mentés törlése>lehetőséget. Ez a művelet eltávolítja a régi esemény-előfizetést.

  4. Válassza az + Esemény-előfizetés gombot, és adja meg az alábbi táblázat értékeit az Alapszintű lapra:

    Beállítás Ajánlott érték Leírás
    Név myBlobAzureEventSub Az esemény-előfizetést azonosító név. A névvel gyorsan megtalálhatja az esemény-előfizetést.
    Eseményséma Event Grid-séma Használja az alapértelmezett sémát az eseményekhez.
    Szűrés eseménytípusokra Blob létrehozva
    Végpont típusa Webes horog A Blob Storage-eseményindító webhookvégpontot használ. Az Azure Functionst egy Event Grid-eseményindítóhoz használná.
    Végpont Az új Azure-alapú URL-végpont Használja a létrehozott URL-végpontot, amely tartalmazza a kulcs értékét.
  5. Válassza a Kijelölés megerősítése lehetőséget a végpont URL-címének érvényesítéséhez.

  6. Válassza a Szűrők fület, a Tárgyszűrők csoportban jelölje be a Tárgyszűrés engedélyezése jelölőnégyzetet, írja be .jpg a Tárgy vége mezőbe. Ez csak JPEG-fájlokra szűri az eseményeket.

    Add filter

  7. Válassza a Létrehozás lehetőséget az esemény-előfizetés létrehozásához.

A függvény ellenőrzése az Azure-ban

Mivel a teljes topológia most már az Azure-t futtatja, ideje ellenőrizni, hogy minden megfelelően működik-e. Mivel már a portálon van, a legegyszerűbb, ha egyszerűen feltölt egy fájlt onnan.

  1. A tárfiók portálján válassza a Tárolók lehetőséget, és válassza ki a samples-workitems tárolót .

  2. A Feltöltés gombra kattintva nyissa meg a feltöltési lapot a jobb oldalon, tallózással keresse meg a helyi fájlrendszerben a .jpg feltöltendő fájlt, majd a Feltöltés gombra kattintva töltse fel a blobot. Most ellenőrizheti, hogy a függvény a tárolófeltöltési esemény alapján futott-e.

  3. A tárfiókban térjen vissza az Események lapra, válassza az Esemény-előfizetések lehetőséget, és látnia kell, hogy egy esemény kézbesítve lett.

  4. A függvényalkalmazás portálon, a Függvények listában válassza ki a függvényt, és legalább egy teljes végrehajtási számot kell látnia.

  5. A Fejlesztőeszközök területen válassza a Monitorozás lehetőséget, és látnia kell a sikeres függvényvégrehajtásokból írt nyomkövetéseket. Akár öt perces késés is előfordulhat, mivel az eseményeket az alkalmazás Elemzések dolgozza fel.

Az erőforrások eltávolítása

Ha folytatja a következő lépést , és hozzáad egy Azure Storage-üzenetsor-kötést a függvényhez, az összes erőforrást helyben kell tartania ahhoz, hogy a már elvégzett adatokra építkezhessenek.

Ellenkező esetben az alábbi lépésekkel törölheti a függvényalkalmazást és annak kapcsolódó erőforrásait, hogy elkerülje a további költségek felmerülését.

  1. A Visual Studio Code-ban nyomja le az F1 billentyűt a parancskatalógus megnyitásához. A parancskatalógusban keresse meg és válassza ki a kívánt parancsot Azure: Open in portal.

  2. Válassza ki a függvényalkalmazást, és nyomja le az Enter billentyűt. Megnyílik a függvényalkalmazás lapja az Azure Portalon.

  3. Az Áttekintés lapon válassza az Erőforráscsoport melletti elnevezett hivatkozást.

    Screenshot of select the resource group to delete from the function app page.

  4. Az Erőforráscsoport lapon tekintse át a belefoglalt erőforrások listáját, és ellenőrizze, hogy ezek-e törölni kívánt erőforrások.

  5. Válassza az Erőforráscsoport törlése elemet, majd kövesse az utasításokat.

    A törlés eltarthat néhány percig. Amint a művelet befejeződött, néhány másodpercre egy értesítés jelenik meg. Az értesítést úgy is megtekintheti, ha kiválasztja a harang ikont az oldal tetején.

A Functions-költségekkel kapcsolatos további információkért tekintse meg a használati terv költségeinek becslését.

Következő lépések