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
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egy ingyenes fiókot.
- 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ö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.
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.
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 , 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á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 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
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 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.
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 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
msdocsstoragefunctionis érdemes később is feljegyeznie.
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.
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.
A Computer Vision lapon válassza a + Létrehozás lehetőséget.
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-functionkorá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
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.
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.
Az Computer Vision áttekintő oldalá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 valahová, ahol később használni szeretné őket.
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.
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.
A Közzététel párbeszédpanelen válassza az Azure-t, és válassza a Tovább gombot.
- 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.
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.
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-functionkorá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 eltarthat néhány percig.
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é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.
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.
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ő 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.
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.
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.
- 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é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.
- 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éket.
- É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 ö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.
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.
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.
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ó 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.
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.
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.
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.
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.
- Erőforráscsoportok kiválasztása a fő navigációs sávon
- Válassza ki az
msdocs-storage-functionerő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.



