نحن بصدد إنهاء API داخل المواقع. راجع مستند حالة إنهاء API داخل المواقع للحصول على التفاصيل، والتعرف على كيفية الترحيل إلى API السحابة من الجيل القادم.
يوضح لك هذا المستند كيفية استخدام خدمات Amazon Web Services (AWS) لنشر واجهة API الخاصة بتطبيق WhatsApp للأعمال. يمكن تقسيم العملية إلى خطوتين رئيسيتين:
وبمجرد اكتمال الإعداد، يمكنك اختيار ترقية العميل. إذا احتجت إلى إعادة تشغيل كل من Webapp وCoreApp، فاتبع هذه الخطوات.
يتناول هذا المستند قالب AWS جديد قمنا باختباره للحصول على معدل رسائل أعلى وأكثر استقرارًا. إذا كنت تبحث عن قالب AWS القديم، فراجع أرشيف AWS.
قبل البدء ستحتاج إلى ما يلي:
تحتاج إلى إعداد حساب AWS صالح وأن تكون على دراية بطريقة العمل على AWS. يوفر واتساب قوالب CloudFormation لنشر عميل API الخاصة بواتساب للأعمال بسهولة. لمزيد من المعلومات، يمكنك الرجوع إلى مركز موارد بدء استخدام AWS.
تحتاج إلى إنشاء زوج مفتاح جديد للوصول إلى مثيل EC2 الذي تم إنشاؤه باستخدام قالب API واتساب للأعمال. يمكنك أيضًا استخدام زوج من المفاتيح تم إنشاؤه مسبقًا. لمزيد من المعلومات حول إنشاء أزواج المفاتيح واستخدامها مع مثيل EC2، يمكنك الرجوع إلى وثائق أزواج مفاتيح Amazon EC2.
يجب إنشاء زوج المفاتيح باستخدام المنطقة التي تهدف إلى نشر API الخاصة بواتساب للأعمال فيها.
يستخدم عميل API واتساب للأعمال CentOS 9 image (المتوفر في AWS Marketplace). يجب الاطلاع على البنود والشروط وقبولها قبل استخدام القالب. وسيؤدي عدم قبول الشروط إلى عدم إنشاء القالب.
لمراجعة شروط إصدار CentOS 9 AMI وقبولها:
تستخدم قوالب API واتساب للأعمال نوع الموارد EFS، ولكنها غير متوفرة في جميع مناطق AWS. ومن ثم، تكون المناطق التالية فقط هي المدعومة:
استنادًا إلى الاختبار الأولي، سيحدد واتساب ما إذا كان بإمكاننا توفير خيار بديل متاح في جميع المناطق.
لا، ولا ندعم KOPS. ولكننا ندعم حل خدمات الويب من Amazon (AWS) استنادًا إلى ECS. ويتوفر لدينا أيضًا إعداد Kubernetes minikube عام.
يتم إنشاء شبكة السحابة الخاصة الافتراضية (VPC) بوجه عام عند التسجيل في حساب AWS. وبمكن توافر عدة إعدادات مخصصة والتقييدات المطلوبة للتحكم في الوصول المخصصة للنشاط التجاري للشركات.
إذا كانت البنية الأساسية لشبكة السحابة الخاصة الافتراضية منشأة بالفعل، فيمكنك تجاهل هذه الخطوة. أو يمكن استخدام القالب التالي لإنشاء البنية الأساسية للشبكة على AWS.
يتم توفير قالب الشبكة لأغراض مرجعية فقط. ويمكنك تعديله حسب احتياجاتك الخاصة.
لنشر قالب الشبكة:
الاسم | الوصف |
---|---|
| مطلوب. اسم التجميع المطلوب إنشاؤه |
الاسم | الوصف |
---|---|
| مطلوب. مناطق التوّفر (AZ) المطلوبة لإنشاء السحابة الخاصة الافتراضية (VPC). |
| مطلوب. عدد مناطق التوّفر المحددة. |
الاسم | الوصف |
---|---|
| مطلوب. نطاق عنوان IP (CIDR) الخاص بخدمة VPC هذه. |
| مطلوب. إيجار السحابة الخاصة الافتراضية |
الاسم | الوصف |
---|---|
| مطلوب. نطاق عنوان IP (CIDR) الخاص بالشبكات الفرعية العامة |
| مطلوب. نطاق عنوان IP (CIDR) الخاص بالشبكات الفرعية العامة |
| اختياري. مطلوب، إذا كان عدد مناطق التوفر أكبر من 2. |
| اختياري. مطلوب، إذا كان عدد مناطق التوفر أكبر من 3. |
الاسم | الوصف |
---|---|
| مطلوب. الخيارات: |
| مشروط. مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة على القيمة |
| مشروط. مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة على القيمة |
| مشروط. مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة إلى القيمة |
| شرطي. مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة على القيمة |
قبل نشر تجميع API الخاصة بواتساب للأعمال على AWS، تحتاج أولاً إلى تحميل ملفات تكوين التجميعات الفرعية المرجعية في حاوية S3 التي يمكنك الوصول إليها.
يُعد واتساب Enterprise هو القالب الرئيسي وينشئ جميع الموارد (باستثناء الشبكة) اللازمة لعميل واجهة API واتساب للأعمال. وكما ذُكر سابقًا، ينشئ هذا القالب أيضًا موارد قاعدة البيانات إذا لزم الأمر.
لنشر عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال:
الاسم | الوصف |
---|---|
| مطلوب. اسم التجميع المطلوب إنشاؤه. يجب أن يكون اسم التجميع أقل من 22 حرفًا أو يساوي ذلك. ملاحظة: بالنسبة لعمليات النشر في المناطق ap-southeast-1 أو ap-southeast-2 أو ap-northeast-1 أو ap-northeast-2، يجب أن يتضمن اسم التجميع 8 أحرف أو أقل. إذا تجاوز طول عدد حروف |
الاسم | الوصف |
---|---|
| اختياري. يمكّن ميزة التوّفر العالي. الإعداد الافتراضي: |
| مطلوب. عدد الرسائل التي تريد إرسالها في الثانية. إلى جانب خيار |
| مطلوب. نوع الرسالة السائد الذي ترغب في إرساله واستلامه. إلى جانب خيار |
| اختياري. يتم تثبيت node-exporter على كل مضيف CoreApp لأغراض التحقق من المثيل. الإعداد الافتراضي: |
الاسم | الوصف |
---|---|
| مطلوب. اسم تجميع CloudFormation للشبكة الذي تم إنشاؤه عن طريق خطوة إعداد الشبكة. |
| مطلوب. عدد الشبكات الفرعية التي تم اختيارها. لا ندعم حاليًا سوى شبكتين فرعيتين للنشر من أجل توزيع مهام ECS بالتساوي على جميع المضيفين. |
| مطلوب. لا ندعم حاليًا سوى أدوات موازنة الحمولة على الإنترنت، والتي تظهر للعامة. يُرجى تعديل مجموعات الأمان بعد إنشاء تجميع API لإغلاق الوصول غير الضروري. |
الاسم | الوصف |
---|---|
| مطلوب. اختر زوج المفاتيح الملائم للوصول إلى مثيل EC2، إذا لزم الأمر. |
| اختياري. هذا من أجل التدقيق المستقبلي ولدعم العملاء التجريبيين واجهة API الخاصة بتطبيق WhatsApp للأعمال. يجب أن تكون القيمة الافتراضية جيدة لأغلبية الحالات. |
| مطلوب. يُوصى دائمًا باستخدام أحدث إصدار مستقر (راجع سجل التغييرات لأحدث إصدار). يبدأ إصدار عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال دائمًا بالحرف "v"، ما لم يذكر خلاف ذلك صراحة. وسيؤدي استخدام الإصدار غير الصحيح إلى فشل عملية الإنشاء. |
| مطلوب. بالنسبة لأحمال الأعمال الإنتاجية، يُوصى باختيار مساحة 32 جيجابايت أو أكثر. |
الاسم | الوصف |
---|---|
| اختياري. يتيح تخزين معلومات التكوين في قاعدة البيانات. |
| اختياري. اسم مضيف قاعدة البيانات الحالي. |
| مطلوب. اسم المسؤول للوصول إلى قاعدة البيانات. |
| مطلوب. كلمة سر المسؤول للوصول إلى قاعدة البيانات. يجب ألا تتضمن كلمة السر الخاصة بقاعدة البيانات الحروف التالية: ?{}&~!()^/"@ |
| مطلوب. رقم المنفذ للوصول إلى خلفية قاعدة البيانات. |
| اختياري. يشير إلى ما إذا كان سيتم الحفاظ على اتصال قاعدة البيانات في حاويات الويب. الإعداد الافتراضي: |
| اختياري. المدة الزمنية بالمللي ثانية التي تغلق بعدها قاعدة البيانات الاتصالات الخاملة. |
الاسم | الوصف |
---|---|
| اختياري. برنامج تشغيل التسجيل في سجلات الحاوية. |
| اختياري. الحد الأقصى لحجم ملف سجل الحاوية بالميجابايت قبل تدويره. القيم المسموح بها بين 1 و250 (كلاهما مشمول). الافتراضي: 50. |
| اختياري. أقصى عدد لملفات السجل التي يتم الاحتفاظ بها في كل حاوية. القيم المسموح بها بين 1 و30 (كلاهما مشمول). الافتراضي: 7. |
| اختياري. عدد الأيام المتاحة للاحتفاظ بالسجلات في CloudWatch. الافتراضي: |
الاسم | الوصف |
---|---|
| غير مستخدم. اترك هذه المعلمة فارغة. |
الاسم | الوصف |
---|---|
| اختياري. بشكل افتراضي، يتم استخدام مفتاح خدمة AWS (خيار المفتاح الافتراضي) لتشفير بيانات قاعدة البيانات وEFS الثابتة. الخيارات الأخرى هي:
|
| اختياري. يمكنك توفير معرّف مفتاح KMS يُستخدم لتشفير البيانات. اترك هذا الخيار فارغًا، إذا لم يتم تحديد الخيار المفتاح الذي يوفره المستخدم. |
| اختياري. بشكل افتراضي، يتم تشفير البيانات أثناء نقلها إلى قاعدة البيانات. ولا يمكن تطبيق ذلك حاليًا إلا على Coreapp. كما أن تشفير Webapp غير مدعوم حتى الآن. بالإضافة إلى ذلك وباستخدام محرك قاعدة بيانات جديد حتى في حالة تعطيل هذا الخيار، يجري Coreapp التشفير، ولكن بدون التحقق من صحة شهادة (هوية) الخادم. |
| اختياري. تحتوي القيمة الافتراضية على حزمة شهادة RDS. وإذا تم استخدام قاعدة بيانات أخرى بخلاف RDS، فيمكن توفير حزمة الشهادات المناسبة الصادرة عن هيئة الشهادات (CA) أو تركها فارغة. وتكون القيمة الافتراضية ملائمة لتمكين اتصال آمن مع قاعدة البيانات. |
| اختياري. شهادة العميل لاتصال قاعدة البيانات |
| اختياري. مفتاح العميل لاتصال قاعدة البيانات |
هذه المعلمات مطلوبة للوحات معلومات Grafana حتى تتمكن من استرداد أدوات قياس التطبيق لأغراض التحقق.
الاسم | الوصف |
---|---|
| مطلوب. تحدد اسم مستخدم API الخاصة بتطبيق واتساب للأعمال. |
| مطلوب. تحدد كلمة سر |
الاسم | الوصف |
---|---|
| مطلوب. تحدد كلمة السر التي يتم استخدامها ككلمة سر تسجيل الدخول للوحة معلومات Grafana عند إنشاء التجميع. |
| اختياري. تشير إلى ما إذا تم تمكين SMTP لإعداد تنبيهات البريد الإلكتروني. القيم الصالحة: الافتراضي: |
| اختياري. مضيف SMTP المستخدم في تنبيهات البريد الإلكتروني. على سبيل المثال، smtp.gmail.com:465. |
| اختياري. تحدد اسم مستخدم SMTP المستخدم في تنبيهات البريد الإلكتروني. |
| اختياري. تحدد كلمة سر SMTP المستخدمة في تنبيهات البريد الإلكتروني. |
عند إنشاء القالب بنجاح، سيتم عرض المعلمات التالية:
بشكل افتراضي، توفر قواعد الأمان التي أنشأها التجميع لكل الزيارات إمكانية الوصول إلى مثيلات EC2 من خلال SSH، ونقاط نهاية API ولوحة معلومات Grafana من خلال بروتوكولات HTTP، وحاويات cadvisor وPrometheus. لأسباب أمنية، يوصى بشدة بإغلاق الوصول غير الضروري. سيوضح هذا القسم خطوات تحديث قاعدة أمان SSH كمثال. احرص دائمًا على تقييد الوصول إلى SSH ليقتصر على الزيارات التي تثق بها فقط.
"<stackName>-ms-xxx-EcsSecurityGroup"
لتقييد وصول إلى SSH بالنسبة للتحقق من التجميع.
بمجرد نشر عميل API الخاصة بتطبيق واتساب للأعمال بنجاح، يجب تكوينه لبدء تشغيله.
لمزيد من المعلومات التفصيلية حول تسجيل رقم الهاتف، يُرجى الرجوع إلى دليل أرقام الهواتف.
قم بتنزيل الشهادة بتشفير base64 من حساب WhatsApp لديك في مدير الأعمال من Facebook ضمن علامة التبويب أرقام الهواتف في مدير WhatsApp.
بمجرد أن يتوفر لديك رقم الهاتف الصحيح المحدد والشهادة بتشفير base64، يجب تسجيل عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال عبر العقدة account
. لمزيد من المعلومات، يمكنك الرجوع إلى وثائق التسجيل.
إذا كان بإمكان رقم الهاتف تلقي رسائل نصية، فاستخدم أسلوب رسالة SMS لاسترداد رمز التسجيل.
إذا تلقيت رمز التسجيل بالفعل من واتساب، فيمكنك تخطي هذه الخطوة.
بعد إنشاء التجميع، ستحتاج إلى استخدام استدعاء API shards
لزيادة عدد مثيلات Coreapp النشطة والوصول إلى معدل الإرسال المطلوب. يمكن العثور على عدد الأقسام في قسم الإخراج ضمن التجميع.
يتم وصف تكوين استدعاءات الويب في API الخاصة بتطبيق واتساب للأعمال والمعلمات الأخرى في وثائق إعدادات التطبيق. للوصول إلى معدل إرسال مستقر، يوصى بتنفيذ إعدادات التطبيق التالية.
{ "settings": { "application": { "callback_backoff_delay_ms": 3000, "callback_persist": true, "db_garbagecollector_enable": false, # change this to true when there are no ongoing messaging campaigns "heartbeat_interval": 5, "max_callback_backoff_delay_ms": 900000, "media": { "auto_download": [ "document", "image", "video", "voice", "sticker", "audio" ] }, "notify_user_change_number": true, "pass_through": false, "sent_status": true, "show_security_notifications": false, "skip_referral_media_download": false, "unhealthy_interval": 30, "wa_id": "12245552741", "webhooks": { "max_concurrent_requests": 24, "message": { "delivered": true, "read": true, "sent": true }, "url": "<YOUR_WEBHOOK_SERVER_URL>" } } }, "meta": { "api_status": "stable", "version": "2.41.3" } }
ينشئ عميل API واتساب للأعمال شهادة موقّعة ذاتيًا بشكل افتراضي عند إنشائه. وقد تكون الشهادة الصادرة عن هيئة الشهادات (CA) والمُستخدمة في إنشاء الشهادة ذاتية التوقيع مطلوبة من أجل التحقق من نقطة النهاية لعميل واجهة API الخاصة بتطبيق WhatsApp للأعمال وتجنب ظهور تحذير بشأن موثوقية الشهادة.
يمكنك تنزيل الشهادة الصادرة عن هيئة الشهادات وتخزينها محليًا لتجنب ظهور تحذير بشأن موثوقية الشهادة أو يمكنك تحميلها بنفسك. لمعرفة المزيد من المعلومات، يمكنك الرجوع إلى certificate
وثائق العقدة.
في عمليات نشر خدمات الويب من Amazon (AWS)، يتم إنشاء شهادة SSL باستخدام اسم المضيف الخاص بموازن التحميل. وإذا تم استخدام عنوان IP بدلاً من اسم المضيف الخاص بالوصول، فستستمر ملاحظة التحذير.
سيدعم واتساب تكوين شهادات SSL المتوفرة من العميل في الإصدار القادم.
بمجرد الانتهاء من خطوات التكوين والتسجيل بنجاح، يمكن إرسال رسالة وتلقيها للتحقق من الوظائف الأساسية لعميل واجهة API الخاصة بتطبيق WhatsApp للأعمال. ويتم وصف ذلك بالكامل في وثائق الرسائل.
عند تلقي الرسالة بنجاح، سيقوم عميل API الخاصة بواتساب للأعمال بإرسال طلب POST
لحالة/تفاصيل الرسالة في حدث Webhook الذي تم تكوينه في الخطوة الثالثة.
وإذا تم تلقي الرسالة بنجاح، فتهانينا لك، لقد انتهيت من كل الإعدادات! لمزيد من المعلومات حول نقاط نهاية واجهة API المتوفرة، يُرجى الرجوع إلى الوثائق المرجعية.
لبدء تشغيل عميل API الخاصة بتطبيق واتساب للأعمال، في وحدة تحكم ECS (على سبيل المثال, https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters):
هذا يؤدي إلى إيقاف كل من Webapp وCoreApp. وبعد فترة قصيرة، تعيد بنية AWS الأساسية تشغيل كل من Webapp وCoreApp.
يمكنك أن تتوقع حدوث وقت تعطل يستمر لمدة دقيقة أو دقيقتين تقريبًا.
قد يؤدي تحديث تجميع CloudFormation مباشرةً إلى تلف قاعدة البيانات وإعادة إنشائها. نوصيك بشدة باتباع الخطوات اليدوية في القسم التالي لتحديث النظام وتجنب فقدان البيانات.
يتناول هذا القسم كيفية ترقية كل من عميل API الخاصة بتطبيق واتساب للأعمال وقالب CloudFormation. سيؤدي إجراء الترقية إلى حدوث عطل، لذا لا تقم بإرسال الرسائل خلال هذه الفترة. قم باستئناف إرسال الرسائل بعد إكمال الترقية فقط.
يمكنك ترقية قالب CFN وإصدار عميل API الخاصة بواتساب للأعمال في الوقت نفسه من خلال إجراء ما يلي:
التحقق من الترقية السريعة:أرسل رسالة نصية وتحقق من أن رد واجهة API يحتوي على رقم الإصدار الصحيح (أي الإصدار الجديد). تحقق أيضًا من أن المستلم قد تلقى الرسالة.
من الشائع أن ترغب الأنشطة التجارية في إعداد بيئة تتضمن معدلات إرسال عالية لحملة إعلانية محددة زمنيًا وترغب كذلك في الحفاظ على بيئة منخفضة التكلفة تعمل خلال الفترات غير المرتبطة بحملات إعلانية. يقدم هذا القسم اقتراحات حول كيفية تقليل إعداد AWS يدويًا لتوفير التكلفة.
مهم: يُرجى تذكر أنه سيكون هناك زمن توقف. قد يتراوح زمن التوقف المقدّر بين 5 إلى 15 دقيقة. يُرجى التأكد من اتباع أفضل الممارسات في DevOps، مثل النسخ الاحتياطي لإعدادات التطبيق والنسخ الاحتياطي لقاعدة البيانات.
2
.c5.large
.
c5.large
، ثم اختر إنشاء إصدار قالب.
r5.xlarge
.
3
.3
.2
.2
.2
.