Какой инструмент можно использовать в Azure, чтобы поставить CRON-задачу?

«Какой инструмент можно использовать в Azure, чтобы поставить CRON-задачу?» — вопрос из категории Облачные платформы, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Azure есть несколько сервисов для выполнения задач по расписанию (аналог CRON):

  1. Azure Functions (с Timer Trigger): Идеально для выполнения кода (например, на C#, Python, JavaScript) по расписанию. Управляется через выражение CRON.
    // Пример функции на C#
    public static class MyTimerFunction
    {
        [FunctionName("TimerTriggerCSharp")]
        public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log)
        {
            // Задача выполняется каждые 5 минут
            log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
        }
    }
  2. Azure Logic Apps: Низко-код решение. Можно использовать встроенное действие Recurrence для настройки сложных расписаний и оркестрации различных сервисов.
  3. Azure Container Instances (ACI) + Azure Container Registry (ACR): Для запуска контейнеризированных задач по расписанию можно использовать связку ACR Tasks с триггером по расписанию.
  4. Azure Kubernetes Service (AKS) + CronJob: Если ваша инфраструктура построена на Kubernetes, используйте стандартный ресурс CronJob.

Для большинства сценариев Azure Functions с Timer Trigger — это стандартный и наиболее гибкий выбор.