сценарии Функции Azure
Мы часто создаем системы, чтобы реагировать на ряд критических событий. Независимо от того, создаете ли веб-API, отвечаете на изменения базы данных, обрабатываете потоки событий или сообщения, Функции Azure можно использовать для их реализации.
Во многих случаях функция интегрируется с массивом облачных служб, чтобы обеспечить широкие возможности для реализаций. Ниже приведен общий набор сценариев (но не является исчерпывающим) для Функции Azure.
Выберите язык разработки в верхней части статьи.
Обработка передаваемых файлов
Существует несколько способов использования функций для обработки файлов в контейнер хранилища BLOB-объектов или из него. Дополнительные сведения о параметрах активации контейнера BLOB-объектов см . в документации по рекомендациям по работе с большими двоичными объектами.
Например, в розничном решении партнерская система может отправлять сведения каталога продуктов в виде файлов в хранилище BLOB-объектов. Вы можете использовать функцию, активированную blob-объектами, для проверки, преобразования и обработки файлов в основной системе по мере их отправки.
В следующих руководствах для обработки файлов в контейнере BLOB-объектов используется триггер сетки событий:
Например, использование триггера BLOB-объекта с подпиской на события в контейнерах 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();
}
}
}
Поток в режиме реального времени и обработка событий
Так много данных телеметрии создается и собирается из облачных приложений, устройств Интернета вещей и сетевых устройств. Функции Azure может обрабатывать эти данные почти в режиме реального времени как горячий путь, а затем хранить его в Azure Cosmos DB для использования на панели мониторинга аналитики.
Функции также могут использовать триггеры событий с низкой задержкой, такие как Сетка событий, и выходные данные в режиме реального времени, такие как SignalR, для обработки данных практически в режиме реального времени.
Например, с помощью триггера центров событий для чтения из концентратора событий и выходной привязки для записи в концентратор событий после расшифровки и преобразования событий:
[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);
}
- Потоковая передача в масштабе с помощью Центры событий Azure, функций и SQL Azure
- Потоковая передача в масштабе с помощью Центры событий Azure, Функций и Cosmos DB
- Потоковая передача в масштабе с Центры событий Azure с продюсером Kafka, Функциями с триггером Kafka и Cosmos DB
- Потоковая передача в масштабе с помощью Центр Интернета вещей Azure, функций и SQL Azure
- триггер Центры событий Azure для Функции Azure
- Триггер Apache Kafka для Функции Azure
Машинное обучение и ИИ
Помимо обработки данных, Функции Azure можно использовать для вывода моделей.
Например, функция, которая вызывает модель TensorFlow или отправляет ее в службы ИИ Azure, может обрабатывать и классифицировать поток изображений.
Функции также могут подключаться к другим службам для обработки данных и выполнения других задач, связанных с ИИ, таких как сводка текста.
- Учебный курс. Создание пользовательского навыка для поиска ИИ Azure
- Пример. Чат с помощью ChatGPT
Выполнение запланированных задач
Функции позволяют запускать код на основе определенного расписания cron.
Узнайте, как создать функцию в портал Azure, которая выполняется по расписанию.
Например, базу данных клиентов финансовых служб можно анализировать для повторяющихся записей каждые 15 минут, чтобы избежать нескольких сообщений, передаваемых одному клиенту.
[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
}
Создание масштабируемого веб-API
Функция, активировающая HTTP, определяет конечную точку HTTP. Эти конечные точки выполняют код функции, который может подключаться к другим службам напрямую или с помощью расширений привязки. Конечные точки можно создать в веб-API.
Вы также можете использовать конечную точку функции, активированную HTTP, как интеграцию веб-перехватчиков веб-перехватчика, например веб-перехватчики GitHub. Таким образом, вы можете создавать функции, обрабатывающие данные из событий GitHub. Дополнительные сведения см. в разделе "Мониторинг событий GitHub" с помощью веб-перехватчика с Функции Azure.
Примеры см. в следующих статьях:
[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();
}
- Статья. Создание бессерверных API в Visual Studio с помощью интеграции Функции Azure и Управление API
- Учебный курс. Предоставление нескольких приложений-функций в качестве согласованного API с помощью Azure Управление API
- Пример. Веб-приложение с API C# и базой данных SQL Azure в Статические веб-приложения и функциях
- триггер HTTP Функции Azure
Создание бессерверного рабочего процесса
Функции часто являются компонентом вычислений в топологии бессерверных рабочих процессов, например рабочий процесс Logic Apps. Можно также создавать длительные оркестрации с помощью расширения Устойчивые функции. Дополнительные сведения см. в Устойчивые функции обзоре.
- Краткое руководство. Создание первой устойчивой функции в Azure с помощью Java
- Краткое руководство. Создание первой устойчивой функции в Azure с помощью PowerShell
Реагирование на изменения базы данных
Существуют процессы, в которых может потребоваться выполнить журнал, аудит или выполнить другую операцию при изменении сохраненных данных. Триггеры функций предоставляют хороший способ получать уведомления об изменениях данных для первоначальной такой операции.
Рассмотрим следующие примеры:
Создание надежных систем сообщений
Функции можно использовать со службами обмена сообщениями Azure для создания расширенных решений для обмена сообщениями на основе событий.
Например, триггеры можно использовать в очередях служба хранилища Azure как способ цепочки последовательности выполнения функций. Или используйте очереди служебной шины и триггеры для системы заказа по сети.
В следующей статье показано, как записывать выходные данные в очередь хранилища.
В этих статьях показано, как активироваться из очереди или раздела Служебная шина Azure.
Следующие шаги
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру