Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Często tworzy się systemy reagujące na serię zdarzeń krytycznych. Niezależnie od tego, czy tworzysz internetowy interfejs API, odpowiadasz na zmiany bazy danych, czy przetwarzasz strumienie zdarzeń lub komunikaty, możesz zaimplementować te systemy za pomocą usługi Azure Functions.
W wielu przypadkach funkcja integruje się z szeregiem usług w chmurze w celu zapewnienia zaawansowanych funkcji implementacji. Na poniższej liście przedstawiono typowe (ale w żaden sposób wyczerpujące) scenariusze dla usługi Azure Functions.
Wybierz język programowania w górnej części artykułu.
Przetwarzanie przesyłania plików
Funkcji można używać na kilka sposobów do przetwarzania plików do lub z kontenera magazynu obiektów blob. Aby dowiedzieć się więcej na temat opcji wyzwalania w kontenerze obiektów blob, zobacz Praca z obiektami blob w dokumentacji najlepszych rozwiązań.
Na przykład w rozwiązaniu handlu detalicznego system partnerski może przesyłać informacje o katalogu produktów jako pliki do blob storage. Za pomocą funkcji wyzwalanej przez obiekt blob można weryfikować, przekształcać i przetwarzać pliki w głównym systemie podczas ich przekazywania.
Poniższe samouczki używają wyzwalacza Blob (opartego na usłudze Event Grid) do przetwarzania plików w kontenerze Blobów:
Na przykład użyj wyzwalacza obiektu blob z subskrypcją zdarzeń w kontenerach obiektów 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();
}
}
}
- Szybki start: reagowanie na zdarzenia magazynu obiektów blob przy użyciu usługi Azure Functions
- Przykład: wyzwalacz obiektu blob z typem źródła Event Grid w przykładowym scenariuszu szybkiego startu)
- Samouczek (zdarzenia): Wyzwalanie usługi Azure Functions za pomocą subskrypcji zdarzeń w kontenerach obiektów blobowych
- Samouczek (sondowanie): przekazywanie i analizowanie pliku za pomocą usług Azure Functions i Blob Storage
- Szybki start: reagowanie na zdarzenia magazynu obiektów blob przy użyciu usługi Azure Functions
- Przykład: wyzwalacz obiektu blob z szybkim startem typu źródła usługi Event Grid)
- Samouczek (zdarzenia): wyzwalanie usługi Azure Functions w kontenerach obiektów blob przy użyciu subskrypcji zdarzeń
- Samouczek (sondowanie): przekazywanie i analizowanie pliku za pomocą usług Azure Functions i Blob Storage
Przesyłanie strumieniowe i przetwarzanie zdarzeń w czasie rzeczywistym
Aplikacje w chmurze, urządzenia IoT i urządzenia sieciowe generują i zbierają dużą ilość danych telemetrycznych. Usługa Azure Functions może przetwarzać te dane niemal w czasie rzeczywistym jako ścieżkę gorącą, a następnie przechowywać je w usłudze Azure Cosmos DB do użycia na pulpicie nawigacyjnym analizy.
Funkcje mogą również używać wyzwalaczy zdarzeń o małych opóźnieniach, takich jak Event Grid, i danych wyjściowych czasu rzeczywistego, takich jak SignalR, do przetwarzania danych niemal w czasie rzeczywistym.
Możesz na przykład użyć wyzwalacza Event Hubs do odczytu z Event Hub i powiązania wyjściowego w celu zapisania w Event Hub po rozdzieleniu i przekształceniu zdarzeń.
[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);
}
- Przesyłanie strumieniowe na dużą skalę za pomocą usług Azure Event Hubs, Functions i Azure SQL
- Przesyłanie strumieniowe na dużą skalę za pomocą usług Azure Event Hubs, Functions i Cosmos DB
- Przesyłanie strumieniowe na dużą skalę za pomocą usługi Azure Event Hubs z producentem platformy Kafka, usługą Functions z wyzwalaczem platformy Kafka i usługą Cosmos DB
- Przesyłanie strumieniowe na dużą skalę za pomocą usług Azure IoT Hub, Functions i Azure SQL
- Wyzwalacz usługi Azure Event Hubs dla usługi Azure Functions
- Wyzwalacz platformy Apache Kafka dla usługi Azure Functions
Uczenie maszynowe i sztuczna inteligencja
Usługa Azure Functions udostępnia bezserwerowe zasoby obliczeniowe zintegrowane ze sztuczną inteligencją i usługami platformy Azure w celu usprawnienia tworzenia inteligentnych aplikacji hostowanych w chmurze. Model programowania usługi Functions umożliwia tworzenie i hostowanie zdalnych serwerów protokołu MCP (Content Protocol) i implementowanie różnych narzędzi sztucznej inteligencji. Aby uzyskać więcej informacji, zobacz Narzędzia i serwery MCP.
Rozszerzenie wiążące Azure OpenAI umożliwia integrację funkcji i zachowań sztucznej inteligencji usługi Azure OpenAI, takich jak generacja wspomagana pobieraniem (RAG), w wykonaniu kodu funkcji. Aby uzyskać więcej informacji, zobacz Pobieranie rozszerzonej generacji.
Funkcja może również wywoływać model TensorFlow lub usługi Azure AI do przetwarzania i klasyfikowania strumienia obrazów.
- Szybki start: tworzenie niestandardowego zdalnego serwera MCP przy użyciu usługi Azure Functions
- Szybki start: serwery hosta utworzone za pomocą zestawów SDK MCP w usłudze Azure Functions
- Przykład: Wprowadzenie do zdalnych serwerów MCP przy użyciu usługi Azure Functions
- Przykład: Hostowanie zdalnych serwerów MCP utworzonych przy użyciu oficjalnych zestawów SDK MCP w usłudze Azure Functions
- Szybki start: tworzenie niestandardowego zdalnego serwera MCP przy użyciu usługi Azure Functions
- Szybki przewodnik: serwery hostowane zbudowane przy użyciu zestawów SDK MCP w usłudze Azure Functions
- Przykład: Wprowadzenie do zdalnych serwerów MCP przy użyciu usługi Azure Functions
- Przykład: Hostowanie zdalnych serwerów MCP utworzonych przy użyciu oficjalnych zestawów SDK MCP w usłudze Azure Functions
Aby uzyskać więcej informacji, zobacz Używanie narzędzi i modeli sztucznej inteligencji w usłudze Azure Functions.
Uruchamianie zaplanowanych zadań
Funkcje umożliwiają uruchamianie kodu na podstawie zdefiniowanego harmonogramu cron .
Zobacz Tworzenie funkcji w witrynie Azure Portal, która jest uruchamiana zgodnie z harmonogramem.
Na przykład możesz przeanalizować bazę danych klienta usług finansowych pod kątem zduplikowanych wpisów co 15 minut, aby uniknąć odejścia wielu komunikatów do tego samego klienta.
Aby zapoznać się z przykładami, zobacz następujące fragmenty kodu:
[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
}
Tworzenie skalowalnego internetowego interfejsu API
Funkcja wyzwalana przez protokół HTTP definiuje punkt końcowy HTTP. Te punkty końcowe uruchamiają kod funkcji, który może łączyć się z innymi usługami bezpośrednio lub przy użyciu rozszerzeń powiązań. Można komponować punkty końcowe w interfejsie API opartym na sieci.
Możesz również użyć punktu końcowego funkcji wyzwalanej przez protokół HTTP jako integracji elementu webhook, takiego jak elementy webhook usługi GitHub. W ten sposób można tworzyć funkcje przetwarzające dane ze zdarzeń usługi GitHub. Aby uzyskać więcej informacji, zobacz Monitorowanie zdarzeń usługi GitHub przy użyciu elementu webhook w usłudze Azure Functions.
Aby zapoznać się z przykładami, zobacz następujące fragmenty kodu:
[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();
}
- Szybki start: wyzwalacz HTTP usługi Azure Functions
- Artykuł: Tworzenie bezserwerowych interfejsów API w programie Visual Studio przy użyciu usługi Azure Functions i integracji usługi API Management
- Szkolenie: Eksponowanie wielu aplikacji funkcji jako spójnego interfejsu API przy użyciu usługi Azure API Management
- Przykład: aplikacja internetowa z interfejsem API języka C# i usługą Azure SQL DB w usłudze Static Web Apps i Functions
Tworzenie bezserwerowego przepływu pracy
Funkcje często pełnią rolę składnika obliczeniowego w topologii przepływu pracy bezserwerowego, takiego jak przepływ pracy usługi Logic Apps. Można również tworzyć długotrwałe aranżacje przy użyciu rozszerzenia Durable Functions. Aby uzyskać więcej informacji, zobacz Omówienie funkcji Durable Functions.
Reagowanie na zmiany bazy danych
Niektóre procesy muszą rejestrować, przeprowadzać inspekcję lub wykonywać inne operacje podczas przechowywania zmian danych. Wyzwalacze funkcji zapewniają dobry sposób otrzymywania powiadomień o zmianach danych w celu zainicjowania takiej operacji.
Rozważ następujące przykłady:
Tworzenie niezawodnych systemów komunikatów
Usługi Functions z usługami obsługi komunikatów platformy Azure umożliwiają tworzenie zaawansowanych rozwiązań do obsługi komunikatów opartych na zdarzeniach.
Można na przykład użyć wyzwalaczy w kolejkach usługi Azure Storage jako sposobu łączenia szeregu wykonań funkcji. Możesz też użyć kolejek i wyzwalaczy usługi Service Bus dla systemu zamawiania online.
W tych artykułach pokazano, jak zapisywać dane wyjściowe do kolejki przechowywania.
W tych artykułach pokazano, jak wywoływać zdarzenia z kolejki lub tematu usługi Azure Service Bus.