Le Azure Function sono un servizio cosiddetto serverless che ci permette di eseguire codice nei più disparati linguaggi semplicemente associando un trigger, un eventuale input e un eventuale output.
Tra i trigger disponibili troviamo timer, http, code e di recente è stata introdotta la possibilità anche di utilizzare file, cioè di scatenare una funzione quando si introducono file in una delle piattaforme di storage supportate, tra le quali Box, Dropbox, OneDrive, Google Drive e FTP.
Per usufruire di questa possibilità è necessario disporre di una API Connection su uno di questi provider, possibile attraverso una Logic App, oppure sfruttando il wizard di creazione di una function, cercando la voce ExternalFileTrigger. Ci vengono chiesti come al solito il nome, il path dove cercare i nuovi file e la connessione.

Se non disponiamo di una connessione è sufficiente premere new e seguire la procedura, la quale ci consente di creare il provider tra quelli supportati.

Tornati alla creazione della funzione, ci viene chiesto di indicare anche una connessione per l'output, cioè per produrre un nuovo file in uscita. Possiamo usare la stessa connessione o un'altra. Se non vogliamo un file in uscita, continuiamo pure con la stessa connessione di ingresso, per poi intervenire manualmente. Terminato il wizard, infatti, possiamo aprire il file function.json indicando solo il binding di ingresso.
{
"bindings": [
{
"type": "apiHubFileTrigger",
"name": "inputFile",
"direction": "in",
"path": "azure-function/{name}.txt",
"connection": "dropbox_DROPBOX"
}
],
"disabled": false
}Possiamo notare che oltre al nome della cartella, nel path utilizziamo anche il segnaposto {name} eventualmente seguito dall'estensione, per poter recuperare il nome del file aggiunto. InputFile invece sarà il nome del parametro contenente il file in ingresso.
A questo punto ci rechiamo sul file contenente la funzione, nell'esempio di tipo csx.
public static void Run(string inputFile, string name, TraceWriter log)
{
log.Info($"New file: {name}");
log.Info($"Content: {inputFile}");
}Come possiamo vedere, nell'esempio logghiamo solo il nome del file, contenuto nel parametro name, e il contenuto del file stesso, contenuto nel parametro inputFile. Quest'ultimo può assumere tipi diversi a seconda delle modalità di lettura che vogliamo sfruttare: string, byte[], Stream, TextReader, StreamReader.
Non ci resta che salvare il tutto che, se abbiamo fatto tutto correttamente, ci mostra nel log l'avvenuta compilazione. Passiamo quindi ad aggiungere il file all'interno di DropBox per poi trovarci, dopo qualche secondo, l'indicazione nel log della funzione.
Per altre informazioni rimandiamo alla pagina di dettaglio:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-external-file
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Integrare email esterne con Azure Functions e Managed Connectors
Centralizzare e governare MCP server e Skill con Azure API Center
Diagnosticare e monitorare Azure con Azure MCP Server
Azure SQL Database per dev: tutte le novità da non perdere
Creare una file based app con C#
Keynote .NET Conference Italia 2025
Utilizzare il Null conditional assignment di C# 14
Estrarre solo alcuni file da uno zip tramite le classi del namespace System.IO.Compression
Referenziare un package NuGet in una file based app .NET
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Integrare Agenti A2A in Azure API Management
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Caricamenti veloci da CDN e fallback locale con ASP.NET Core
- Utilizzare dati in formato XML in XAML
- Accedere a dati esposti con WebService con Silverlight 1.0


