Посібник з інтеграції AWS Lambda Serverless

Створюйте подієво-орієнтовані торгові системи з AWS Lambda. Активуйте торгові боти за сигналами китів, обробляйте потоки даних у реальному часі та автоматизуйте складні робочі процеси без необхідності керування інфраструктурою.

Опубліковано 21 березня 2026 року 17 хв читання Просунутий рівень

Переваги безсерверної архітектури

AWS Lambda дозволяє запускати код без керування серверами. Ідеально підходить для інтеграцій з Smart Money API, оскільки ви платите лише за час виконання. Коли надходить сигнал кита, Lambda активується, обробляє його, потенційно ініціює угоду, а потім повертається у стан очікування.

Ключові переваги

  • Відсутність керування серверами — AWS забезпечує масштабування та інфраструктуру
  • Економія коштів — Оплата за кожні 100 мс виконання, $0.20 за мільйон викликів
  • Автоматичне масштабування — Автоматично обробляє спайки трафіку
  • Низька затримка — Активація протягом мілісекунд після надходження сигналу
  • Інтеграція з сервісами AWS — Підключення до DynamoDB, SNS, SQS, S3, CloudWatch
  • Вбудоване логування — Інтеграція з CloudWatch для налагодження та моніторингу

Інституційне налаштування: Криптофонд використовує 3 функції Lambda: Обробник сигналів (перевіряє та фільтрує сигнали), Виконавець угод (розміщує ордери) та Монітор ризиків (перевіряє ліміти позицій). Усі активуються через вебхуки Smart Money API. Загальна вартість: $12/місяць за 10M викликів.

Типові сценарії використання

  • Обробка сигналів китів та пересилання до торгового бота
  • Перевірка сигналів на відповідність лімітам ризику перед виконанням
  • Логування всіх сигналів у DynamoDB для історичного аналізу
  • Надсилання сповіщень команді через SNS або Slack
  • Аналіз шаблонів сигналів та оновлення параметрів стратегії

Початкове налаштування AWS

Крок 1: Створення облікового запису AWS

Створіть обліковий запис AWS на aws.amazon.com. Безкоштовний рівень включає 1 мільйон викликів Lambda на місяць, ідеально для тестування.

Крок 2: Доступ до консолі Lambda

Увійдіть до AWS Console, перейдіть до сервісу Lambda. Натисніть "Create function".

Крок 3: Вибір середовища виконання

Виберіть Python 3.11 (рекомендовано для криптотрейдингу). Node.js 18 також підходить. Уникайте старіших середовищ, оскільки вони можуть мати вразливості безпеки.

Крок 4: Налаштування ролі виконання

Lambda потребує ролі IAM з відповідними дозволами. Дивіться розділ "Конфігурація IAM" нижче.

Отримайте ваш API-ключ за 30 секунд

Підключіть цю інтеграцію до живих даних за лічені хвилини. Безкоштовний API-ключ, 100 викликів/день, без необхідності вводити картку.

Отримайте ваш API-ключ →

Ролі та дозволи IAM

Політика мінімальних дозволів

Створіть політику IAM лише з необхідними дозволами (принцип мінімальних привілеїв):

Політика IAM для Lambda
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": ["dynamodb:PutItem"],
"Resource": "arn:aws:dynamodb:us-east-1:*:table/whale-signals"
}
]
}

Найкращі практики

  • Використовуйте окремі ролі — Різні функції Lambda повинні мати різні ролі
  • Мінімальні привілеї — Надавайте лише необхідні дозволи
  • Уникайте символу * — Вказуйте точні ресурси замість нього
  • Обертання облікових даних — Зберігайте API-ключі в AWS Secrets Manager, а не в коді

Написання функцій Lambda

Функція 1: Обробник сигналів

Отримує вебхук від Smart Money API, перевіряє сигнал, логує в DynamoDB:

lambda_handler.py
import json, boto3, os
from datetime import datetime
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('whale-signals')
def lambda_handler(event, context):
try:
body = json.loads(event['body'])
signal = body['signal_type']
confidence = float(body['confidence'])
# Обробляємо лише сигнали з високою впевненістю
if confidence < 0.70:
return {'statusCode': 200, 'body': 'Ignored'}
# Логування в DynamoDB
table.put_item(Item={
'timestamp': datetime.now().isoformat(),
'signal': signal,
'confidence': confidence
})
return {'statusCode': 200, 'body': Оброблено}
крім Виняток як e:
print(f'Помилка: {e}')
return {'statusCode': 500, 'body': 'Помилка'}

Функція 2: Виконавець угод

Отримує перевірений сигнал, перевіряє обмеження ризику, розміщує угоду через API біржі:

  • Перевірити розмір позиції щодо балансу рахунку
  • Перевірити рівні стоп-лосу та тейк-профіту
  • Викликати API біржі для розміщення лімітних ордерів
  • Зафіксувати виконання в журналі аудиту
  • Надіслати підтвердження в Slack

Функція 3: Монітор ризиків

Запускається періодично (кожні 5 хвилин) для перевірки ризиків портфеля:

  • Запит усіх відкритих позицій
  • Розрахувати дельту та гаму портфеля
  • Якщо кредитне плече > порогу, зменшити позицію
  • Попередити команду, якщо перевищено обмеження ризику

Налаштування API Gateway

Створення HTTP-ендпоінту

API Gateway надає Lambda як HTTP-ендпоінт, до якого Smart Money API може надсилати вебхуки:

  1. Створити новий REST API в API Gateway
  2. Створити POST-метод, що вказує на функцію Lambda
  3. Налаштувати тип інтеграції = Lambda function
  4. Розгорнути на етапі (наприклад, "production")
  5. Скопіювати URL: https://xyz.execute-api.us-east-1.amazonaws.com/production

Аутентифікація за API-ключем

Захистити ендпоінт API-ключем, щоб лише Smart Money API міг його викликати:

Безпека API Gateway
1. Створити API Key в консолі API Gateway
2. Створити план використання, прикріпити API Key
3. Увімкнути вимогу API Key для методу
4. Smart Money API включає ключ у заголовок: x-api-key

Конфігурація CORS

Якщо виклик відбувається з браузера, увімкнути CORS:

  • Access-Control-Allow-Origin: *
  • Access-Control-Allow-Headers: Content-Type
  • Access-Control-Allow-Methods: POST

Подієво-орієнтована архітектура

Smart Money Webhook → API Gateway → Lambda

Синхронний виклик. Сигнал надходить, Lambda обробляє негайно, повертає відповідь до Smart Money API.

Заплановані тригери (EventBridge)

Запускати Lambda за розкладом (наприклад, Risk Monitor кожні 5 хвилин):

Правило EventBridge
Розклад: rate(5 хвилин)
Ціль: Lambda function risk-monitor

Інтеграція з чергою SQS

Для сигналів з великим навантаженням використовуйте чергу SQS як буфер:

  • Smart Money API → Тема SNS → Черга SQS
  • Lambda опитує чергу кожні 10 секунд
  • Обробляйте сигнали у власному темпі
  • Запобігає перевантаженню Lambda

Розгортання та управління

Використання SAM (Serverless Application Model)

Розгортайте інфраструктуру як код за допомогою AWS SAM:

sam-template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
ProcessSignalFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.lambda_handler
Runtime: python3.11
Timeout: 10
Events:
ApiEvent:
Type: Api
Properties:
Path: /webhook
Method: POST

Контроль версій та CI/CD

Використовуйте GitHub + AWS CodePipeline для автоматизованих розгортань:

  1. Надіслати код у репозиторій GitHub
  2. CodePipeline виявляє коміт
  3. CodeBuild запускає тести та пакує
  4. CodeDeploy розгортає на Lambda
  5. Автоматичний відкат при збої

Змінні оточення

Зберігайте секрети в AWS Secrets Manager, а не в коді:

  • SMART_MONEY_API_KEY — Отримати з Secrets Manager у Lambda
  • EXCHANGE_API_KEY — Зберігати безпечно
  • DYNAMODB_TABLE — Посилання з параметра CloudFormation

Моніторинг та налагодження

CloudWatch Logs

Lambda автоматично записує логи в CloudWatch. Перевіряйте логи на наявність помилок:

  • Клацніть функцію в консолі Lambda
  • Перейдіть на вкладку Monitor → Переглянути логи в CloudWatch
  • Шукайте помилки або винятки

Користувацькі метрики

Надсилайте користувацькі метрики до CloudWatch для моніторингу:

Користувацькі метрики
cloudwatch = boto3.client('cloudwatch')
cloudwatch.put_metric_data(
Namespace='SmartMoney',
MetricData=[{
'MetricName': 'SignalsProcessed',
'Value': 1
}]
)

Тривоги CloudWatch

Попередження, коли функція Lambda не вдається або сповільнюється:

  • Частота помилок > 1%
  • Тривалість > 5 секунд
  • Виникає обмеження
  • Помилки таймауту

Трасування X-Ray

Увімкніть X-Ray для розподіленого трасування між сервісами:

  • Дивіться, скільки часу займає кожна операція
  • Визначити вузькі місця
  • Виправляти проблеми інтеграції

Оперативний аналіз: Найбільш дорогі помилки Lambda — це не витрати на обчислення, а баги, які призводять до невдалих угод. Інвестуйте значно в моніторинг, логування та тестування. Краще витратити $50/місяць на CloudWatch, ніж $5,000 на помилку в торгівлі.

Створіть безсерверну торгову інфраструктуру

Запускайте подієво-орієнтовані торгові системи на AWS Lambda. Обробляйте сигнали китов, виконуйте угоди та моніторьте ризики без управління серверами.

Переглянути плани ціноутворення
Рекомендується Pro план для доставки вебхуків. Вартість Lambda: ~$1-5/місяць для типових обсягів торгівлі.

Пов’язані посібники з інфраструктури

Почніть безкоштовно — 100 викликів/день, без картки

Отримуйте живий потік китов, фінансування, відкритий інтерес та ончейн дані з 3 бірж з одного API. Безкоштовний рівень, без кредитної картки, оновлюйте будь-коли.

Почніть безкоштовно →
Спробуйте живу консоль API → (обліковий запис не потрібен)