Condividi tramite


Scenari di Funzioni di Azure

Spesso si creano sistemi che reagiscono a una serie di eventi critici. Sia che si stia creando un'API Web, rispondendo alle modifiche del database o elaborando flussi di eventi o messaggi, è possibile usare Funzioni di Azure per implementare questi sistemi.

In molti casi una funzione si integra con una serie di servizi cloud per offrire implementazioni complete e avanzate. L'elenco seguente mostra scenari comuni (ma non esaustivi) per Funzioni di Azure.

Selezionare il linguaggio di sviluppo nella parte superiore dell'articolo.

Elaborare caricamenti di file

È possibile usare le funzioni in diversi modi per elaborare i file in o in un contenitore di archiviazione BLOB. Per altre informazioni sulle opzioni per l'attivazione in un contenitore BLOB, vedere Uso di BLOB nella documentazione sulle procedure consigliate.

Ad esempio, in una soluzione di vendita al dettaglio, un sistema partner può inviare informazioni sul catalogo prodotti come file nell'archivio BLOB. È possibile usare una funzione attivata da BLOB per convalidare, trasformare ed elaborare i file nel sistema principale durante il caricamento.

Diagramma di un processo di caricamento di file con Funzioni di Azure.

Le esercitazioni seguenti usano un trigger BLOB (basato su Griglia di eventi) per elaborare i file in un contenitore BLOB:

Ad esempio, usare il trigger BLOB con una sottoscrizione di eventi nei contenitori BLOB:

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

Elaborazione di flussi ed eventi in tempo reale

Le applicazioni cloud, i dispositivi IoT e i dispositivi di rete generano e raccolgono una grande quantità di dati di telemetria. Le Funzioni di Azure possono elaborare i dati in quasi tempo reale come via rapida, quindi archiviarli in Azure Cosmos DB per l'uso in una dashboard di analisi.

Le funzioni possono anche usare trigger di eventi a bassa latenza come Griglia di eventi e output in tempo reale come SignalR per elaborare dati quasi in tempo reale.

Diagramma di un processo di flusso in tempo reale con Funzioni di Azure.

Ad esempio, è possibile usare il trigger di hub eventi per leggere da un hub eventi e il binding di output per scrivere in un hub eventi dopo il debatching e la trasformazione degli eventi:

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

Machine Learning e intelligenza artificiale

Funzioni di Azure offre risorse di calcolo serverless che si integrano con l'intelligenza artificiale e i servizi di Azure per semplificare la creazione di applicazioni intelligenti ospitate nel cloud. È possibile usare il modello di programmazione funzioni per creare e ospitare server MCP (Remote Model Content Protocol) e implementare vari strumenti di intelligenza artificiale. Per altre informazioni, vedere Strumenti e server MCP.

L'estensione di associazione OpenAI di Azure consente di integrare le funzionalità di intelligenza artificiale e i comportamenti del servizio OpenAI di Azure, ad esempio la generazione aumentata di recupero (RAG), nelle esecuzioni del codice della funzione. Per altre informazioni, vedere Generazione aumentata tramite recupero.

Una funzione può anche chiamare un modello TensorFlow o i servizi di intelligenza artificiale di Azure per elaborare e classificare un flusso di immagini.

Diagramma di un processo di Machine Learning e intelligenza artificiale con Funzioni di Azure.

Per altre informazioni, vedere Usare strumenti e modelli di intelligenza artificiale in Funzioni di Azure.

Eseguire attività pianificate

Funzioni consente di eseguire il codice in base a una pianificazione Cron definita dall'utente.

Vedere Creare una funzione nel portale di Azure che viene eseguita in base a una pianificazione.

Ad esempio, è possibile analizzare un database clienti dei servizi finanziari per individuare voci duplicate ogni 15 minuti per evitare che più comunicazioni vengano eseguite allo stesso cliente.

Diagramma di un'attività pianificata in cui una funzione pulisce un database ogni 15 minuti deduplicando le voci in base alla logica di business.

Per esempi, vedere questi frammenti di codice:

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

Creare un'API Web scalabile

Una funzione attivata da HTTP definisce un endpoint HTTP. Questi endpoint eseguono il codice della funzione che può connettersi ad altri servizi direttamente, oppure usando estensioni di binding. È possibile comporre gli endpoint in un'API basata sul Web.

È anche possibile utilizzare un endpoint di funzione attivato tramite HTTP come integrazione di webhook, ad esempio i webhook di GitHub. In questo modo, è possibile creare funzioni che elaborano dati da eventi GitHub. Per altre informazioni, vedere Monitorare gli eventi di GitHub usando un webhook con Funzioni di Azure.

Diagramma dell'elaborazione di una richiesta HTTP con Funzioni di Azure.

Per esempi, vedere questi frammenti di codice:

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

Creare un flusso di lavoro serverless

Le funzioni spesso fungono da componente di calcolo in una topologia serverless di flusso di lavoro, come ad esempio un flusso di lavoro di Logic Apps. È anche possibile creare orchestrazioni a esecuzione prolungata usando l'estensione Durable Functions. Per altre informazioni, vedere Panoramica di Durable Functions.

Diagramma combinato di una serie di flussi di lavoro serverless specifici con Funzioni di Azure.

Rispondere alle modifiche di database

Alcuni processi devono registrare, controllare o eseguire altre operazioni quando vengono modificati i dati archiviati. I trigger di Funzioni consentono di ricevere una notifica di eventuali modifiche ai dati per al fine di inizializzare un'operazione di questo tipo.

Diagramma di una funzione usata per rispondere alle modifiche del database.

Creare sistemi di messaggistica affidabili

È possibile usare Funzioni con servizi di messaggistica di Azure per creare soluzioni di messaggistica avanzate basate su eventi.

Ad esempio, è possibile usare trigger nelle code di Archiviazione di Azure per concatenare una serie di esecuzioni di funzioni. In alternativa, usare code e trigger del bus di servizio per un sistema di ordinamento online.

Diagramma di Funzioni di Azure in un sistema di messaggi affidabile.

Questi articoli illustrano come scrivere l'output in una coda di archiviazione:

Questi articoli illustrano come eseguire l'attivazione da una coda o un argomento del bus di servizio di Azure.

Passaggi successivi