Посібник з інтеграції 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

Фандинг, відкритий інтерес і співвідношення лонг/шорт на біржах, які ми охоплюємо, наживо в нашому скринері.

Дивитися фандинг →

Ролі та дозволи 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/місяць для типових обсягів торгівлі.

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

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

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

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