Händelser
31 mars 23 - 2 apr. 23
Den största utbildningshändelsen för Infrastruktur, Power BI och SQL. 31 mars – 2 april. Använd koden FABINSIDER för att spara 400 USD.
Anmäl dig i dagDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
I den här självstudien får du lära dig hur du laddar upp en avbildning till Azure Blob Storage och bearbetar den med hjälp av Azure Functions och Visuellt innehåll. Du får också lära dig hur du implementerar Azure Function-utlösare och bindningar som en del av den här processen. Tillsammans analyserar dessa tjänster en uppladdad bild som innehåller text, extraherar texten ur den och lagrar sedan texten på en databasrad för senare analys eller andra ändamål.
Azure Blob Storage är Microsofts enormt skalbara objektlagringslösning för molnet. Blob Storage är utformat för att lagra bilder och dokument, strömma mediefiler, hantera säkerhetskopierings- och arkivdata med mera. Du kan läsa mer om Blob Storage på översiktssidan.
Azure Functions är en serverlös datorlösning som gör att du kan skriva och köra små kodblock som mycket skalbara, serverlösa, händelsedrivna funktioner. Du kan läsa mer om Azure Functions på översiktssidan.
I den här självstudien får du lära dig hur man:
Det första steget är att skapa lagringskontot som innehåller de uppladdade blobdata, som i det här scenariot är bilder som innehåller text. Ett lagringskonto erbjuder flera olika tjänster, men i den här självstudien används Blob Storage och Table Storage.
Logga in på Azure-portalen.
I sökfältet överst i portalen söker du efter Lagring och väljer resultatet med etiketten Lagringskonton.
På sidan Lagringskonton väljer du + Skapa längst upp till vänster.
På sidan Skapa ett lagringskonto anger du följande värden:
msdocs-storage-function
och välj sedan OK.msdocsstoragefunction
. Lagringskontonamnet måste vara unikt i Azure, så du kan behöva lägga till tal efter namnet, till exempel msdocsstoragefunction123
.Välj Granska + Skapa längst ned så validerar Azure den information som du har angett. När inställningarna har verifierats väljer du Skapa så börjar Azure etablera lagringskontot, vilket kan ta en stund.
När lagringskontot har etablerats väljer du Gå till Resurs. Nästa steg är att skapa en lagringscontainer inuti kontot för att lagra uppladdade bilder för analys.
I navigeringspanelen väljer du Containrar.
På sidan Containrar väljer du + Container överst. I den utskjutande panelen anger du ett Namn på imageanalysis och kontrollerar att den offentliga åtkomstnivån är inställd på Blob (endast anonym läsåtkomst för blobar). Välj sedan Skapa.
Du bör se att den nya containern visas i listan med containrar.
Det sista steget är att hämta vår anslutningssträng för lagringskontot.
Välj Åtkomstnycklar i den vänstra navigeringspanelen.
På sidan Åtkomstnycklar väljer du Visa nycklar. Kopiera värdet för anslutningssträngen under avsnittet key1 och klistra in det någonstans att använda för senare. Du vill också anteckna lagringskontots namn msdocsstoragefunction
för senare.
Dessa värden kommer att behövas när vi behöver ansluta vår Azure-funktion till det här lagringskontot.
Skapa sedan det Visuellt innehåll tjänstkonto som ska bearbeta våra uppladdade filer. Visuellt innehåll ingår i Azure AI-tjänster och erbjuder en mängd olika funktioner för att extrahera data från bilder. Du kan läsa mer om Visuellt innehåll på översiktssidan.
I sökfältet överst i portalen söker du efter Dator och väljer resultatet med etiketten Visuellt innehåll.
På sidan Visuellt innehåll väljer du + Skapa.
På sidan Skapa Visuellt innehåll anger du följande värden:
msdocs-storage-function
resursgrupp som du skapade tidigare.msdocscomputervision
.Välj Granska + Skapa längst ned. Det tar en stund för Azure att verifiera den information som du har angett. När inställningarna har verifierats väljer du Skapa och Azure börjar etablera Visuellt innehåll-tjänsten, vilket kan ta en stund.
När åtgärden har slutförts väljer du Gå till Resurs.
Därefter måste vi hitta den hemliga nyckeln och slutpunkts-URL:en för Visuellt innehåll-tjänsten som ska användas i vår Azure-funktionsapp.
På sidan Visuellt innehåll översikt väljer du Nycklar och slutpunkt.
På sidan Nycklar och Slutpunkt kopierar du värdet Key 1 och EndPoint-värdena och klistrar in dem någonstans att använda för senare.
Koden för Den Azure-funktion som används i den här självstudien finns på den här GitHub-lagringsplatsen. Du kan också klona projektet med hjälp av kommandot nedan.
git clone https://github.com/Azure-Samples/msdocs-storage-bind-function-service.git \
cd msdocs-storage-bind-function-service/dotnet
Exempelprojektkoden utför följande uppgifter:
När du har laddat ned och öppnat projektet finns det några viktiga begrepp att förstå i huvudmetoden Run
som visas nedan. Azure-funktionen använder bindningar för utlösare och utdata, som tillämpas med hjälp av attribut för metodsignaturen Run
.
Attributet Table
använder två parametrar. Den första parametern anger namnet på tabellen för att skriva det tolkade bildtextvärdet som returneras av funktionen. Den andra Connection
parametern hämtar en Table Storage-anslutningssträng från miljövariablerna så att vår Azure-funktion har åtkomst till den.
Attributet BlobTrigger
används för att binda vår funktion till uppladdningshändelsen i Blob Storage och tillhandahåller den uppladdade bloben Run
till funktionen. Blobutlösaren har två egna parametrar – en för namnet på blobcontainern som ska övervakas för uppladdningar och en för anslutningssträng för vårt lagringskonto igen.
// 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; }
}
Den här koden hämtar även viktiga konfigurationsvärden från miljövariabler, till exempel lagringskontot anslutningssträng och Visuellt innehåll nyckel. Vi lägger till dessa miljövariabler i vår Azure-funktionsmiljö när den har distribuerats.
Funktionen ProcessImage
använder också en andra metod med namnet AnalyzeImage
, som visas nedan. Den här koden använder URL-slutpunkten och nyckeln för vårt Visuellt innehåll-konto för att göra en begäran till servern om att bearbeta avbildningen. Begäran returnerar all text som identifieras i bilden, som sedan skrivs till Table Storage med hjälp av utdatabindningen för Run
metoden.
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();
}
Om du vill köra projektet lokalt kan du fylla i miljövariablerna med hjälp av filen local.settings.json. I den här filen fyller du i platshållarvärdena med de värden som du sparade tidigare när du skapade Azure-resurserna.
Även om Azure-funktionskoden körs lokalt kommer den fortfarande att ansluta till livetjänsterna i Azure i stället för att använda några lokala emulatorer.
{
"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"
}
}
Nu är du redo att distribuera vårt program till Azure med hjälp av Visual Studio. Du kan också skapa Azure Functions-appen i Azure samtidigt som en del av distributionsprocessen.
Börja genom att välja projektnoden ProcessImage och sedan Publicera.
På dialogrutan Publicera väljer du Azure och väljer Nästa.
Välj Azure Function App (Windows) eller Azure Function App (Linux) på nästa skärm och välj sedan Nästa igen.
I steget Functions-instans ser du till att välja den prenumeration som du vill distribuera till. Välj sedan den gröna + symbolen till höger i dialogrutan.
En ny dialogruta öppnas. Ange följande värden för din nya funktionsapp.
msdocs-storage-function
resursgrupp som du skapade tidigare.
När du har fyllt i alla dessa värden väljer du Skapa. Visual Studio och Azure börjar etablera de begärda resurserna, vilket tar en stund att slutföra.
När processen är klar väljer du Slutför för att stänga dialogarbetsflödet.
Det sista steget för att distribuera Azure-funktionen är att välja Publicera längst upp till höger på skärmen. Det kan också ta en stund att publicera funktionen. När programmet är klart körs det på Azure.
Azure-funktionen har distribuerats, men den kan inte ansluta till vårt lagringskonto och Visuellt innehåll tjänster ännu. Rätt nycklar och anslutningssträng måste först läggas till i konfigurationsinställningarna för Azure Functions-appen.
Överst i Azure Portal söker du efter funktionen och väljer Funktionsapp i resultatet.
På skärmen Funktionsapp väljer du den funktionsapp som du skapade i Visual Studio.
På översiktssidan för funktionsappen väljer du Konfiguration i det vänstra navigeringsfältet. Detta öppnar en sida där vi kan hantera olika typer av konfigurationsinställningar för vår app. För tillfället är vi intresserade av avsnittet Programinställningar .
Nästa steg är att lägga till inställningar för vårt lagringskontonamn och anslutningssträng, den Visuellt innehåll hemliga nyckeln och Visuellt innehåll slutpunkten.
På fliken Programinställningar väljer du + Ny programinställning. I den utfällbara menyn som visas anger du följande värden:
Klicka på OK för att lägga till den här inställningen i din app.
Nu ska vi upprepa den här processen för slutpunkten för vår Visuellt innehåll-tjänst med hjälp av följande värden:
Upprepa det här steget igen för anslutningen till lagringskontot med hjälp av följande värden:
Upprepa slutligen den här processen en gång till för lagringskontots namn med hjälp av följande värden:
När du har lagt till de här programinställningarna måste du välja Spara överst på konfigurationssidan. När sparande har slutförts kan du även trycka på Uppdatera för att se till att inställningarna hämtas.
Alla miljövariabler som krävs för att ansluta vår Azure-funktion till olika tjänster finns nu på plats.
Nu är du redo att testa vårt program! Du kan ladda upp en blob till containern och sedan kontrollera att texten i bilden har sparats i Table Storage.
Sök först efter Lagring överst i Azure Portal och välj lagringskonto. På lagringskontosidan väljer du det konto som du skapade tidigare.
Välj sedan Containrar i det vänstra navigeringsfältet och navigera sedan till containern ImageAnalysis som du skapade tidigare. Härifrån kan du ladda upp en testbild direkt i webbläsaren.
Du hittar några exempelbilder som ingår i avbildningsmappen i roten för det nedladdningsbara exempelprojektet, eller så kan du använda en egen.
Längst upp på sidan ImageAnalysis väljer du Ladda upp. I den utfällbara menyn som öppnas väljer du mappikonen till höger för att öppna en filwebbläsare. Välj den bild som du vill ladda upp och välj sedan Ladda upp.
Filen ska visas i blobcontainern. Sedan kan du kontrollera att uppladdningen utlöste Azure-funktionen och att texten i bilden analyserades och sparades korrekt i Table Storage.
Navigera upp en nivå i ditt lagringskonto med hjälp av sökvägarna överst på sidan. Leta upp och välj Lagringswebbläsare i det vänstra navigeringsfältet och välj sedan Tabeller.
En ImageText-tabell bör nu vara tillgänglig. Klicka på tabellen för att förhandsgranska dataraderna i den. Du bör se en post för den bearbetade bildtexten i vår uppladdning. Du kan verifiera detta med hjälp av tidsstämpeln eller genom att visa innehållet i kolumnen Text .
Grattis! Du lyckades bearbeta en avbildning som laddades upp till Blob Storage med hjälp av Azure Functions och Visuellt innehåll.
Om du inte kommer att fortsätta att använda det här programmet kan du ta bort de resurser som du skapade genom att ta bort resursgruppen.
msdocs-storage-function
Välj resursgruppen i listan.Händelser
31 mars 23 - 2 apr. 23
Den största utbildningshändelsen för Infrastruktur, Power BI och SQL. 31 mars – 2 april. Använd koden FABINSIDER för att spara 400 USD.
Anmäl dig i dagUtbildning
Modul
Ladda upp avbildningar till Azure Blob Storage från en statisk webbapp - Training
Lär dig hur du på ett säkert sätt laddar upp avbildningar till Azure Blob Storage från en statisk webbapp med hjälp av en Azure-funktion för att generera signaturer för delad åtkomst på begäran.
Certifiering
Microsoft Certified: Azure Developer Associate - Certifications
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.
Dokumentation
Ladda upp, analysera filer med Azure Functions och Blob Storage
Med JavaScript lär du dig hur du laddar upp en avbildning till Azure Blob Storage och analyserar dess innehåll med hjälp av Azure Functions och Azure AI-tjänster
Snabbstart: Ladda upp, ladda ned och lista blobar – Azure-portalen - Azure Storage
I den här snabbstarten använder du Azure-portalen i objektlagring (Blob). Sedan använder du Azure-portalen och laddar upp en blob till Azure Storage, laddar ned en blob och listar blobarna i en container.
JavaScript: Ladda upp avbildning till Blob Storage - JavaScript on Azure
Använd en klientwebbapp för att ladda upp en fil till Azure Storage-blobbar direkt med hjälp av en URL med en SAS-tokenfrågesträng.