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

Ebben az oktatóanyagban megtudhatja, hogyan tölthet fel képet Azure Blob Storage és dolgozhatja fel azt Azure Functions és Computer Vision használatával. Azt is megtudhatja, hogyan implementálhat Azure-függvény eseményindítókat és kötéseket ennek a folyamatnak a részeként. Ezek a szolgáltatások együttesen elemzik a 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 skálázható 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ő 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 nagymértékben skálázható, kiszolgáló nélküli, eseményvezérelt függvényekként. A Azure Functions az áttekintő oldalon olvashat bővebben.

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 a Cognitive Services használatával
  • 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 keressen a Storage kifejezésre, és válassza ki a Storage-fiókok találatot.

  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: Adja meg a következő msdocsstoragefunctionértéket: . A Storage-fió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özelebbi 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 a tárfiók Azure-beli létrehozásáról.

  1. Válassza a Lenti Áttekintés + Létrehozás lehetőséget, és az Azure ellenőrzi a megadott adatokat. A beállítások ellenőrzé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úszó panelen adja meg az imageanalízisnevé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 ki a kapcsolati sztring értékét az 1. kulcs szakasz alá, és illessze be valahová, hogy később használhassa. A tárfiók nevét msdocsstoragefunction is érdemes később is feljegyeznie.

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 hozza létre a Computer Vision szolgáltatásfiókot, amely feldolgozni fogja a feltöltött fájlokat. Computer Vision az Azure Cognitive Services része, é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 keressen rá a Számítógép kifejezésre, és válassza ki a Computer vision (Számítógépes látástechnológia) feliratú találatot.

  2. A Computer Vision lapon válassza a + Létrehozás lehetőséget.

  3. A 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özelebbi régiót.
  • Név: Írja be a msdocscomputervisionkövetkező nevét: .
  • 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.

  1. Válassza az alul található Véleményezés + Létrehozás lehetőséget. Az Azure egy kis ideig ellenőrzi a megadott adatokat. A beállítások ellenőrzé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.

  2. 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 keresnünk 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ő oldalán 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 valahová, ahol később használni szeretné őket.

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:

  • Környezeti változók lekérése 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ás használatával
  • Az elemzett kép szövegének elküldése egy új táblázatsorra kimeneti kötések használatával

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

Az Table attribútum két paramétert használ. Az első paraméter a függvény által visszaadott, elemezett kép szövegértékének megírásához használt tábla nevét adja meg. 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 hozzáférhessen.

Az BlobTrigger attribútum a függvényt a Blob Storage feltöltési eseményéhez köti, és a blobot a Run függvényhez feltöltötte. A blob-eseményindítónak két saját paramétere van: az egyik a feltöltéseket monitorozni kívánt blobtároló neve, 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 alapvető konfigurációs értékeket is lekér a környezeti változókból, például a tárfiók kapcsolati sztring és Computer Vision kulcsból. Ezeket a környezeti változókat az üzembe helyezést követően 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ához. A kérés visszaadja a képen felfedezett összes szöveget, 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, töltse ki 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, továbbra is az Azure-on keresztül csatlakozik az élő szolgáltatásokhoz ahelyett, hogy helyi emulátorokat használna.

{
    "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 az alkalmazás Üzembe helyezésére az Azure-ban a Visual Studio használatával. A Azure Functions alkalmazást az Üzembe helyezési folyamat részeként is létrehozhatja az Azure-ban.

  1. Első lépésként 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-t, és válassza a Tovább gombot.

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

  1. Válassza ki az Azure-függvényalkalmazást (Windows) vagy az Azure-függvényalkalmazást (Linux) 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.

  1. A Functions-példány lépésében válassza ki azt az előfizetést, amelybe üzembe szeretné helyezni az előfizetést. Ezután válassza a párbeszédpanel jobb oldalán található zöld + szimbólumot.

  2. Ekkor megnyílik egy új párbeszédpanel. Adja meg az alábbi értékeket az új függvényalkalmazáshoz.

  • Név: Adja meg az msdocsprocessimage vagy valami hasonló nevet.
  • 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 egy új függvényalkalmazás azure-beli létrehozásáról.

  1. 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 eltarthat néhány percig.

  2. A folyamat befejezése után a Befejezés gombra kattintva zárja be a párbeszédpanel munkafolyamatát.

  3. Az Azure-függvény üzembe helyezésének utolsó lépéseként válassza a képernyő jobb felső sarkában található Közzététel lehetőséget. 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 keresse meg a függvényt, és válassza ki a függvényalkalmazást 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ő lapján válassza a Konfiguráció lehetőséget a bal oldali navigációs sávon. Ekkor megnyílik egy oldal, ahol különböző konfigurációs beállításokat kezelhetünk az alkalmazáshoz. 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ásainak hozzáadá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.
  1. Kattintson az OK gombra a beállítás alkalmazáshoz való hozzáadásához.

Képernyőkép egy új alkalmazásbeállítás Azure-függvényhez való hozzáadásáról.

  1. Ezután ismételje meg ezt a folyamatot a Computer Vision szolgáltatás végpontján a következő értékekkel:
  • Név: Adja meg a ComputerVisionEndpoint értékét.
  • Érték: Illessze be a korábban mentett végponti URL-címet.
  1. 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.
  1. Végül ismételje meg még egyszer ezt a folyamatot a tárfiók nevére vonatkozóan a következő értékekkel:
  • Név: Adja meg a StorageAccountName értéket.
  • Érték: Adja meg a létrehozott tárfiók nevét.
  1. 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 összes környezeti változó 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 rendszer mentette-e a kép szövegét a Table Storage-ba.

  1. Először a Azure Portal tetején keresse meg a Storage-t, és válassza ki a tárfiókot. A tárfiók oldalán válassza ki a korábban létrehozott fiókot.

  2. Ezután válassza a tárolókat 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óra való navigálásról.

  1. A letölthető mintaprojekt gyökerében található néhány mintakép a képek mappában, vagy használhatja a sajátját is.

  2. Az ImageAnalysis oldal tetején válassza a Feltöltés lehetőséget. A megnyíló úszó ablakban kattintson a jobb oldali mappaikonra 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.

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

  2. A lap tetején található navigációs sávok használatával navigáljon egy szinttel feljebb 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.

  3. Mostantól elérhetőnek kell lennie egy ImageText-táblának . 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élyegzővel 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! Sikeresen feldolgozta a Blob Storage-ba feltöltött rendszerké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.