Oktatóanyag: Fájl feltöltése és elemzése Azure Functions és Blob Storage használatával

Ebben az oktatóanyagban megtudhatja, hogyan tölthet fel egy képet Azure Blob Storage és dolgozhatja fel Azure Functions és Computer Vision használatával. Azt is megtudhatja, hogyan implementálhat Azure-függvénytriggereket és -kötéseket ennek a folyamatnak a részeként. Ezek a szolgáltatások együttesen elemeznek egy szöveget tartalmazó feltöltött képet, kinyerik belőle a szöveget, majd egy adatbázissorban tárolják a szöveget későbbi elemzés vagy egyéb célokra.

Azure Blob Storage a Microsoft nagymértékben méretezhető objektumtárolási megoldása a felhőhöz. A Blob Storage-ot képek és dokumentumok tárolására, médiafájlok streamelésére, biztonsági mentési és archív adatok kezelésére és sok másra tervezték. A Blob Storage-ról az áttekintési oldalon olvashat bővebben.

Azure Functions egy kiszolgáló nélküli számítógépes megoldás, amely lehetővé teszi kis kódblokkok írását és futtatását nagy mértékben skálázható, kiszolgáló nélküli, eseményvezérelt függvényekként. A Azure Functions az áttekintő oldalon talál további információt.

Az oktatóanyag során a következőket fogja elsajátítani:

  • Képek és fájlok feltöltése a Blob Storage-ba
  • Azure-függvényesemény-eseményindító használata a Blob Storage-ba feltöltött adatok feldolgozásához
  • Kép elemzése az Azure AI-szolgáltatásokkal
  • Adatok írása a Table Storage-ba Azure-függvény kimeneti kötéseinek használatával

Előfeltételek

A tárfiók és a tároló létrehozása

Az első lépés a feltöltött blobadatok tárolására szolgáló tárfiók létrehozása, amely ebben a forgatókönyvben szöveget tartalmazó képek lesznek. A tárfiókok számos különböző szolgáltatást kínálnak, de ez az oktatóanyag a Blob Storage és a Table Storage szolgáltatást használja.

Jelentkezzen be az Azure Portalra.

  1. A portál tetején található keresősávon keresse meg a Storage kifejezést, és válassza ki a Storage-fiókok címkével ellátott eredményt.

  2. A Tárfiókok lapon válassza a + Létrehozás lehetőséget a bal felső sarokban.

  3. A Tárfiók létrehozása lapon adja meg a következő értékeket:

    • Előfizetés: Válassza ki a kívánt előfizetést.
    • Erőforráscsoport: Válassza az Új létrehozása lehetőséget, adja meg a msdocs-storage-functionnevét, majd kattintson az OK gombra.
    • Tárfiók neve: Adjon meg egy értéket.msdocsstoragefunction A Tárfiók nevének egyedinek kell lennie az Azure-ban, ezért előfordulhat, hogy a név után számokat kell hozzáadnia, például msdocsstoragefunction123: .
    • Régió: Válassza ki az Önhöz legközelebb eső régiót.
    • Teljesítmény: Válassza a Standard lehetőséget.
    • Redundancia: Hagyja bejelölve az alapértelmezett értéket.

    Képernyőkép arról, hogyan hozhat létre tárfiókot az Azure-ban.

  4. Válassza az alul található Áttekintés + Létrehozás lehetőséget, és az Azure ellenőrzi a megadott adatokat. A beállítások érvényesítése után válassza a Létrehozás lehetőséget, és az Azure megkezdi a tárfiók kiépítését, ami eltarthat egy ideig.

A tároló létrehozása

  1. A tárfiók kiépítése után válassza az Erőforrás megnyitása lehetőséget. A következő lépés egy tártároló létrehozása a fiókon belül a feltöltött képek elemzéshez való tárolásához.

  2. A navigációs panelen válassza a Tárolók lehetőséget.

  3. A Tárolók lapon válassza a + Tároló lehetőséget a lap tetején. A kicsúsztatási panelen adja meg az imageanalysisnevét, és győződjön meg arról, hogy a nyilvános hozzáférési szintBlob (csak blobok névtelen olvasási hozzáférése) értékre van állítva. Ezután kattintson a Létrehozás elemre.

    Képernyőkép egy új tároló létrehozásáról.

Az új tárolónak meg kell jelennie a tárolók listájában.

A kapcsolati sztring lekérése

Az utolsó lépés a tárfiók kapcsolati sztring lekérése.

  1. A bal oldali navigációs panelen válassza a Hozzáférési kulcsok lehetőséget.

  2. A Hozzáférési kulcsok lapon válassza a Kulcsok megjelenítése lehetőséget. Másolja a kapcsolati sztring értékét a key1 szakasz alá, és illessze be valahová, hogy később használhassa. A tárfiók nevét msdocsstoragefunction később is fel kell jegyeznie.

    Képernyőkép a tároló eléréséről.

Ezekre az értékekre akkor lesz szükség, ha az Azure-függvényt ehhez a tárfiókhoz kell csatlakoztatnunk.

A Computer Vision szolgáltatás létrehozása

Ezután hozzon létre egy Computer Vision szolgáltatásfiókot, amely feldolgozni fogja a feltöltött fájlokat. Computer Vision része az Azure AI-szolgáltatásoknak, és számos funkciót kínál az adatok képekből való kinyeréhez. A Computer Vision az áttekintő oldalon talál további információt.

  1. A portál tetején található keresősávban keresse meg a Számítógép kifejezést, és válassza ki a Computer vision (Számítógépes látástechnológia) címkét.

  2. A Computer vision (Számítógépes látástechnológia ) lapon válassza a + Létrehozás lehetőséget.

  3. A Create Computer Vision (Létrehozás Computer Vision) lapon adja meg a következő értékeket:

    • Előfizetés: Válassza ki a kívánt előfizetést.
    • Erőforráscsoport: Használja a msdocs-storage-function korábban létrehozott erőforráscsoportot.
    • Régió: Válassza ki az Önhöz legközelebb eső régiót.
    • Név: Adja meg a nevét.msdocscomputervision
    • Tarifacsomag: Válassza az Ingyenes lehetőséget, ha elérhető, egyébként válassza a Standard S1 lehetőséget.
    • Jelölje be a Felelős AI-értesítés jelölőnégyzetet, ha elfogadja a feltételeket

    Képernyőkép egy új Computer Vision szolgáltatás létrehozásáról.

  4. Válassza az alul található Véleményezés + Létrehozás lehetőséget. Az Azure egy kis ideig érvényesíteni fogja a megadott adatokat. A beállítások érvényesítése után válassza a Létrehozás lehetőséget, és az Azure megkezdi a Computer Vision szolgáltatás kiépítését, ami eltarthat egy ideig.

  5. Ha a művelet befejeződött, válassza az Erőforrás megnyitása lehetőséget.

A kulcsok lekérése

Ezután meg kell találnunk az Azure-függvényalkalmazásban használni kívánt Computer Vision szolgáltatás titkos kulcsát és végponti URL-címét.

  1. Az Computer Vision áttekintő lapon válassza a Kulcsok és végpont lehetőséget.

  2. A Kulcsok és az EndPoint lapon másolja ki az 1. kulcs értékét és az EndPoint-értékeket , és illessze be őket a későbbi használatra.

    Képernyőkép egy Computer Vision szolgáltatás kulcsainak és URL-végpontjának lekéréséről.

A mintaprojekt letöltése és konfigurálása

Az oktatóanyagban használt Azure-függvény kódja ebben a GitHub-adattárban található. A projektet az alábbi paranccsal is klónozhatja.

git clone https://github.com/Azure-Samples/msdocs-storage-bind-function-service.git \
cd msdocs-storage-bind-function-service/dotnet

A mintaprojekt kódja a következő feladatokat hajtja végre:

  • Lekéri a környezeti változókat a tárfiókhoz és a Computer Vision szolgáltatáshoz való csatlakozáshoz
  • A feltöltött fájl elfogadása blobparaméterként
  • A blob elemzése a Computer Vision szolgáltatással
  • Az elemzett kép szövegének elküldése egy új táblázatsorra kimeneti kötésekkel

Miután letöltötte és megnyitotta a projektet, néhány alapvető fogalmat meg kell értenie az alábbi fő Run módszerben. Az Azure-függvény trigger- és kimeneti kötéseket használ, amelyek attribútumok használatával vannak alkalmazva a Run metódus aláírásán.

Az Table attribútum két paramétert használ. Az első paraméter a függvény által visszaadott kép szöveges értékének megírásához adja meg a tábla nevét. A második Connection paraméter lekéri a Table Storage-kapcsolati sztring a környezeti változókból, hogy az Azure-függvényünk hozzáférhessen hozzá.

Az BlobTrigger attribútummal kötjük a függvényt a Blob Storage-beli feltöltési eseményhez, és a blobot a Run függvényhez feltöltöttük. A blob-eseményindítónak két saját paramétere van: az egyik a feltöltések monitorozására szolgáló blobtároló nevére, a másik pedig a tárfiók kapcsolati sztring.

// Azure Function name and output Binding to Table Storage
[FunctionName("ProcessImageUpload")]
[return: Table("ImageText", Connection = "StorageConnection")]
// Trigger binding runs when an image is uploaded to the blob container below
public async Task<ImageContent> Run([BlobTrigger("imageanalysis/{name}", 
        Connection = "StorageConnection")]Stream myBlob, string name, ILogger log)
{
    // Get connection configurations
    string subscriptionKey = Environment.GetEnvironmentVariable("ComputerVisionKey");
    string endpoint = Environment.GetEnvironmentVariable("ComputerVisionEndpoint");
    string imgUrl = $"https://{ Environment.GetEnvironmentVariable("StorageAccountName")}
                        .blob.core.windows.net/imageanalysis/{name}";

    ComputerVisionClient client = new ComputerVisionClient(
        new ApiKeyServiceClientCredentials(subscriptionKey)) { Endpoint = endpoint };

    // Get the analyzed image contents
    var textContext = await AnalyzeImageContent(client, imgUrl);

    return new ImageContent { 
        PartitionKey = "Images",
        RowKey = Guid.NewGuid().ToString(), Text = textContext 
    };
}

public class ImageContent
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Text { get; set; }
}

Ez a kód emellett lekéri a környezeti változók alapvető konfigurációs értékeit, például a tárfiók kapcsolati sztring és Computer Vision kulcsát. Ezeket a környezeti változókat az üzembe helyezés után hozzáadjuk az Azure-függvénykörnyezethez.

A ProcessImage függvény egy második, alább látható metódust AnalyzeImageis használ. Ez a kód a Computer Vision-fiók URL-végpontját és kulcsát használja arra, hogy kérést küldjön a kiszolgálónak a rendszerkép feldolgozására. A kérés a képen észlelt összes szöveget visszaadja, amelyet a rendszer a table storage-ba ír a metódus kimeneti kötésével Run .

static async Task<string> ReadFileUrl(ComputerVisionClient client, string urlFile)
{
    // Analyze the file using Computer Vision Client
    var textHeaders = await client.ReadAsync(urlFile);
    string operationLocation = textHeaders.OperationLocation;
    Thread.Sleep(2000);
    
    // Complete code omitted for brevity, view in sample project
    
    return text.ToString();
}

Helyi futtatás

Ha helyileg szeretné futtatni a projektet, feltöltheti a környezeti változókat a local.settings.json fájllal. A fájlban töltse ki a helyőrző értékeket az Azure-erőforrások létrehozásakor korábban mentett értékekkel.

Bár az Azure-függvénykód helyileg fog futni, a helyi emulátorok használata helyett továbbra is az Azure-on keresztül csatlakozik az élő szolgáltatásokhoz.

{
    "IsEncrypted": false,
    "Values": {
      "AzureWebJobsStorage": "UseDevelopmentStorage=true",
      "FUNCTIONS_WORKER_RUNTIME": "dotnet",
      "StorageConnection": "your-storage-account-connection-string",
      "StorageAccountName": "your-storage-account-name",
      "ComputerVisionKey": "your-computer-vision-key",
      "ComputerVisionEndPoint":  "your-computer-vision-endpoint"
    }
}

A kód üzembe helyezése a Azure Functions

Most már készen áll arra, hogy üzembe helyezze az alkalmazást az Azure-ban a Visual Studio használatával. Az Azure Functions alkalmazást az Üzembe helyezési folyamat részeként is létrehozhatja az Azure-ban.

  1. Először válassza a jobb gombbal a ProcessImage projektcsomópontot, majd válassza a Közzététel lehetőséget.

  2. A Közzététel párbeszédpanelen válassza az Azure lehetőséget, és válassza a Tovább gombot.

    Képernyőkép arról, hogyan választhatja ki az Azure-t üzembehelyezési célként.

  3. Válassza az Azure-függvényalkalmazás (Windows) vagy az Azure Function App (Linux) lehetőséget a következő képernyőn, majd kattintson ismét a Tovább gombra.

    Képernyőkép a Azure Functions adott üzembehelyezési célként való kiválasztásáról.

  4. A Functions-példány lépésben válassza ki azt az előfizetést, amelybe telepíteni szeretné. Ezután válassza a párbeszédpanel jobb oldalán látható zöld + szimbólumot.

  5. Ekkor megnyílik egy új párbeszédpanel. Adja meg az új függvényalkalmazás következő értékeit.

    • Név: Adja meg az msdocsprocessimage értéket, vagy valami hasonlót.
    • Előfizetés neve: Válassza ki a használni kívánt előfizetést.
    • Erőforráscsoport: Válassza ki a msdocs-storage-function korábban létrehozott erőforráscsoportot.
    • Csomag típusa: Válassza a Felhasználás lehetőséget.
    • Hely: Válassza ki az Önhöz legközelebbi régiót.
    • Azure Storage: Válassza ki a korábban létrehozott tárfiókot.

    Képernyőkép arról, hogyan hozhat létre új függvényalkalmazást az Azure-ban.

  6. Miután kitöltötte az összes értéket, válassza a Létrehozás lehetőséget. A Visual Studio és az Azure megkezdi a kért erőforrások kiépítését, ami néhány percet vesz igénybe.

  7. Miután a folyamat befejeződött, válassza a Befejezés lehetőséget a párbeszédpanel munkafolyamatának bezárásához.

  8. Az Azure-függvény üzembe helyezésének utolsó lépéseként válassza a közzététel lehetőséget a képernyő jobb felső sarkában. A függvény közzététele néhány percet is igénybe vehet. A befejezést követően az alkalmazás az Azure-ban fog futni.

A szolgáltatások összekapcsolása

Az Azure-függvény üzembe helyezése sikeresen megtörtént, de még nem tud csatlakozni a tárfiókhoz és Computer Vision szolgáltatásokhoz. A megfelelő kulcsokat és kapcsolati sztringeket először hozzá kell adni a Azure Functions alkalmazás konfigurációs beállításaihoz.

  1. A Azure Portal tetején keressen rá a függvényre, és válassza a Függvényalkalmazás lehetőséget az eredmények közül.

  2. A Függvényalkalmazás képernyőn válassza ki a Visual Studióban létrehozott függvényalkalmazást.

  3. A Függvényalkalmazás áttekintése lapon válassza a Konfiguráció lehetőséget a bal oldali navigációs sávon. Ekkor megnyílik egy lap, ahol az alkalmazás különböző konfigurációs beállításait kezelheti. Egyelőre az Alkalmazásbeállítások szakaszban vagyunk érdekeltek.

  4. A következő lépés a tárfiók nevének és kapcsolati sztring, a Computer Vision titkos kulcsnak és a Computer Vision végpontnak a beállítása.

  5. Az Alkalmazásbeállítások lapon válassza az + Új alkalmazásbeállítás lehetőséget. A megjelenő úszó ablakban adja meg a következő értékeket:

    • Név: Adja meg a ComputerVisionKey értékét.
    • Érték: Illessze be a korábban mentett Computer Vision kulcsot.
  6. Kattintson az OK gombra a beállítás alkalmazáshoz való hozzáadásához.

    Képernyőkép arról, hogyan adhat hozzá új alkalmazásbeállítást egy Azure-függvényhez.

  7. Ezután ismételje meg ezt a folyamatot a Computer Vision szolgáltatás végpontja esetében a következő értékekkel:

    • Név: Adja meg a ComputerVisionEndpoint értékét.
    • Érték: Illessze be a korábban mentett végpont URL-címét.
  8. Ismételje meg ismét ezt a lépést a tárfiók-kapcsolat esetében a következő értékekkel:

    • Név: Adja meg a StorageConnection értékét.
    • Érték: Illessze be a korábban mentett kapcsolati sztring.
  9. Végül ismételje meg ezt a folyamatot még egyszer a tárfiók nevének megismétlése a következő értékekkel:

    • Név: Adjon meg egy StorageAccountName értéket.
    • Érték: Adja meg a létrehozott tárfiók nevét.
  10. Miután hozzáadta ezeket az alkalmazásbeállításokat, a konfigurációs oldal tetején válassza a Mentés lehetőséget. Ha a mentés befejeződött, a Frissítés gombra is be kell állítania a beállításokat.

Az Azure-függvény különböző szolgáltatásokhoz való csatlakoztatásához szükséges környezeti változók mindegyike már érvényben van.

Kép feltöltése a Blob Storage-ba

Most már készen áll az alkalmazás tesztelésére! Feltölthet egy blobot a tárolóba, majd ellenőrizheti, hogy a kép szövege a Table Storage-ba lett-e mentve.

  1. Először a Azure Portal tetején keresse meg a Storage kifejezést, és válassza a Tárfiók lehetőséget. A Tárfiók lapon válassza ki a korábban létrehozott fiókot.

  2. Ezután válassza a Tárolók lehetőséget a bal oldali navigációs sávon, majd lépjen a korábban létrehozott ImageAnalysis tárolóba. Innen feltölthet egy tesztképet közvetlenül a böngészőben.

    Képernyőkép a tárolókra való navigálásról.

  3. A letölthető mintaprojekt gyökerében talál néhány mintaképet a képek mappájában, vagy használhatja a sajátját is.

  4. Az ImageAnalysis lap tetején válassza a Feltöltés lehetőséget. A megnyíló úszó ablakban válassza a mappa ikont a jobb oldalon egy fájlböngésző megnyitásához. Válassza ki a feltölteni kívánt képet, majd válassza a Feltöltés lehetőséget.

    Képernyőkép a blob storage-tárolóba való feltöltéséről.

  5. A fájlnak a blobtárolóban kell megjelennie. Ezután ellenőrizheti, hogy a feltöltés aktiválta-e az Azure-függvényt, és hogy a rendszer megfelelően elemezte és mentette-e a kép szövegét a Table Storage-ba.

  6. A lap tetején található zsemlék használatával navigáljon fel egy szintre a tárfiókban. Keresse meg és válassza a Storage böngészőt a bal oldali navigációs sávon, majd válassza a Táblák lehetőséget.

  7. Mostantól elérhetőnek kell lennie egy ImageText-táblázatnak . Kattintson a táblára a benne lévő adatsorok előnézetének megtekintéséhez. Meg kell jelennie egy bejegyzésnek a feltöltés feldolgozott képszövegéhez. Ezt az Időbélyeg használatával vagy a Szöveg oszlop tartalmának megtekintésével ellenőrizheti.

    Képernyőkép egy szöveges bejegyzésről az Azure Table Storage-ban.

Gratulálunk! Sikerült feldolgoznia a Blob Storage-ba feltöltött lemezképet Azure Functions és Computer Vision használatával.

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

Ha nem folytatja az alkalmazás használatát, törölheti a létrehozott erőforrásokat az erőforráscsoport eltávolításával.

  1. Erőforráscsoportok kiválasztása a fő navigációs sávon
  2. Válassza ki az msdocs-storage-function erőforráscsoportot a listából.
  3. Válassza az Erőforráscsoport törlése gombot az erőforráscsoport áttekintési oldalának tetején.
  4. A megerősítést kérő párbeszédpanelen adja meg az msdocs-storage-function erőforráscsoport nevét.
  5. Válassza a Törlés lehetőséget. Az erőforráscsoport törlésének folyamata eltarthat néhány percig.