Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak nahrát obrázek do Azure Blob Storage a zpracovat ho pomocí Azure Functions a Computer Vision. Dozvíte se také, jak v rámci tohoto procesu implementovat triggery a vazby funkce Azure. Tyto služby společně analyzují nahraný obrázek, který obsahuje text, extrahuje z něj text a pak text uloží do řádku databáze pro pozdější analýzu nebo jiné účely.
Azure Blob Storage je masivně škálovatelné řešení úložiště objektů Od Microsoftu pro cloud. Blob Storage je určená k ukládání obrázků a dokumentů, streamování mediálních souborů, správě zálohovacích a archivovaných dat a mnoho dalšího. Další informace o Blob Storage najdete na přehledové stránce.
Azure Functions je bezserverové počítačové řešení, které umožňuje psát a spouštět malé bloky kódu jako vysoce škálovatelné bezserverové funkce řízené událostmi. Další informace o Azure Functions najdete na stránce přehledová stránka.
V tomto návodu se naučíte, jak:
- Nahrání obrázků a souborů do Blob Storage
- Použití triggeru události funkce Azure ke zpracování dat nahraných do Blob Storage
- Analýza obrázku pomocí nástrojů Foundry
- Zápis dat do Table Storage pomocí výstupních vazeb funkce Azure
Prerequisites
- Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet.
- Visual Studio 2022
Vytvoření účtu úložiště a kontejneru
Prvním krokem je vytvoření účtu úložiště, aby byla uchována nahraná data typu blob, což v tomto scénáři znamená obrázky obsahující text. Účet úložiště nabízí několik různých služeb, ale tento kurz využívá Blob Storage a Table Storage.
Přihlaste se k portálu Azure.
Na panelu hledání v horní části portálu vyhledejte Storage a vyberte výsledek označený Účty úložiště.
Na stránce Účty úložiště vyberte + Vytvořit v levém horním rohu.
Na stránce Vytvořit účet úložiště zadejte následující hodnoty:
- Předplatné: Zvolte požadované předplatné.
-
Skupina prostředků: Vyberte Vytvořit nový a zadejte název
msdocs-storage-functiona pak zvolte OK. -
Název účtu úložiště: Zadejte hodnotu
msdocsstoragefunction. Název účtu úložiště musí být jedinečný v rámci Azure, takže možná budete muset za název přidat čísla, napříkladmsdocsstoragefunction123. - Oblast: Vyberte oblast, která je k vám nejblíže.
- Výkon: Zvolte Standard.
- Redundance: Ponechte vybranou výchozí hodnotu.
V dolní části vyberte Recenze + Vytvořit a Azure ověří zadané informace. Po ověření nastavení zvolte Create a Azure začnete zřizovat účet úložiště, což může chvíli trvat.
Vytvoření kontejneru
Po zřízení účtu úložiště vyberte Přejít ke zdroji. Dalším krokem je vytvoření kontejneru úložiště uvnitř účtu pro uložení nahraných obrázků pro účely analýzy.
Na navigačním panelu zvolte Kontejnery.
Na stránce Kontejnery vyberte nahoře + Kontejner. Na panelu vysunutí zadejte název imageanalysis a ujistěte se, že je úroveň veřejného přístupu nastavená na Objekt blob (anonymní přístup pro čtení pouze pro objekty blob). Pak vyberte Vytvořit.
Nový kontejner by se měl zobrazit v seznamu kontejnerů.
Načtěte řetězec připojení
Posledním krokem je načtení připojovacího řetězce pro účet úložiště.
Na levém navigačním panelu vyberte Přístupové klíče.
Na stránce Přístupové klíče vyberte Zobrazit klíče. Zkopírujte hodnotu připojovacího řetězce pod oddílem key1 a vložte ho někam, kde ho použijete pro pozdější použití. Poznamenejte si také název
msdocsstoragefunctionúčtu úložiště pro pozdější použití.
Tyto hodnoty jsou nezbytné, když potřebujeme připojit naši funkci Azure k tomuto účtu úložiště.
Vytvoření služby Computer Vision
Dále vytvořte účet služby Computer Vision, který zpracovává nahrané soubory. Computer Vision je součástí foundry Tools a nabízí různé funkce pro extrakci dat z obrázků. Další informace o Počítačovém vidění najdete na přehledové stránce .
Na panelu hledání v horní části portálu vyhledejte Počítač a vyberte výsledek označený jako Počítačové zpracování obrazu.
Na stránce Počítačové zpracování obrazu vyberte + Vytvořit.
Na stránce Kreate Computer Vision zadejte následující hodnoty:
- Předplatné: Zvolte požadované předplatné.
-
Skupina prostředků: Použijte
msdocs-storage-functionskupinu prostředků, kterou jste vytvořili dříve. - Oblast: Vyberte oblast, která je k vám nejblíže.
-
Název: Zadejte název pro
msdocscomputervision. - Cenová úroveň: Pokud je dostupná, zvolte Free , jinak zvolte Standard S1.
- Pokud souhlasíte s podmínkami, zaškrtněte políčko Responsible AI Notice.
Dole vyberte Zkontrolovat + Vytvořit. Azure chvíli trvá ověření zadaných informací. Po ověření nastavení zvolte Create a Azure zahájí zřizování služby Computer Vision, což může chvíli trvat.
Po dokončení operace vyberte Přejít k prostředku.
Načtení klíčů
Dále musíme najít tajný klíč a adresu URL koncového bodu pro službu Computer Vision, která se má použít v aplikaci funkcí Azure.
Na stránce přehledu Computer Vision vyberte Klíče a koncový bod.
Na stránce Klíče a Koncový bod zkopírujte hodnotu Klíč 1 a hodnoty EndPointu a vložte je někam, kde je chcete použít pro pozdější použití.
Snímek obrazovky, který ukazuje, jak načíst klíče a koncový bod URL pro službu Computer Vision.
Stažení a konfigurace ukázkového projektu
Kód funkce Azure použité v tomto kurzu najdete v úložišti this GitHub. Projekt můžete naklonovat také pomocí následujícího příkazu:
git clone https://github.com/Azure-Samples/msdocs-storage-bind-function-service.git \
cd msdocs-storage-bind-function-service/dotnet
Vzorový kód projektu provádí následující úlohy:
- Načítá proměnné prostředí pro přístup k účtu úložiště a k službě Computer Vision.
- Přijme nahraný soubor jako parametr objektu blob.
- Analyzuje objekt blob pomocí služby Computer Vision
- Odešle analyzovaný text obrázku do nového řádku tabulky pomocí výstupních vazeb.
Po stažení a otevření projektu existuje několik základních konceptů, které je potřeba pochopit v hlavní Run metodě uvedené níže. Funkce Azure využívá aktivační a výstupní vazby, které se použijí pomocí atributů v podpisu metody Run.
Atribut Table používá dva parametry. První parametr určuje název tabulky, která zapíše analyzovanou textovou hodnotu obrázku vrácenou funkcí. Druhý parametr Connection načte řetězec pro připojení k Table Storage z proměnných prostředí, aby naše funkce Azure k němu měla přístup.
Atribut BlobTrigger slouží k vytvoření vazby naší funkce na událost nahrání v Blob Storage a poskytuje nahraný objekt blob do funkce Run. Spouštěč blobů má dva vlastní parametry – jeden pro název kontejneru blobů, který se má monitorovat kvůli nahrávání, a druhý pro připojovací řetězec našeho účtu úložiště.
// 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; }
}
Tento kód také načte základní konfigurační hodnoty z proměnných prostředí, jako je připojovací řetězec účtu úložiště a klíč služby Computer Vision. Tyto proměnné prostředí přidáme do prostředí funkce Azure po nasazení.
Funkce ProcessImage také využívá druhou metodu volanou AnalyzeImage. Tento kód používá koncový bod adresy URL a klíč našeho účtu Computer Vision k vytvoření požadavku na tento server ke zpracování obrázku. Požadavek vrátí veškerý text zjištěný na obrázku, který je zapsán do Table Storage pomocí výstupní vazby metody 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();
}
Lokální spuštění
Pokud chcete projekt spustit místně, můžete proměnné prostředí naplnit pomocí souboru local.settings.json. Uvnitř tohoto souboru vyplňte zástupné hodnoty hodnotami, které jste si předtím uložili při vytváření Azure prostředků.
I když se kód funkce Azure spouští místně, stále se připojuje k živým službám na Azure, a ne pomocí místních emulátorů.
{
"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"
}
}
Nasazení kódu do Azure Functions
Teď jste připraveni nasadit naši aplikaci do Azure pomocí Visual Studio. Aplikaci Azure Functions můžete také vytvořit ve Azure současně s procesem nasazení.
Začněte tak, že vpravo vyberete uzel projektu ProcessImage a vyberete Publikovat.
Na obrazovce dialogového okna Publish vyberte Azure a zvolte Dalši.
Snímek obrazovky ukazující, jak vybrat Azure jako cíl nasazení.
Na další obrazovce vyberte Azure Function App (Windows) nebo Azure Function App (Linux) a pak znovu zvolte Dalši.
V kroku instance služby Functions nezapomeňte zvolit předplatné, do které chcete nasadit. Dále vyberte zelený + symbol na pravé straně dialogového okna.
Otevře se nové dialogové okno. Zadejte následující hodnoty pro novou aplikaci Funkcí.
- Název: Zadejte msdocsprocessimage nebo něco podobného.
- Název předplatného: Zvolte libovolné předplatné, které chcete použít.
-
Skupina prostředků: Zvolte
msdocs-storage-functionskupinu prostředků, kterou jste vytvořili dříve. - Typ plánu: Vyberte spotřebu.
- Umístění: Zvolte oblast, která je k vám nejblíže.
- Azure Storage: Vyberte účet úložiště, který jste vytvořili dříve.
snímek obrazovky znázorňující, jak vytvořit novou funkční aplikaci v Azure.
Po vyplnění všech těchto hodnot vyberte Vytvořit. Visual Studio a Azure začnou zřizovat požadované prostředky, což trvá několik okamžiků.
Jakmile se proces dokončí, výběrem možnosti Dokončit zavřete pracovní postup dialogového okna.
Posledním krokem nasazení funkce Azure je výběr Publish v pravém horním rohu obrazovky. Publikování funkce může chvíli trvat. Po dokončení aplikace běží na Azure.
Propojení služeb
Funkce Azure byla úspěšně nasazena, ale zatím se nemůže připojit k našemu účtu úložiště a Computer Vision službám. Do konfiguračního nastavení aplikace Azure Functions musí být nejprve přidány správné klíče a připojovací řetězce.
V horní části portálu Azure vyhledejte function a ve výsledcích vyberte Function App.
Na obrazovce Function App vyberte aplikaci funkcí, kterou jste vytvořili v Visual Studio.
Na stránce přehledu aplikace funkcí vyberte v levém navigačním panelu možnost Konfigurace a otevřete stránku, kde můžeme spravovat různé typy nastavení konfigurace pro naši aplikaci. Prozatím nás zajímá část Nastavení aplikace.
Dalším krokem je přidání nastavení pro název účtu úložiště a jeho connection string, tajný klíč služby Computer Vision a koncový bod služby Computer Vision.
Na kartě Nastavení aplikace vyberte + Nové nastavení aplikace. V informačním rámečku, který se zobrazí, zadejte následující hodnoty:
- Název: Zadejte hodnotu ComputerVisionKey.
- Value: Vložte klíč Computer Vision, který jste si uložili dříve.
Pokud chcete toto nastavení přidat do aplikace, vyberte OK .
V dalším kroku tento proces zopakujeme pro koncový bod naší služby Computer Vision pomocí následujících hodnot:
- Název: Zadejte hodnotu ComputerVisionEndpoint.
- Hodnota: Vložte adresu URL koncového bodu, kterou jste si uložili dříve.
Opakujte tento krok znovu pro připojení účtu úložiště s použitím následujících hodnot:
- Název: Zadejte hodnotu StorageConnection.
- Hodnotu: Vložte connection string, které jste si uložili dříve.
Nakonec tento proces opakujte ještě jednou pro název účtu úložiště s použitím následujících hodnot:
- Název: Zadejte hodnotu StorageAccountName.
- Hodnota: Zadejte název účtu úložiště, který jste vytvořili.
Po přidání těchto nastavení aplikace nezapomeňte v horní části stránky konfigurace vybrat Uložit . Po dokončení uložení můžete také stisknout aktualizovat, abyste měli jistotu, že se nastavení aplikují.
Všechny požadované proměnné prostředí pro připojení naší Azure funkce k různým službám jsou teď na místě.
Nahrání obrázku do Blob Storage
Teď jste připraveni otestovat naši aplikaci. Do kontejneru můžete nahrát objekt blob a pak ověřit, že se text v obrázku uložil do služby Table Storage.
Nejprve v horní části portálu Azure vyhledejte Storage a vyberte storage account. Na stránce účtu úložiště vyberte účet, který jste vytvořili dříve.
Dále vyberte Kontejnery v levém navigačním panelu a pak přejděte do kontejneru ImageAnalysis , který jste vytvořili dříve. Odtud můžete nahrát testovací obrázek přímo v prohlížeči.
Několik ukázkových obrázků, které jsou součástí složky obrázků, najdete v kořenovém adresáři ukázkového projektu ke stažení nebo můžete použít vlastní.
V horní části stránky ImageAnalysis vyberte Nahrát. Ve rozbalovací nabídce, která se otevře, vyberte ikonu složky, abyste otevřeli prohlížeč souborů. Zvolte obrázek, který chcete nahrát, a pak vyberte Nahrát.
Soubor by se měl zobrazit v kontejneru blob. Dále můžete ověřit, že nahrávání aktivovalo funkci Azure a že se text na obrázku správně analyzoval a uložil do služby Table Storage.
Pomocí navigační stopy v horní části stránky přejděte v účtu úložiště o jednu úroveň výš. Na levém navigačním panelu vyhledejte a vyberte Prohlížeč úložiště, potom vyberte Tabulky.
Tabulka ImageText by teď měla být dostupná. Výběrem v tabulce zobrazíte náhled řádků dat uvnitř tabulky. Měli byste vidět položku pro zpracovaný text z nahraného obrázku. Můžete to ověřit pomocí časového razítka nebo zobrazením obsahu sloupce Text .
snímek obrazovky
Congratulations! Úspěšně jste zpracovali obrázek, který jste nahráli do Blob Storage pomocí Azure Functions a Computer Vision.
Čištění prostředků
Pokud nebudete tuto aplikaci dál používat, můžete odstranit prostředky, které jste vytvořili odebráním skupiny prostředků.
- Zvolte skupiny prostředků z hlavní navigace
-
msdocs-storage-functionZe seznamu vyberte skupinu prostředků. - V horní části stránky přehledu skupiny prostředků vyberte tlačítko Odstranit skupinu prostředků.
- V potvrzovacím dialogovém okně zadejte název skupiny prostředků msdocs-storage-function.
- Vyberte odstranit. Dokončení procesu odstranění skupiny prostředků může trvat několik minut.