Det här exempelscenariot beskriver en pipeline för massinmatning och analys i nära realtid av dokument som kommer från offentliga RSS-nyhetsflöden. Den använder Azure Cognitive Services för att ge användbara insikter baserat på textöversättning, ansiktsigenkänning och attitydidentifiering. Mer specifikt är stegen för bearbetning av avbildning och naturligt språk sammankopplade i en meddelandepipeline baserat på Azure Service Bus. Utdata från pipelinen är ett meddelande som innehåller insikten eller analysen.
Det här scenariot innehåller exempel på engelska,ryskaoch tyska nyhetsflöden, men du kan enkelt utöka det till andra RSS-flöden och andra språk. För enkel distribution baseras datainsamling, bearbetning och analys helt på Azure-tjänster.
Potentiella användningsfall
Även om det här scenariot baseras på bearbetning av RSS-feeds, är det relevant för alla dokument, webbplatser eller artiklar där du skulle behöva:
- Översätt text till ett val av språk.
- Hitta nyckelfraser, entiteter och användarsentiment i digitalt innehåll.
- Identifiera objekt, text och landmärken i bilder som är associerade med en digital artikel.
- Identifiera personer efter kön och ålder i bilder som är associerade med digitalt innehåll.
Arkitektur

Data flödar genom lösningen på följande sätt:
Ett RSS-nyhetsflöde fungerar som generatorn som hämtar data från ett dokument eller en artikel. Med en artikel innehåller data till exempel vanligtvis en rubrik, en sammanfattning av nyhetsobjektets ursprungliga brödtext och ibland bilder.
En generator eller inmatningsprocess infogar artikeln och eventuella associerade bilder i en Azure Cosmos DB Samling.
Ett meddelande utlöser en inmatningsfunktion i Azure Functions som lagrar artikeltexten i Cosmos DB och artikelbilderna (om några) i Azure Blob Storage. Artikeln skickas sedan till nästa kö.
En översättningsfunktion utlöses av köhändelsen. Den använder API:et Translate Text Azure Cognitive Services för att identifiera språket, översätta vid behov och samla in sentiment, nyckelfraser och entiteter från brödtexten och rubriken. Sedan skickar den artikeln till nästa kö.
En detect-funktion utlöses från den köade artikeln. Den använder Visuellt innehåll tjänsten för att identifiera objekt, landmärken och skrivna ord i den associerade bilden och skickar sedan artikeln till nästa kö.
En ansiktsfunktion utlöses från den köade artikeln. Tjänsten Ansikts-API i Azure används för att identifiera ansikten för kön och ålder i den associerade bilden och skickar sedan artikeln till nästa kö.
När alla funktioner har slutförts utlöses av meddela-funktionen. Den läser in de bearbetade posterna för artikeln och söker igenom dem efter de resultat du vill ha. Om det hittas flaggas innehållet och ett meddelande skickas till det system du väljer.
Vid varje bearbetningssteg skriver funktionen resultatet till Azure Cosmos DB. Slutligen kan data användas efter behov. Du kan till exempel använda den för att förbättra affärsprocesser, hitta nya kunder eller identifiera problem med kundnöjdhet.
Komponenter
I det här exemplet används följande lista över Azure-komponenter.
Azure Storage används för att lagra raw-bild- och videofiler som är associerade med en artikel. Ett sekundärt lagringskonto skapas med Azure App Service används som värd för Azure-funktionskoden och loggarna.
Azure Cosmos DB innehåller information om artikeltext, bilder och videospårning. Resultatet av de Cognitive Services stegen lagras också här.
Azure Functions kör funktionskoden som används för att svara på kömeddelanden och transformera det inkommande innehållet. Azure App Service är värd för funktionskoden och bearbetar posterna seriellt. Det här scenariot innehåller fem funktioner: Mata in, Transformera, Identifiera objekt, Ansikte och Meddela.
Azure Service Bus är värd för Azure Service Bus köer som används av funktionerna.
Azure Cognitive Services tillhandahåller AI för pipelinen baserat på implementeringar av Visuellt innehåll service, Ansikts-APIoch Översättningsmaskinöversättningstjänst för text.
Azure Application Insights analysverktyg som hjälper dig att diagnostisera problem och förstå funktionerna i ditt program.
Alternativ
I stället för att använda ett mönster baserat på köavisering och Azure Functions kan du använda ett ämnes- och prenumerationsmönster för det här dataflödet. Azure Service Bus-avsnitt kan användas för att bearbeta de olika delarna av artikeln parallellt i stället för den seriella bearbetning som görs i det här exemplet. Om du vill ha mer information kan du jämföra köer och ämnen.
Använd Azure Logic Apps att implementera funktionskoden och implementera låsning på postnivå, till exempel den som tillhandahålls av Redlock-algoritmen (som krävs för parallell bearbetning tills Azure Cosmos DB stöder partiella dokumentuppdateringar). Mer information finns i jämför Functions och Logic Apps.
Implementera den här arkitekturen med anpassade AI-komponenter i stället för befintliga Azure-tjänster. Utöka till exempel pipelinen med hjälp av en anpassad modell som identifierar vissa personer i en bild i stället för de allmänna data om antal personer, kön och ålder som samlas in i det här exemplet. Om du vill använda anpassade maskininlärnings- eller AI-modeller med den här arkitekturen skapar du modellerna som RESTful-slutpunkter så att de kan anropas från Azure Functions.
Använd en annan indatamekanism i stället för RSS-flöden. Använd flera generatorer eller inmatningsprocesser för att mata Azure Cosmos DB och Azure Storage.
Azure Cognitive Search är en AI-funktion i Azure Search som också kan användas för att extrahera text från bilder, blobar och andra ostrukturerade datakällor.
Överväganden
För enkelhetens skull använder det här exempelscenariot bara några av de tillgängliga API:erna och tjänsterna från Azure Cognitive Services. Text i bilder kan till exempel analyseras med hjälp av Textanalys API. Målspråket i det här scenariot antas vara engelska, men du kan ändra indata till val annat språk som stöds.
Skalbarhet
Azure Functions skalning beror på vilken värdplan du använder. Den här lösningen förutsätter en förbrukningsplandär beräkningskraften tilldelas automatiskt till funktionerna när det behövs. Du betalar bara när dina funktioner körs. Ett annat alternativ är att använda en dedikerad plan,som gör att du kan skala mellan nivåer för att allokera en annan mängd resurser.
Med Azure Cosmos DB är nyckeln att distribuera din arbetsbelastning ungefär jämnt mellan ett tillräckligt stort antal partitionsnycklar. Det finns ingen gräns för den totala mängd data som en container kan lagra eller till den totala mängden dataflöde som en container har stöd för.
Hantering och loggning
Den här lösningen använder Application Insights för att samla in information om prestanda och loggning. En instans av Application Insights skapas med distributionen i samma resursgrupp som de andra tjänsterna som behövs för den här distributionen.
Så här visar du loggarna som genererats av lösningen:
Gå till Azure Portal och gå till resursgruppen som skapades för distributionen.
Välj programinstansen Insights programinstansen.
I avsnittet Insights programsöker du till Undersök\Sök och söker efter data.
Säkerhet
Azure Cosmos DB använder en skyddad anslutning och signatur för delad åtkomst via C# SDK som tillhandahålls av Microsoft. Det finns inga andra externt riktade ytområden. Läs mer om metodtips för säkerhet för Azure Cosmos DB.
Prissättning
Azure Cosmos DB är kraftfullt men medför den största kostnaden i den här distributionen. Du kan använda en annan lagringslösning genom att omstrukturera Azure Functions kod som tillhandahålls.
Prissättningen för Azure Functions varierar beroende på vilken plan den körs i.
Distribuera scenariot
Anteckning
Du måste ha ett befintligt Azure-konto. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
All kod för det här scenariot är tillgänglig GitHub lagringsplatsen. Den här lagringsplatsen innehåller källkoden som används för att skapa generatorprogrammet som matar pipelinen för den här demonstrationen.
Nästa steg
- Välja ett analysdatalager i Azure
- Välja en dataanalysteknik i Azure
- Välja en lagringsteknik för stordata i Azure
- Introduktion till Azure Blob Storage
- Välkommen till Azure Cosmos DB
- Introduktion till Azure Functions
Relaterade resurser
Ytterligare analysarkitekturer: