На чем писал Azure functions
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
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 и лимиты на выполнение.