Scénáře Azure Functions
Často vytváříme systémy pro reakci na řadu kritických událostí. Bez ohledu na to, jestli vytváříte webové rozhraní API, reagujete na změny databáze, zpracováváte streamy událostí nebo zprávy, můžete je použít k jejich implementaci.
V mnoha případech se funkce integruje s řadou cloudových služeb , aby poskytovala implementace s bohatými funkcemi. Níže jsou uvedené běžné (ale bez použití vyčerpávající) sady scénářů pro Azure Functions.
V horní části článku vyberte svůj vývojový jazyk.
Nahrání souboru procesu
Existuje několik způsobů, jak pomocí funkcí zpracovat soubory do kontejneru úložiště objektů blob nebo z kontejneru úložiště objektů blob. Další informace o možnostech aktivace v kontejneru objektů blob najdete v dokumentaci k osvědčeným postupům práce s objekty blob.
Například v maloobchodním řešení může partnerový systém odesílat informace o katalogu produktů jako soubory do úložiště objektů blob. Funkci aktivovanou objektem blob můžete použít k ověření, transformaci a zpracování souborů do hlavního systému při jejich nahrání.
Následující kurzy používají trigger objektu blob (založený na Event Gridu) ke zpracování souborů v kontejneru objektů blob:
Například použití triggeru objektu blob s odběrem události v kontejnerech objektů 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();
}
}
}
Zpracování datových proudů a událostí v reálném čase
Tolik telemetrie se generuje a shromažďuje z cloudových aplikací, zařízení IoT a síťových zařízení. Služba Azure Functions může tato data zpracovávat téměř v reálném čase jako horká cesta a pak je ukládat do služby Azure Cosmos DB pro použití na řídicím panelu analýzy.
Vaše funkce můžou také používat triggery událostí s nízkou latencí, jako je Event Grid, a výstupy v reálném čase, jako je SignalR, ke zpracování dat téměř v reálném čase.
Například použití triggeru centra událostí ke čtení z centra událostí a výstupní vazby pro zápis do centra událostí po debatě a transformaci událostí:
[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);
}
- Streamování ve velkém měřítku s využitím služby Azure Event Hubs, Functions a Azure SQL
- Streamování ve velkém měřítku s využitím služby Azure Event Hubs, Functions a Cosmos DB
- Streamování ve velkém měřítku se službou Azure Event Hubs s producentem Kafka, službami Functions s triggerem Kafka a cosmos DB
- Streamování ve velkém měřítku s využitím Azure IoT Hubu, Functions a Azure SQL
- Trigger služby Azure Event Hubs pro Azure Functions
- Trigger Apache Kafka pro Azure Functions
Strojové učení a AI
Kromě zpracování dat je možné službu Azure Functions použít k odvození modelů. Rozšíření vazby Azure OpenAI umožňuje snadno integrovat funkce a chování služby Azure OpenAI do provádění kódu funkce.
Funkce se můžou připojit k prostředkům OpenAI, aby umožňovaly dokončování textu a chatu, používaly asistenty a využívaly vkládání a sémantické vyhledávání.
Funkce může také volat model TensorFlow nebo služby Azure AI ke zpracování a klasifikaci datového proudu obrázků.
- Kurz: Dokončování textu pomocí Azure OpenAI
- Ukázka: Nahrání textových souborů a přístupu k datům pomocí různých funkcí OpenAI
- Ukázka: Shrnutí textu pomocí služby AI Cognitive Language Service
- Ukázka: Dokončování textu pomocí Azure OpenAI
- Ukázka: Poskytnutí dovedností asistenta vašemu modelu
- Ukázka: Generování vkládání
- Ukázka: Využití sémantického vyhledávání
- Kurz: Dokončování textu pomocí Azure OpenAI
- Kurz: Použití modelů strojového učení ve službě Azure Functions pomocí Pythonu a TensorFlow
- Kurz: Nasazení předem natrénovaného modelu klasifikace obrázků do Azure Functions pomocí PyTorchu
- Ukázka: Dokončování textu pomocí Azure OpenAI
- Ukázka: Poskytnutí dovedností asistenta vašemu modelu
- Ukázka: Generování vkládání
- Ukázka: Využití sémantického vyhledávání
- Ukázka: Chat s využitím ChatGPT
- Ukázka: LangChain s Využitím Azure OpenAI a ChatGPT
Spouštění naplánovaných úloh
Funkce umožňují spouštět kód na základě plánu cron, který definujete.
Podívejte se, jak vytvořit funkci na webu Azure Portal, která běží podle plánu.
Databáze zákazníků s finančními službami může být například analyzována pro duplicitní položky každých 15 minut, aby se zabránilo více komunikacím, které se budou shodovat se stejným zákazníkem.
[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
}
Vytvoření škálovatelného webového rozhraní API
Aktivovaná funkce HTTP definuje koncový bod HTTP. Tyto koncové body spouští kód funkce, který se může připojit k jiným službám přímo nebo pomocí rozšíření vazeb. Koncové body můžete vytvořit do webového rozhraní API.
Koncový bod funkce aktivovaný protokolem HTTP můžete použít také jako integraci webhooku, jako jsou webhooky GitHubu. Tímto způsobem můžete vytvářet funkce, které zpracovávají data z událostí GitHubu. Další informace najdete v tématu Monitorování událostí GitHubu pomocí webhooku se službou Azure Functions.
Příklady najdete v následujících tématech:
[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();
}
- Článek: Vytváření bezserverových rozhraní API v sadě Visual Studio pomocí azure Functions a integrace služby API Management
- Školení: Zveřejnění více aplikací funkcí jako konzistentního rozhraní API pomocí služby Azure API Management
- Ukázka: Implementace vzoru geografického šifrování nasazením rozhraní API do geodes v distribuovaných oblastech Azure
- Trigger HTTP služby Azure Functions
- Ukázka: Webová aplikace s rozhraním API jazyka C# a službou Azure SQL DB ve statických webových aplikacích a funkcích
- Trigger HTTP služby Azure Functions
Vytvoření bezserverového pracovního postupu
Funkce jsou často výpočetní komponentou v topologii bezserverového pracovního postupu, jako je pracovní postup Logic Apps. Pomocí rozšíření Durable Functions můžete také vytvářet dlouhotrvající orchestrace. Další informace najdete v tématu Durable Functions – přehled.
- Rychlý start: Vytvoření první odolné funkce v Azure pomocí Javy
- Rychlý start: Vytvoření první odolné funkce v Azure pomocí PowerShellu
Reakce na změny databáze
V případě změn uložených dat může být potřeba protokolovat, auditovat nebo provádět nějakou jinou operaci. Triggery funkcí poskytují dobrý způsob, jak získat oznámení o změnách dat při počáteční operaci.
Zvažte následující příklady:
Vytváření spolehlivých systémů zpráv
Pomocí funkcí se službami zasílání zpráv Azure můžete vytvářet pokročilá řešení zasílání zpráv řízená událostmi.
Triggery můžete například použít ve frontách Azure Storage jako způsob, jak zřetězit řadu spuštění funkcí. Nebo použijte fronty a triggery služby Service Bus pro online systém objednávek.
Následující článek ukazuje, jak zapisovat výstup do fronty úložiště.
V těchto článcích se dozvíte, jak aktivovat z fronty nebo tématu služby Azure Service Bus.