← Назад к вопросам

На чем писал Azure functions

1.7 Middle🔥 91 комментариев
#Python#Облачные платформы#Опыт и soft skills

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Azure Functions: языки и технологии

Azure Functions — serverless сервис Microsoft, позволяющий запускать код в облаке без управления инфраструктурой. Я расскажу о доступных языках программирования и особенностях работы с ними.

Основные поддерживаемые языки

Python — популярный выбор для Data Engineer. Хорошо подходит для обработки данных, интеграции с библиотеками как pandas, numpy, sqlalchemy:

import azure.functions as func
import pandas as pd
from datetime import datetime

def main(req: func.HttpRequest) -> func.HttpResponse:
    data = pd.read_csv('data.csv')
    processed = data[data['value'] > 100]
    return func.HttpResponse(
        f"Processed {len(processed)} rows",
        status_code=200
    )

C# / .NET — типизированный язык, выбор для production решений с высокой нагрузкой. Быстрее, чем Python, лучше типизация.

JavaScript/TypeScript — для Node.js функций, особенно при работе с event-driven архитектурой.

Java — используется в enterprise проектах, доступен с версии Azure Functions 2.x.

Триггеры для Data Engineering

Timer trigger — запуск по расписанию (CRON expression). Идеален для batch ETL:

def main(myTimer: func.TimerRequest) -> None:
    if myTimer.is_past_due:
        logging.info('Timer trigger fired')
    # запуск ETL каждый день в 02:00

HTTP trigger — запуск по REST API запросу. Для ad-hoc обработки.

Blob trigger — срабатывает при загрузке файла в Azure Storage:

def main(myblob: func.InputStream):
    data = myblob.read()
    # обработка файла

Queue trigger — обработка сообщений из очереди. Для асинхронной обработки.

Интеграция с Data сервисами

Azure SQL Database / Synapse — прямое подключение для чтения/записи данных:

import pyodbc

connection_string = os.environ['SQL_CONNECTION_STRING']
conn = pyodbc.connect(connection_string)
cursor = conn.cursor()
cursor.execute('INSERT INTO events VALUES (?, ?, ?)', params)
conn.commit()

Azure Data Lake Storage Gen2 — работа с большими файлами через SDK.

Лучшие практики

Асинхронность — используй async/await для параллельной обработки.

Управление ошибками — всегда логируй ошибки, retry логику, алерты на критические сбои.

Monitoring — встроенная интеграция с Application Insights для отслеживания performance.

Масштабируемость — Azure Functions автоматически масштабируется, но контролируй consumption pricing и лимиты на выполнение.