Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ofta skapar du system som reagerar på en rad kritiska händelser. Oavsett om du skapar ett webb-API, svarar på databasändringar eller bearbetar händelseströmmar eller meddelanden kan du använda Azure Functions för att implementera dessa system.
I många fall integreras en funktion med en matris med molntjänster för att tillhandahålla funktionsrika implementeringar. I följande lista visas vanliga (men inte på något sätt uttömmande) scenarier för Azure Functions.
Välj ditt utvecklingsspråk överst i artikeln.
Bearbeta filuppladdningar
Du kan använda funktioner på flera sätt för att bearbeta filer in i eller ut ur en bloblagringscontainer. För att lära dig mer om alternativ för att trigga på en blobcontainer, se Arbeta med blobar i dokumentationen om bästa praxis.
I en detaljhandelslösning kan till exempel ett partnersystem skicka produktkataloginformation som filer till bloblagring. Du kan använda en blobutlöst funktion för att verifiera, transformera och bearbeta filerna till huvudsystemet när du laddar upp dem.
Följande handledningar använder en Azure Blob-utlösare (baserad på Azure Event Grid) för att bearbeta filer i en blob-behållare:
- Quickstart: Svara på bloblagringshändelser med hjälp av Azure Functions
- Sample: Blob-utlösare med källtypen Event Grid
- Tutorial (händelser): Utlösa Azure Functions på blobcontainrar med hjälp av en händelseprenumeration
- Tutorial (polling): Ladda upp och analysera en fil med Azure Functions och Blob Storage
Du kan till exempel använda Blob-utlösaren med en händelseprenumeration på blobcontainrar:
[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();
}
}
}
- Quickstart: Svara på bloblagringshändelser med hjälp av Azure Functions
- Tutorial: Bearbeta bilder med hjälp av FFmpeg på en monterad Azure Files resurs
- Sample: Blob-utlösare med källtypen Event Grid
- Exempel: FFmpeg-bildbearbetning med montering av Azure Files-lagring
- Tutorial: Utlösa Azure Functions på blobcontainrar med hjälp av en händelseprenumeration
Realtidsström och händelsebearbetning
Molnprogram, IoT-enheter och nätverksenheter genererar och samlar in en stor mängd kunddata. Azure Functions kan bearbeta dessa data nästan i realtid som frekvent sökväg och sedan lagra dem i Azure Cosmos DB för användning på en instrumentpanel för analys.
Dina funktioner kan också använda händelseutlösare med låg latens, till exempel Event Grid, och realtidsutdata som SignalR för att bearbeta data nästan i realtid.
Du kan till exempel använda trigger för händelsehubbar för att läsa från en händelsehubb och utdatabindningen för att skriva till en händelsehubb efter att ha delat upp och transformerat händelserna:
[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);
}
- Sample: Strömma i stor skala med Azure Event Hubs, Funktioner och Azure SQL
- Sample: Strömma i stor skala med Azure Event Hubs, Functions och Cosmos DB
- Sample: Strömma i stor skala med Azure Event Hubs med Kafka-producent, Functions med Kafka-utlösare och Cosmos DB
- Sample: Strömning i stor skala med Azure IoT Hub, Azure Functions och Azure SQL
- Azure Event Hubs utlösare för Azure Functions
- Apache Kafka-utlösare för Azure Functions
Bygg AI-aktiverade appar
Använd Azure Functions för att göra data och API:er tillgängliga för AI-klienter och för att lägga till AI-resonemang i händelsedrivna applikationer.
Gör dina data och API:er tillgängliga för AI
AI-klienter och agenter behöver verktyg som ger kontrollerad åtkomst till affärsdata, API:er och applikationslogik. Du kan använda Azure Functions för att bygga och hosta fjärrservrar för Model Context Protocol (MCP) som exponerar dessa funktioner som verktyg. Functions tillhandahåller hanterad hosting, autentisering, nätverk, övervakning och skalning för din MCP-server.
Till exempel kan du exponera produktlager, kundkontodata eller ett befintligt affärs-API som verktyg som en AI-kund kan upptäcka och anropa.
- Quickstart: Skapa en anpassad mcp-fjärrserver med Azure Functions
- Quickstart: Bygg MCP Apps med Azure Functions
- Quickstart: Värdservrar som skapats med MCP-SDK:er på Azure Functions
- Tutorial: Hosta en MCP-server på Azure Functions
- Referens: MCP binding for Azure Functions
- Använd AI-verktyg och modeller i Azure Functions
Lägg till AI-resonemang i affärshändelser
Vissa affärshändelser kräver att man resonerar innan din applikation kan avgöra vad som ska göras härnäst. Azure Functions hostade färdigheter låter dig definiera AI-drivet arbete i Markdown och starta det från scheman, HTTP-förfrågningar, kömeddelanden, lagringsändringar och andra händelser. Den hostade färdigheten kan anropa verktyg och tjänster innan de returnerar ett resultat eller utför en åtgärd.
Till exempel kan en hostad färdighet klassificera ett inkommande klagomål och skicka det till rätt kö. För mer komplext arbete kan ett dynamiskt arbetsflöde skapa en hållbar plan i flera steg som kör uppgifter parallellt, väntar på yttre förhållanden och återupptas efter att arbetet startat om.
- Quickstart: Bygg en händelsedriven AI-app med Azure Functions-hostade färdigheter
- Hur-gör-man: Skapa och kör dynamiska arbetsflöden med Azure Functions-hostade färdigheter
- Exempel: Händelsedriven hostad färdighetsapp
- Exempel: Arbetsflödesincidenttriage
- Översikt: färdigheter som finns i Azure Functions
- Översikt: Dynamiska arbetsflöden i Azure Functions hostade färdigheter
Köra schemalagda aktiviteter
Med Functions kan du köra koden baserat på ett cron-schema som du definierar.
Mer information finns i Skapa en funktion i Azure portalen som körs enligt ett schema.
Du kan till exempel analysera en kunddatabas för finansiella tjänster för duplicerade poster var 15:e minut för att undvika att flera meddelanden skickas till samma kund.
Exempel finns i följande kodfragment:
[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
}
Tänk på det här exemplet:
Tänk på det här exemplet:
Tänk på det här exemplet:
Tänk på det här exemplet:
Tänk på det här exemplet:
Skapa ett skalbart webb-API
En HTTP-utlöst funktion definierar en HTTP-slutpunkt. Dessa slutpunkter kör funktionskod som kan ansluta till andra tjänster direkt eller med hjälp av bindningstillägg. Du kan skapa slutpunkterna i ett webbaserat API.
Du kan också använda en HTTP-utlöst funktionsslutpunkt som en webhookintegrering, till exempel GitHub webhooks. På så sätt kan du skapa funktioner som bearbetar data från GitHub händelser. Mer information finns i Azure Functions HTTP-utlösare.
Exempel finns i följande kodfragment:
[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();
}
Skapa ett serverlöst arbetsflöde
Funktioner fungerar ofta som beräkningskomponent i en serverlös arbetsflödestopologi, till exempel ett Logic Apps-arbetsflöde. Du kan också skapa långvariga orkestreringar med hjälp av tillägget Durable Functions. Mer information finns i Durable Functions översikt.
Tänk på följande exempel:
Svara på databasändringar
Vissa processer måste logga, granska eller utföra andra åtgärder när lagrade data ändras. Funktionsutlösare är ett bra sätt att meddelas om dataändringar för att initiera en sådan åtgärd.
Tänk på följande exempel:
Skapa tillförlitliga meddelandesystem
Du kan använda Functions med Azure meddelandetjänster för att skapa avancerade händelsedrivna meddelandelösningar.
Till exempel kan du använda utlösare på köer i Azure Storage som ett sätt att länka samman en serie funktionskörningar. Eller använd Service Bus-köer och utlösare för ett onlinebeställningssystem.
De här artiklarna visar hur du skriver utdata till en lagringskö:
De här artiklarna beskriver hur man kan skapa en trigger från en kö eller ett ämne i Azure Service Bus.