Oktatóanyag: Fájl feltöltése és elemzése az Azure Functions és a Blob Storage használatával
Ebben az oktatóanyagban megtudhatja, hogyan tölthet fel képet az Azure Blob Storage-ba, és hogyan dolgozhatja fel az Azure Functions és a Computer Vision használatával. Azt is megtudhatja, hogyan implementálhatja az Azure-függvény eseményindítóit és kötéseit ennek a folyamatnak a részeként. Ezek a szolgáltatások együttesen elemeznek egy feltöltött képet, amely szöveget tartalmaz, kinyeri belőle a szöveget, majd egy adatbázis sorában tárolja a szöveget későbbi elemzés vagy egyéb célokra.
Az Azure Blob Storage a Microsoft nagymértékben méretezhető objektumtárolási megoldása a felhőben. A Blob Storage-t képek és dokumentumok tárolására, médiafájlok streamelésére, biztonsági mentési és archiválási adatok kezelésére, és még sok másra tervezték. A Blob Storage-ról az áttekintési oldalon olvashat bővebben.
Az 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. Az Azure Functionsről az áttekintési 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 az Azure AI-szolgáltatások használatával
- Adatok írása a Table Storage-ba az Azure-függvény kimeneti kötéseinek használatával
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- A Visual Studio 2022 telepítve van.
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övegeket tartalmazó képeket tartalmaz. A tárfiókok számos különböző szolgáltatást kínálnak, de ez az oktatóanyag a Blob Storage-t és a Table Storage-t használja.
Jelentkezzen be az Azure Portalra.
A portál tetején található keresősávon keressen a Storage kifejezésre, és válassza ki a Storage-fiókok címkével ellátott találatot.
A Tárfiókok lapon válassza a + Létrehozás lehetőséget a bal felső sarokban.
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, és adja meg a
msdocs-storage-function
nevét, majd kattintson az OK gombra. - Tárfiók neve: Adjon meg egy értéket.
msdocsstoragefunction
A Storage-fiók nevének egyedinek kell lennie az Azure-ban, ezért előfordulhat, hogy számokat kell hozzáadnia a név után, példáulmsdocsstoragefunction123
. - 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.
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 é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
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.
A navigációs panelen válassza a Tárolók lehetőséget.
A Tárolók lapon válassza a + Tároló lehetőséget a tetején. A kicsúszó panelen adja meg a képanalízis nevét, és győződjön meg arról, hogy a nyilvános hozzáférési szint Blob (csak blobok névtelen olvasási hozzáférése) értékre van állítva. Válassza a Létrehozás parancsot.
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.
A bal oldali navigációs panelen válassza a Hozzáférési kulcsok lehetőséget.
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 az 1 . kulcsszakasz alá, és illessze be valahová a későbbi használatra. A tárfiók nevét
msdocsstoragefunction
később is fel kell jegyeznie.
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. A Computer Vision az Azure AI-szolgáltatások része, és számos funkciót kínál az adatok képekből való kinyeréhez. A Computer Visionről az áttekintési oldalon tudhat meg többet.
A portál tetején található keresősávon keressen rá a Számítógépre, és válassza ki a Computer vision (Számítógépes látás) címkével ellátott eredményt.
A Computer vision (Számítógépes látás) lapon válassza a + Létrehozás lehetőséget.
A Computer Vision 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: 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: Adja meg a következő nevét
msdocscomputervision
: . - Tarifacsomag: Ha elérhető, válassza az Ingyenes lehetőséget, ellenkező esetben válassza a Standard S1 lehetőséget.
- Ha elfogadja a feltételeket, jelölje be a Felelős AI-közlemény jelölőnégyzetet
Válassza a Véleményezés + Létrehozás lehetőséget az alján. Az Azure egy ideig 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 Computer Vision szolgáltatás kiépítését, ami eltarthat egy ideig.
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 a Computer Vision szolgáltatás titkos kulcsát és végponti URL-címét, amelyet az Azure-függvényalkalmazásban kell használni.
A Computer Vision áttekintési lapján válassza a Kulcsok és végpont lehetőséget.
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.
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ással
- 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, amelyeket a Run
metódus-aláírás attribútumai használnak.
Az Table
attribútum két paramétert használ. Az első paraméter a függvény által visszaadott elemzési kép szövegé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 hozzáférhessen.
Az BlobTrigger
attribútum a függvényt a Blob Storage feltöltési eseményéhez, valamint a blobot a Run
függvényhez feltöltött készletekhez köti. A blob-eseményindítónak két saját paramétere van: az egyik a feltöltések figyelésére 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 a környezeti változók alapvető konfigurációs értékeit is lekéri, például a tárfiók kapcsolati sztring és a Computer Vision kulcsot. 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 AnalyzeImage
is 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, feltöltheti a környezeti változókat a local.settings.json fájl használatával. 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 a helyi emulátorok használata helyett.
{
"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 az Azure Functionsben
Most már készen áll az alkalmazás Üzembe helyezésére 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.
Első lépésként válassza a jobb gombbal a ProcessImage projektcsomópontot , és válassza a Közzététel lehetőséget.
A Közzététel párbeszédpanelen válassza az Azure-t, és válassza a Tovább gombot.
A következő képernyőn válassza az Azure Function App (Windows) vagy az Azure Function App (Linux) lehetőséget, majd kattintson ismét a Tovább gombra.
A Functions-példány lépésben válassza ki azt az előfizetést, amelybe üzembe szeretne helyezni. Ezután válassza a párbeszédpanel jobb oldalán látható zöld + szimbólumot.
Ekkor megnyílik egy új párbeszédpanel. Adja meg az új függvényalkalmazás alábbi é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.
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.
A folyamat befejezése után a Befejezés gombra kattintva zárja be a párbeszédpanel munkafolyamatát.
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és után az alkalmazás az Azure-ban fog futni.
A szolgáltatások összekapcsolása
Az Azure-függvény sikeresen üzembe lett helyezve, de még nem tud csatlakozni a tárfiókhoz és a Computer Vision-szolgáltatásokhoz. Először a megfelelő kulcsokat és kapcsolati sztring kell hozzáadni az Azure Functions-alkalmazás konfigurációs beállításaihoz.
Az Azure Portal tetején keressen függvényt, és válassza ki a függvényalkalmazást az eredmények közül.
A Függvényalkalmazás képernyőn válassza ki a Visual Studióban létrehozott függvényalkalmazást.
A függvényalkalmazás áttekintési lapján válassza a Konfiguráció lehetőséget a bal oldali navigációs sávon. Ekkor megnyílik egy oldal, ahol az alkalmazás különböző konfigurációs beállításait kezelhetjük. Egyelőre az Alkalmazásbeállítások szakasz érdekel minket.
A következő lépés a tárfiók nevének és kapcsolati sztring, a Computer Vision titkos kulcsának és a Computer Vision végpontjának beállításainak hozzáadása.
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: Beillesztés a korábban mentett Computer Vision-kulcsba.
Kattintson az OK gombra a beállítás alkalmazáshoz való hozzáadásához.
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égponti URL-címet.
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.
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ékét.
- Érték: Adja meg a létrehozott tárfiók nevét.
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 rendszerkép szövegét a Table Storage-ba mentette-e.
Először az 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.
Ezután válassza a Bal oldali navigációs sáv Tárolók elemét, 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.
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.
Az ImageAnalysis oldal tetején válassza a Feltöltés lehetőséget. A megnyíló úszó panelen válassza a jobb oldali mappaikont a 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.
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 rendszerkép szövegét a Table Storage-ba.
A lap tetején található zsemlék használatával navigáljon egy szinttel a tárfiókban. Keresse meg a bal oldali navigációs sávOn a Storage böngészőt , majd válassza a Táblák lehetőséget.
Mostantól elérhetőnek kell lennie egy ImageText-táblának . Kattintson a táblára a benne lévő adatsorok megtekintéséhez. A feltöltés feldolgozott képszövegéhez egy bejegyzésnek kell megjelennie. Ezt az időbélyeg használatával vagy a Szöveg oszlop tartalmának megtekintésével ellenőrizheti.
Gratulálunk! Sikeresen feldolgozta a Blob Storage-ba az Azure Functions és a Computer Vision használatával feltöltött rendszerképet.
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.
- Erőforráscsoportok kiválasztása a fő navigációs sávról
- Válassza ki az
msdocs-storage-function
erőforráscsoportot a listából. - Válassza az Erőforráscsoport törlése gombot az erőforráscsoport áttekintési oldalának tetején.
- A megerősítést kérő párbeszédpanelen adja meg az msdocs-storage-function erőforráscsoport nevét.
- Válassza a Törlés lehetőséget. Az erőforráscsoport törlésének folyamata eltarthat néhány percig.