Всё в ажуре...
Sep. 12th, 2025 09:54 pmНаучился более-менее пользоваться Azure Function Apps. Что-то типа AWS Lambda Functions. В дешёвом варианте (Consumption plan) есть ограничение по времени выполнения: 10 минут (плати денежку, переходи в Premium plan — и ограничение вообще снимется, а у AWS ограничение есть). Так что если пользуешься дешёвой опцией Function Apps и вычисления не уложились в 10 минут — всё, выполнение функции прерывается и привет горячий. Для задач, какие решаем мы (ETL pipelines for semantic data analysis), наверное, лучше всё-таки использовать контейнеризированные приложения. Так в ажуре руки пока и не дошли до этого. Докером умею пользоваться, а докером в ажуре (или что у них там есть аналогичное) ещё не пробовал. Но если надо что-то не очень "тяжёлое" быстро проверить, то бесплатные function apps подойдут.
Одна function app может содержать множество триггеров. Я пользовался триггерами, связанными с содержимым контейнеров: поступил новый блоб в контейнер — триггер срабатывает, и функция выполняется. Вот таких триггеров можно заводить множество в одной function app (1-2-many mapping), но каждый триггер должен быть для своего контейнера (1-2-1 mapping).
Неудобно то, что какие-то очень большие задержки каждый раз, когда обновляется код функции. 5-10 минут надо ждать, чтобы новый код начал работать в облаке. Подозреваю, что за дополнительную плату это всё должно летать, но всё равно как-то не очень удобно...
UPD. Для интереса попросил всезнайку сделать сравнительный анализ AWS Lambda Functions и MS Function Apps.
- Maximum Execution Time: A key differentiator for long-running processes. AWS Lambda imposes a strict maximum execution time of 15 minutes (900 seconds) per function invocation. This is suitable for short-lived tasks like API calls and data processing but necessitates architectural adjustments, such as using AWS Step Functions, for longer-running jobs. In contrast, Azure Functions' execution limits are based on the hosting plan. The Consumption plan has a default maximum of 5 minutes, which can be extended to 10 minutes. The Premium and Dedicated plans, however, have no execution time limit, allowing functions to run indefinitely to support long-running tasks and applications.
- Memory and Ephemeral Storage: AWS Lambda allows for highly granular memory allocation, from 128 MB to 10,240 MB (10.24 GB) in 1 MB increments.10 CPU power is allocated proportionally to the memory setting. AWS also provides 512 MB of free ephemeral storage, which can be increased up to 10,240 MB. Azure Functions' Consumption plan is more of a "one-size-fits-all" model, with 1.5 GB of memory allocated per instance. However, its Premium and Dedicated plans offer larger instance sizes, with memory options up to 14 GB.