دليل تكامل AWS Lambda بدون خادم

قم ببناء أنظمة تداول تعمل بالأحداث باستخدام AWS Lambda. قم بتشغيل بوتات التداول عند إشارات الحيتان، ومعالجة تدفقات البيانات في الوقت الفعلي، وأتمتة سير العمل المعقدة دون الحاجة إلى إدارة البنية التحتية.

نُشر في 21 مارس 2026 17 دقيقة قراءة متقدم

فوائد بنية بدون خادم

يتيح لك AWS Lambda تشغيل التعليمات البرمجية دون إدارة الخوادم. مثالي لتكاملات Smart Money API لأنك تدفع فقط مقابل وقت التنفيذ. عند وصول إشارة حوت، يستيقظ Lambda، يعالجها، قد يُطلق صفقة، ثم يعود إلى النوم.

المزايا الرئيسية

  • لا حاجة لإدارة الخادم — AWS يتولى التوسع والبنية التحتية
  • كفاءة التكلفة — الدفع لكل 100 مللي ثانية من التنفيذ، 0.20 دولار لكل مليون استدعاء
  • التوسع التلقائي — يتعامل تلقائيًا مع ذروات الحركة المرورية
  • زمن انتقال منخفض — يتم التشغيل في غضون أجزاء من الثانية من وصول الإشارة
  • التكامل مع خدمات AWS — الاتصال بـ DynamoDB وSNS وSQS وS3 وCloudWatch
  • تسجيل مدمج — تكامل CloudWatch لتصحيح الأخطاء والمراقبة

إعداد مؤسسي: تدير صندوق التشفير 3 وظائف Lambda: معالج الإشارة (يُتحقق من الإشارات ويُرشحها)، ومنفذ الصفقة (يضع الأوامر)، ومراقب المخاطر (يتحقق من حدود المركز). يتم تشغيلها جميعًا بواسطة webhooks من Smart Money API. التكلفة الإجمالية: 12 دولارًا شهريًا لـ 10 ملايين استدعاء.

حالات الاستخدام الشائعة

  • معالجة إشارات الحيتان وإرسالها إلى بوت التداول
  • التحقق من صحة الإشارات مقابل حدود المخاطرة قبل التنفيذ
  • تسجيل جميع الإشارات في DynamoDB للتحليل التاريخي
  • إرسال تنبيهات إلى الفريق عبر SNS أو Slack
  • تحليل أنماط الإشارات وتحديث معلمات الاستراتيجية

الإعداد الأولي لـ AWS

الخطوة 1: إنشاء حساب AWS

قم بإنشاء حساب AWS على aws.amazon.com. تتضمن الطبقة المجانية مليون استدعاء لـ Lambda شهريًا، مثالي للاختبار.

الخطوة 2: الوصول إلى وحدة تحكم Lambda

سجل الدخول إلى وحدة تحكم AWS، وانتقل إلى خدمة Lambda. انقر على "إنشاء وظيفة".

الخطوة 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: معالج الإشارة

يتلقى webhook من 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': تمت المعالجة}
باستثناء استثناء كـ هـ:
print(f'خطأ: {e}')
إرجاع {'statusCode': 500, 'body': 'خطأ'}

الوظيفة 2: منفذ التداول

يتلقى إشارة معتمدة، يتحقق من حدود المخاطر، ويضع صفقة عبر واجهة برمجة التطبيقات للتبادل:

  • التحقق من حجم المركز مقابل رصيد الحساب
  • التحقق من مستويات وقف الخسارة وجني الأرباح
  • استدعاء واجهة برمجة التطبيقات للتبادل لوضع أوامر الحد
  • تسجيل التنفيذ في سجل التدقيق
  • إرسال تأكيد إلى Slack

الوظيفة 3: مراقب المخاطر

يعمل بشكل دوري (كل 5 دقائق) للتحقق من مخاطر المحفظة:

  • استعلام عن جميع المراكز المفتوحة
  • حساب دلتا وغاما المحفظة
  • إذا كانت الرافعة المالية > الحد، قلل المركز
  • تنبيه الفريق في حالة تجاوز حدود المخاطر

إعداد بوابة واجهة برمجة التطبيقات

إنشاء نقطة نهاية HTTP

تعرض بوابة واجهة برمجة التطبيقات Lambda كنقطة نهاية HTTP يمكن لـ Smart Money API الاتصال بها عبر الويب هوك:

  1. إنشاء واجهة برمجة تطبيقات REST جديدة في بوابة واجهة برمجة التطبيقات
  2. إنشاء طريقة POST تشير إلى وظيفة Lambda
  3. تكوين نوع التكامل = وظيفة Lambda
  4. نشر إلى مرحلة (مثل "الإنتاج")
  5. نسخ URL: https://xyz.execute-api.us-east-1.amazonaws.com/production

مصادقة مفتاح واجهة برمجة التطبيقات

حماية نقطة النهاية بمفتاح واجهة برمجة التطبيقات بحيث يمكن فقط لـ Smart Money API استدعاؤها:

أمان بوابة واجهة برمجة التطبيقات
1. إنشاء مفتاح واجهة برمجة التطبيقات في وحدة تحكم بوابة واجهة برمجة التطبيقات
2. إنشاء خطة استخدام، وإرفاق مفتاح واجهة برمجة التطبيقات
3. تمكين متطلب مفتاح واجهة برمجة التطبيقات على الطريقة
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 → بوابة واجهة برمجة التطبيقات → Lambda

استدعاء متزامن. تصل الإشارة، تعالج Lambda على الفور، تعيد الاستجابة إلى Smart Money API.

مشغلات مجدولة (EventBridge)

تشغيل Lambda على جدول زمني (مثل مراقب المخاطر كل 5 دقائق):

قاعدة EventBridge
جدول: rate(5 دقائق)
الهدف: وظيفة Lambda risk-monitor

تكامل قائمة انتظار SQS

للإشارات عالية الحجم، استخدم قائمة انتظار SQS كحاجز:

  • Smart Money API → موضوع SNS → قائمة انتظار SQS
  • تستطلع Lambda قائمة الانتظار كل 10 ثوانٍ
  • معالجة الإشارات بوتيرتك الخاصة
  • يمنع Lambda من أن تغمر

النشر والإدارة

استخدام SAM (نموذج التطبيق بدون خادم)

نشر البنية التحتية كرمز باستخدام 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

يقوم Lambda تلقائيًا بتسجيل الدخول إلى CloudWatch. تحقق من السجلات للبحث عن الأخطاء:

  • انقر فوق الوظيفة في وحدة تحكم Lambda
  • انتقل إلى علامة التبويب مراقب → عرض السجلات في 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 للتتبع الموزع عبر الخدمات:

  • معرفة المدة التي تستغرقها كل عملية
  • تحديد الاختناقات
  • تصحيح مشكلات التكامل

رؤية تشغيلية: أكثر أخطاء لامبا تكلفة ليست تكلفة الحوسبة - بل هي الأخطاء التي تسبب صفقات سيئة. استثمر بكثافة في المراقبة، والتسجيل، والاختبار. من الأفضل إنفاق 50 دولارًا شهريًا على CloudWatch بدلاً من 5000 دولار على خطأ في التداول.

بناء بنية تحتية للتداول بدون خادم

تشغيل أنظمة التداول القائمة على الأحداث على AWS Lambda. معالجة إشارات الحيتان، تنفيذ الصفقات، ومراقبة المخاطر دون إدارة خوادم.

عرض خطط التسعير
يوصى بخطة Pro لتسليم الويب هوك. تكلفة لامبا: ~1-5 دولار/شهر لأحجام التداول النموذجية.

أدلة البنية التحتية ذات الصلة

ابدأ مجانًا — 100 استدعاء/يوم، بدون بطاقة

احصل على تدفق الحيتان الحي، والتمويل، والاهتمام المفتوح وبيانات السلسلة عبر 3 بورصات من واجهة برمجة تطبيقات واحدة. طبقة مجانية، بدون بطاقة ائتمان، ترقّي في أي وقت.

ابدأ مجانًا →
جرب وحدة تحكم واجهة برمجة التطبيقات المباشرة → (لا حاجة لحساب)