Azure Functions-forgatókönyvek
Gyakran építünk olyan rendszereket, amelyek kritikus eseményekre reagálnak. Akár webes API-t hoz létre, válaszol az adatbázis változásaira, feldolgozhatja az eseménystreameket vagy az üzeneteket, az Azure Functions használatával implementálhatja őket.
A függvények sok esetben integrálhatók a felhőszolgáltatások tömbjével, így funkciógazdag implementációkat biztosítanak. Az alábbiakban az Azure Functions gyakori (de egyáltalán nem teljes) forgatókönyveit ismertetjük.
Válassza ki a fejlesztési nyelvet a cikk tetején.
Fájlfeltöltések feldolgozása
A függvények többféleképpen is feldolgozhatók a blobtárolókban lévő vagy onnan kimenő fájlokhoz. Ha többet szeretne megtudni a blobtárolók aktiválási lehetőségeiről, tekintse meg a blobok használatát az ajánlott eljárások dokumentációjában.
Egy kereskedelmi megoldásban például a partnerrendszer fájlként küldheti el a termékkatalógus adatait a Blob Storage-ba. A blob által aktivált függvények segítségével ellenőrizheti, átalakíthatja és feldolgozhatja a fájlokat a fő rendszerbe feltöltéskor.
Az alábbi oktatóanyagok egy Blob-eseményindítót (Event Grid-alapú) használnak a blobtárolóban lévő fájlok feldolgozásához:
A blob eseményindítójának használata például egy esemény-előfizetéssel a blobtárolókon:
[FunctionName("ProcessCatalogData")]
public static async Task Run([BlobTrigger("catalog-uploads/{name}", Source = BlobTriggerSource.EventGrid, Connection = "<NAMED_STORAGE_CONNECTION>")]Stream myCatalogData, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myCatalogData.Length} Bytes");
using (var reader = new StreamReader(myCatalogData))
{
var catalogEntry = await reader.ReadLineAsync();
while(catalogEntry !=null)
{
// Process the catalog entry
// ...
catalogEntry = await reader.ReadLineAsync();
}
}
}
- Eseményalapú Blob Storage által aktivált függvény, amely nagy léptékű szöveggé alakítja a PDF-dokumentumokat
- Fájl feltöltése és elemzése az Azure Functions és a Blob Storage használatával
- Feltöltött képek átméretezésének automatizálása az Event Grid használatával
- Azure Functions aktiválása blobtárolókon esemény-előfizetés használatával
Valós idejű stream- és eseményfeldolgozás
Olyan sok telemetriát hoz létre és gyűjt a rendszer a felhőalkalmazásokból, az IoT-eszközökből és a hálózati eszközökről. Az Azure Functions a gyakori elérésű útvonalként közel valós időben feldolgozhatja ezeket az adatokat, majd az Azure Cosmos DB-ben tárolhatja azokat egy elemzési irányítópulton való használatra.
A függvények alacsony késésű eseményindítókat is használhatnak, például az Event Gridet, valamint valós idejű kimeneteket, például a SignalR-t az adatok közel valós idejű feldolgozásához.
Például az eseményközpontok eseményközpontból való olvasására és a kimeneti kötés használatára az eseményközpontba való íráshoz az események törlése és átalakítása után:
[FunctionName("ProcessorFunction")]
public static async Task Run(
[EventHubTrigger(
"%Input_EH_Name%",
Connection = "InputEventHubConnectionString",
ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
[EventHub(
"%Output_EH_Name%",
Connection = "OutputEventHubConnectionString")] IAsyncCollector<SensorDataRecord> outputMessages,
PartitionContext partitionContext,
ILogger log)
{
var debatcher = new Debatcher(log);
var debatchedMessages = await debatcher.Debatch(inputMessages, partitionContext.PartitionId);
var xformer = new Transformer(log);
await xformer.Transform(debatchedMessages, partitionContext.PartitionId, outputMessages);
}
- Service Bus-eseményindító virtuális hálózati integrációval
- Streamelés nagy méretekben az Azure Event Hubs, a Functions és az Azure SQL használatával
- Streamelés nagy méretekben az Azure Event Hubs, a Functions és a Cosmos DB használatával
- Nagy léptékű streamelés az Azure Event Hubsban a Kafka-gyártóval, a Functions és a Kafka-eseményindító és a Cosmos DB
- Streamelés nagy méretekben az Azure IoT Hub, a Functions és az Azure SQL használatával
- Azure Event Hubs-eseményindító az Azure Functionshez
- Apache Kafka-eseményindító az Azure Functionshez
Gépi tanulás és mesterséges intelligencia
Az adatfeldolgozás mellett az Azure Functions a modellekre is használható. Az Azure OpenAI kötésbővítmény segítségével egyszerűen integrálhatja az Azure OpenAI szolgáltatás funkcióit és viselkedését a függvénykódvégrehajtásokba.
A függvények csatlakozhatnak az OpenAI-erőforrásokhoz a szöveg- és csevegés befejezésének engedélyezéséhez, az asszisztensek használatához, valamint a beágyazások és szemantikai keresések használatához.
A függvények tensorFlow-modellt vagy Azure AI-szolgáltatásokat is meghívhatnak a rendszerkép-adatfolyamok feldolgozásához és besorolásához.
- Oktatóanyag: Szövegkiegészítés az Azure OpenAI használatával
- Példa: Szövegfájlok feltöltése és adatok elérése különböző OpenAI-funkciókkal
- Minta: Szövegösszesítés az AI Cognitive Language Service használatával
- Példa: Szövegkiegészítés az Azure OpenAI használatával
- Minta: Asszisztensi készségek biztosítása a modellhez
- Minta: Beágyazások létrehozása
- Minta: Szemantikai keresés kihasználva
- Oktatóanyag: Szövegkiegészítés az Azure OpenAI használatával
- Oktatóanyag: Gépi tanulási modellek alkalmazása az Azure Functionsben a Python és a TensorFlow használatával
- Oktatóanyag: Előre betanított képbesorolási modell üzembe helyezése az Azure Functionsben a PyTorch használatával
- Példa: Szövegkiegészítés az Azure OpenAI használatával
- Minta: Asszisztensi készségek biztosítása a modellhez
- Minta: Beágyazások létrehozása
- Minta: Szemantikai keresés kihasználva
- Példa: Csevegés a ChatGPT használatával
- Minta: LangChain az Azure OpenAI és a ChatGPT használatával
Ütemezett tevékenységek futtatása
A Functions lehetővé teszi a kód futtatását egy ön által meghatározott cron-ütemezés alapján.
Megtudhatja, hogyan hozhat létre ütemezés szerint futó függvényt az Azure Portalon.
A pénzügyi szolgáltatások ügyféladatbázisa például 15 percenként elemezhető ismétlődő bejegyzések esetén, így elkerülhető, hogy több kommunikáció egyazon ügyfél felé érkezik.
[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, ILogger log)
{
if (myTimer.IsPastDue)
{
log.LogInformation("Timer is running late!");
}
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
// Perform the database deduplication
}
Méretezhető webes API létrehozása
A HTTP által aktivált függvény http-végpontot határoz meg. Ezek a végpontok olyan függvénykódot futtatnak, amely közvetlenül vagy kötésbővítmények használatával tud csatlakozni más szolgáltatásokhoz. A végpontokat webes API-ba írhatja.
A HTTP által aktivált függvényvégpontot webhook-integrációként is használhatja, például a GitHub webhookokat. Ily módon olyan függvényeket hozhat létre, amelyek adatokat dolgoznak fel a GitHub-eseményekből. További információ: GitHub-események monitorozása webhook használatával az Azure Functions használatával.
Példákért tekintse meg a következőket:
[FunctionName("InsertName")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequest req,
[CosmosDB(
databaseName: "my-database",
collectionName: "my-container",
ConnectionStringSetting = "CosmosDbConnectionString")]IAsyncCollector<dynamic> documentsOut,
ILogger log)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);
string name = data?.name;
if (name == null)
{
return new BadRequestObjectResult("Please pass a name in the request body json");
}
// Add a JSON document to the output container.
await documentsOut.AddAsync(new
{
// create a random ID
id = System.Guid.NewGuid().ToString(),
name = name
});
return new OkResult();
}
- Cikk: Kiszolgáló nélküli API-k létrehozása a Visual Studióban az Azure Functions és az API Management integrációja használatával
- Oktatás: Több függvényalkalmazás megjelenítése konzisztens API-ként az Azure API Management használatával
- Minta: Webalkalmazás C# API-val és Azure SQL DB-vel statikus webalkalmazásokon és függvényeken
- Azure Functions HTTP-eseményindító
Kiszolgáló nélküli munkafolyamat létrehozása
A Függvények gyakran a kiszolgáló nélküli munkafolyamat-topológiák számítási összetevője, például a Logic Apps-munkafolyamatok. A Durable Functions bővítmény használatával hosszú ideig futó vezényléseket is létrehozhat. További információ: Durable Functions – áttekintés.
Az adatbázis változásainak megválaszolása
Vannak olyan folyamatok, amelyekben előfordulhat, hogy a tárolt adatok módosításakor naplózni, naplózni vagy más műveletet kell végrehajtania. A függvények eseményindítói jó módot nyújtanak arra, hogy értesítést kapjon az ilyen művelet kezdeti változásairól.
Tekintse az alábbi példákat:
Megbízható üzenetrendszerek létrehozása
A Functions és az Azure üzenetkezelési szolgáltatások segítségével speciális eseményvezérelt üzenetkezelési megoldásokat hozhat létre.
Például az Azure Storage-üzenetsorok eseményindítóit használhatja a függvényvégrehajtások sorozatának összeláncolási módjaként. Vagy használjon service bus-üzenetsorokat és eseményindítókat egy online rendelési rendszerhez.
Az alábbi cikk bemutatja, hogyan írhat kimenetet egy tárolási üzenetsorba.
Ezek a cikkek bemutatják, hogyan aktiválható egy Azure Service Bus-üzenetsorból vagy -témakörből.