Megosztás a következőn keresztül:


Azure Functions-forgatókönyvek

Gyakran olyan rendszereket hoz létre, amelyek kritikus események sorozatára reagálnak. Akár webes API-t hoz létre, válaszol az adatbázis változásaira, vagy feldolgoz egy eseménystreamet vagy üzenetet, az Azure Functions használatával implementálhatja ezeket a rendszereket.

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ábbi lista az Azure Functions gyakori (de egyáltalán nem teljes) forgatókönyveit mutatja be.

Válassza ki a fejlesztési nyelvet a cikk tetején.

Fájlfeltöltések feldolgozása

A függvényekkel többféleképpen is feldolgozhatja a fájlokat egy blobtárolóba vagy onnan kifelé. 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ény használatával ellenőrizheti, átalakíthatja és feldolgozhatja a fájlokat a fő rendszerbe feltöltéskor.

Az Azure Functions használatával végzett fájlfeltöltési folyamat ábrája.

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:

Használja például a blob-eseményindítót 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();
        }
    }
}

Valós idejű stream- és eseményfeldolgozás

A felhőalkalmazások, az IoT-eszközök és a hálózati eszközök nagy mennyiségű telemetriát hoznak létre és gyűjtenek össze. 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.

Valós idejű streamfolyamat diagramja az Azure Functions használatával.

Például használhatja az eseményközpont triggerét az események olvasására egy eseményközpontból, valamint a kimeneti kötést az események írására egy eseményközpontba, miután azokat szétválasztotta és átalakította.

[FunctionName("ProcessorFunction")]
public static async Task Run(
    [EventHubTrigger(
        "%Input_EH_Name%",
        Connection = "InputEventHubConnectionSetting",
        ConsumerGroup = "%Input_EH_ConsumerGroup%")] EventData[] inputMessages,
    [EventHub(
        "%Output_EH_Name%",
        Connection = "OutputEventHubConnectionSetting")] 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);
}

Gépi tanulás és mesterséges intelligencia

Az Azure Functions kiszolgáló nélküli számítási erőforrásokat biztosít, amelyek integrálhatók az AI-vel és az Azure-szolgáltatásokkal a felhőalapú intelligens alkalmazások létrehozásának egyszerűsítése érdekében. A Functions programozási modell használatával távoli Model Content Protocol -kiszolgálókat hozhat létre és üzemeltethet, és különböző AI-eszközöket implementálhat. További információ: Eszközök és MCP-kiszolgálók.

Az Azure OpenAI kötésbővítményével integrálhatja az Azure OpenAI szolgáltatás AI-funkcióit és viselkedését, például a lekéréses kiegészítésű generációt (RAG) a függvénykódvégrehajtásokba. További információért lásd: Keresés-kibővített generálás.

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.

Az Azure Functionst használó gépi tanulási és AI-folyamat ábrája.

További információ: AI-eszközök és modellek használata az Azure Functionsben.

Ü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.

Lásd: Függvény létrehozása az Azure Portalon, amely ütemezés szerint fut.

Elemezhet például egy pénzügyi szolgáltatási ügyféladatbázist, amely 15 percenként ismétlődő bejegyzéseket tartalmaz, így elkerülheti, hogy több kommunikáció is egyazon ügyfél felé haladjon.

Egy ütemezett tevékenység diagramja, amelyben egy függvény 15 percenként megtisztít egy adatbázist, és az üzleti logika alapján deduplikálja a bejegyzéseket.

Ilyenek például az alábbi kódrészletek:

[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.

EGY HTTP-kérés Azure Functions használatával történő feldolgozásának diagramja.

Ilyenek például az alábbi kódrészletek:

[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();
}

Kiszolgáló nélküli munkafolyamat létrehozása

A függvények gyakran szolgálnak számítási összetevőként egy kiszolgáló nélküli munkafolyamat-topológiában, például egy Logic Apps-munkafolyamatban. A Durable Functions bővítmény használatával hosszú élettartamú vezényléseket is létrehozhat. További információ: Durable Functions – áttekintés.

Az Azure Functionst használó konkrét kiszolgáló nélküli munkafolyamatok sorozatának kombinált diagramja.

Az adatbázis változásainak megválaszolása

Egyes folyamatoknak naplózniuk, auditálniuk vagy más műveleteket kell végrehajtaniuk a tárolt adatok módosításakor. A függvények eseményindítói jó módot nyújtanak arra, hogy értesítést kapjon az adatváltozásokról egy ilyen művelet elindításához.

Az adatbázis változásainak megválaszolására használt függvény diagramja.

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 Azure Functions diagramja egy megbízható üzenetrendszerben.

Ezek a cikkek bemutatják, 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.

Következő lépések