نحن بصدد إنهاء API داخل المواقع. راجع مستند حالة إنهاء API داخل المواقع للحصول على التفاصيل، والتعرف على كيفية الترحيل إلى API السحابة من الجيل القادم.

النشر باستخدام خدمات Amazon Web Services

يوضح لك هذا المستند كيفية استخدام خدمات Amazon Web Services (AWS) لنشر واجهة API الخاصة بتطبيق WhatsApp للأعمال. يمكن تقسيم العملية إلى خطوتين رئيسيتين:

  1. نشر عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال
  2. تكوين عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال

وبمجرد اكتمال الإعداد، يمكنك اختيار ترقية العميل. إذا احتجت إلى إعادة تشغيل كل من Webapp وCoreApp، فاتبع هذه الخطوات.

يتناول هذا المستند قالب AWS جديد قمنا باختباره للحصول على معدل رسائل أعلى وأكثر استقرارًا. إذا كنت تبحث عن قالب AWS القديم، فراجع أرشيف AWS.

البدء

قبل البدء ستحتاج إلى ما يلي:

إعداد معرف حساب AWS

تحتاج إلى إعداد حساب AWS صالح وأن تكون على دراية بطريقة العمل على AWS. يوفر واتساب قوالب CloudFormation لنشر عميل API الخاصة بواتساب للأعمال بسهولة. لمزيد من المعلومات، يمكنك الرجوع إلى مركز موارد بدء استخدام AWS.

إنشاء زوج من مفاتيح خدمات AWS

تحتاج إلى إنشاء زوج مفتاح جديد للوصول إلى مثيل EC2 الذي تم إنشاؤه باستخدام قالب API واتساب للأعمال. يمكنك أيضًا استخدام زوج من المفاتيح تم إنشاؤه مسبقًا. لمزيد من المعلومات حول إنشاء أزواج المفاتيح واستخدامها مع مثيل EC2، يمكنك الرجوع إلى وثائق أزواج مفاتيح Amazon EC2.

يجب إنشاء زوج المفاتيح باستخدام المنطقة التي تهدف إلى نشر API الخاصة بواتساب للأعمال فيها.

الاشتراك في إصدار CentOS 9

يستخدم عميل API واتساب للأعمال CentOS 9 image (المتوفر في AWS Marketplace). يجب الاطلاع على البنود والشروط وقبولها قبل استخدام القالب. وسيؤدي عدم قبول الشروط إلى عدم إنشاء القالب.

لمراجعة شروط إصدار CentOS 9 AMI وقبولها:

  1. انتقل إلى AWS Marketplace: CentOS 9 (x86_64) - مع صفحة تحديثات HVM.
  2. انقر على متابعة الاشتراك في الزاوية العلوية اليسرى، ثم انقر على زر قبول الشروط.

المناطق المدعومة

تستخدم قوالب API واتساب للأعمال نوع الموارد EFS، ولكنها غير متوفرة في جميع مناطق AWS. ومن ثم، تكون المناطق التالية فقط هي المدعومة:

  • شمال فيرجينيا (us-east-1)
  • أوهايو (us-east-2)
  • شمال كاليفورنيا (us-west-1)
  • أوريغون (us-west-2)
  • مومباي (ap-south-1)
  • سيول (ap-northeast-2)
  • سنغافورة (ap-southeast-1)
  • سيدني (ap-southeast-2)
  • طوكيو (ap-northeast-1)
  • فرانكفورت (eu-central-1)
  • أيرلندا (eu-west-1)

استنادًا إلى الاختبار الأولي، سيحدد واتساب ما إذا كان بإمكاننا توفير خيار بديل متاح في جميع المناطق.

الأسئلة المتكررة

النشر

الخطوة الأولى: [اختياري] إعداد الشبكة

يتم إنشاء شبكة السحابة الخاصة الافتراضية (VPC) بوجه عام عند التسجيل في حساب AWS. وبمكن توافر عدة إعدادات مخصصة والتقييدات المطلوبة للتحكم في الوصول المخصصة للنشاط التجاري للشركات.

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

يتم توفير قالب الشبكة لأغراض مرجعية فقط. ويمكنك تعديله حسب احتياجاتك الخاصة.

متطلبات الشبكة

  • يجب توافر شبكتين فرعيتين على الأقل في منطقتي إتاحة مختلفتين داخل المنطقة. وإن لم تتوافر، فسيفشل إنشاء القالب أثناء إنشاء مورد RDS (قاعدة البيانات).
  • ينبغي السماح للوصول الوارد إلى HTTP (المنفذ: 80) وHTTPS (المنفذ: 443) وSSH (المنفذ: 22). لأسباب تتعلق بالأمان، نوصي بشدة أن تستخدم HTTPS وأن تتجنب HTTP.

لنشر قالب الشبكة:

  1. انتقل إلى وحدة التحكم CloudFormation الخاصة بمنطقتك (مثل، eu-west-1).
  2. حدّد إنشاء تجميع.
  3. قم بتنزيل ملف wa_ent_net.yml من GitHub واحفظه محليًا.
  4. اختر تحميل ملف قالب كمصدر القالب وقم بتحميل ملف القالب الذي تم تنزيله من الخطوة الثالثة.
    إنشاء التجميع
  5. انقر على التالي.
  6. على الشاشة تحديد تفاصيل التجميع، أدخل قيم المعلمات وفقًا للجدول أدناه:

المعلمات

الاسمالوصف

Stack name

مطلوب.

اسم التجميع المطلوب إنشاؤه

تكوين مناطق التوّفر

الاسمالوصف

Availability zones

مطلوب.

مناطق التوّفر (AZ) المطلوبة لإنشاء السحابة الخاصة الافتراضية (VPC).
يتطلب القالب تحديد منطقتي توفّر على الأقل. بالنسبة لبيئة الإنتاج، نوصي بتحديد 3 مناطق توفّر على الأقل.

Number of availability zones

مطلوب.

عدد مناطق التوّفر المحددة.

تكوين خدمة VPC

الاسمالوصف

IP address range

مطلوب.

نطاق عنوان IP (CIDR) الخاص بخدمة VPC هذه.

Tenancy

مطلوب.

إيجار السحابة الخاصة الافتراضية
الخيارات:default، dedicated

تكوين الشبكة الفرعية العامة

الاسمالوصف

IP range - subnet #1

مطلوب.

نطاق عنوان IP (CIDR) الخاص بالشبكات الفرعية العامة

IP range - subnet #2

مطلوب.

نطاق عنوان IP (CIDR) الخاص بالشبكات الفرعية العامة

IP range - subnet #3

اختياري.

مطلوب، إذا كان عدد مناطق التوفر أكبر من 2.

IP range - subnet #4

اختياري.

مطلوب، إذا كان عدد مناطق التوفر أكبر من 3.

تكوين الشبكة الفرعية الخاصة

الاسمالوصف

Create private subnets?

مطلوب.

الخيارات:true (افتراضي)، false
إذا لم تكن الشبكة الفرعية الخاصة مطلوبة لسبب ما، فيمكن تعيين هذه العلامة إلى القيمة false.

IP range - subnet #1

مشروط.

مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة على القيمة true.

IP range - subnet #2

مشروط.

مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة على القيمة true.

IP range - subnet #3

مشروط.

مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة إلى القيمة true وكان عدد مناطق التوفر أكبر من 2.

IP range - subnet #4

شرطي.

مطلوب، إذا تم تعيين عملية إنشاء الشبكة الفرعية الخاصة على القيمة true وكان عدد مناطق التوفّر أكبر من 3.

الخطوة الثانية: تحميل قاعدة البيانات والتحقق من ملفات تكوين التجميع

قبل نشر تجميع API الخاصة بواتساب للأعمال على AWS، تحتاج أولاً إلى تحميل ملفات تكوين التجميعات الفرعية المرجعية في حاوية S3 التي يمكنك الوصول إليها.

  1. أنشئ حاوية S3 جديدة أو استخدم حاوية S3 موجودة يمكنك الوصول إليها.
  2. قم بتنزيل الملف wa_ent_db.yml والملف wa_ent_monitoring.yml من GitHub وقم بتحميل كل منهما إلى حاوية S3 المذكورة في الخطوة الأولى.
  3. اختر الملف wa_ent_db.yml من قائمة الكائنات، وانسخ عنوان URL الخاص به. يجب أن يكون بالتنسيق https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml.
  4. في الملف wa_ent.yml، استبدل القيمة TemplateURL في dbStack بعنوان URL الكائن من الخطوة الثالثة واحفظ الملف.
  5. اختر الملف wa_ent_monitoring.yml من قائمة الكائنات، وانسخ عنوان URL الخاص به. يجب أن يكون بالتنسيق https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml.
  6. في الملف wa_ent.yml، استبدل القيمة TemplateURL في تجميعة التحقق بعنوان URL الكائن من الخطوة الثالثة واحفظ الملف.
التحميل إلى حاوية S3

الخطوة الثالثة: نشر API الخاصة بواتساب للأعمال

يُعد واتساب Enterprise هو القالب الرئيسي وينشئ جميع الموارد (باستثناء الشبكة) اللازمة لعميل واجهة API واتساب للأعمال. وكما ذُكر سابقًا، ينشئ هذا القالب أيضًا موارد قاعدة البيانات إذا لزم الأمر.

لنشر عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال:

  1. انتقل إلى وحدة التحكم CloudFormation الخاصة بمنطقتك (مثل، eu-west-1).
  2. حدّد إنشاء تجميع.
  3. قم بتنزيل ملف wa_ent.yml من GitHub واحفظه محليًا.
  4. اختر تحميل ملف قالب كمصدر القالب وقم بتحميل ملف القالب الذي تم تنزيله من الخطوة الثالثة.
    إنشاء التجميع
  5. انقر على التالي
  6. ستتمكّن حينها من إدخال المعلمات. راجع الجدول أدناه للحصول على أوصاف المعلمة.
  7. بعد تعيين كل المعلمات (في الجداول أدناه)، انقر على التالي في صفحة تكوين خيارات التجميع. يمكنك إجراء أي تغييرات ضرورية حسب تفضيلاتك والنقر على التالي.
  8. في صفحة مراجعة التجميع، سيظهر ملخص لقيم المعلمة وخيارات التجميع. بعد التحقق، في قسم الإمكانيات، ضع علامة على كلا المربعين وانقر على إرسال لبدء إنشاء التجميع.
    ملاحظة: يستغرق النشر حوالي 20-30 دقيقة.

المعلمات

الاسمالوصف

Stack name

مطلوب.

اسم التجميع المطلوب إنشاؤه.

يجب أن يكون اسم التجميع أقل من 22 حرفًا أو يساوي ذلك. ملاحظة: بالنسبة لعمليات النشر في المناطق ap-southeast-1 أو ap-southeast-2 أو ap-northeast-1 أو ap-northeast-2، يجب أن يتضمن اسم التجميع 8 أحرف أو أقل.

إذا تجاوز طول عدد حروف stack name هذه المتطلبات، فسيتم تعليق عملية إنشاء اسم التجميع وتفشل نظرًا لتعذر إنشاء شهادة SSL.

التكوين العام

الاسمالوصف

High Availability

اختياري.

يمكّن ميزة التوّفر العالي.


الإعداد الافتراضي:enabled

Desired Throughput

مطلوب.

عدد الرسائل التي تريد إرسالها في الثانية.


إلى جانب خيار Type of Message، سيتم تحديد موارد الخادم وقاعدة البيانات وتكوينها تلقائيًا لتلبية معدل الإرسال المطلوب عند إرسال النوع المحدد من الرسائل.

Type of Message

مطلوب.

نوع الرسالة السائد الذي ترغب في إرساله واستلامه.


إلى جانب خيار Desired Throughput، سيتم تحديد موارد الخادم وقاعدة البيانات وتكوينها تلقائيًا لتلبية معدل الإرسال المطلوب عند إرسال النوع المحدد من الرسائل.

Host exporter for instance monitoring

اختياري.

يتم تثبيت node-exporter على كل مضيف CoreApp لأغراض التحقق من المثيل.


الإعداد الافتراضي:enabled

تكوين الشبكة

الاسمالوصف

Network Stack Name

مطلوب.

اسم تجميع CloudFormation للشبكة الذي تم إنشاؤه عن طريق خطوة إعداد الشبكة.

Number of subnets

مطلوب.

عدد الشبكات الفرعية التي تم اختيارها.


لا ندعم حاليًا سوى شبكتين فرعيتين للنشر من أجل توزيع مهام ECS بالتساوي على جميع المضيفين.

Load balancer scheme

مطلوب.

لا ندعم حاليًا سوى أدوات موازنة الحمولة على الإنترنت، والتي تظهر للعامة. يُرجى تعديل مجموعات الأمان بعد إنشاء تجميع API لإغلاق الوصول غير الضروري.

تكوين الحاوية

الاسمالوصف

Keypair to use

مطلوب.

اختر زوج المفاتيح الملائم للوصول إلى مثيل EC2، إذا لزم الأمر.

WA Enterprise container registry

اختياري.

هذا من أجل التدقيق المستقبلي ولدعم العملاء التجريبيين واجهة API الخاصة بتطبيق WhatsApp للأعمال. يجب أن تكون القيمة الافتراضية جيدة لأغلبية الحالات.

WA Enterprise Client version

مطلوب.

يُوصى دائمًا باستخدام أحدث إصدار مستقر (راجع سجل التغييرات لأحدث إصدار).
التنسيق:v2.yy.xx

يبدأ إصدار عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال دائمًا بالحرف "v"، ما لم يذكر خلاف ذلك صراحة. وسيؤدي استخدام الإصدار غير الصحيح إلى فشل عملية الإنشاء.

EBS volume size

مطلوب.

بالنسبة لأحمال الأعمال الإنتاجية، يُوصى باختيار مساحة 32 جيجابايت أو أكثر.

تكوين قاعدة البيانات

الاسمالوصف

Store configuration in DB

اختياري.

يتيح تخزين معلومات التكوين في قاعدة البيانات.
الخيارات:true (افتراضي)، false
تعيين القيمة إلى false يؤدي إلى تعطيل تخزين معلومات التكوين في قاعدة البيانات ويخزنها في الملفات بدلاً من ذلك.

Existing DB hostname

اختياري.

اسم مضيف قاعدة البيانات الحالي.
إذا كان لديك بالفعل مثيل قاعدة بيانات MySQL مخصص لعميل API الخاصة بواتساب للأعمال، فيمكنك إدخال اسم المضيف هنا.
سيؤدي تركه فارغًا إلى إنشاء مثيل Amazon Aurora جديد. للحصول على معدل إرسال مستقر، نوصي بشدة بإنشاء قاعدة بيانات Aurora جديدة أو باستخدام قاعدة بيانات Aurora موجودة تم إنشاؤها سابقًا بواسطة هذا القالب.

Administrator name

مطلوب.

اسم المسؤول للوصول إلى قاعدة البيانات.

Administrator password

مطلوب.

كلمة سر المسؤول للوصول إلى قاعدة البيانات.

يجب ألا تتضمن كلمة السر الخاصة بقاعدة البيانات الحروف التالية: ?{}&~!()^/"@

Server port

مطلوب.

رقم المنفذ للوصول إلى خلفية قاعدة البيانات.

Persist DB Connection

اختياري.

يشير إلى ما إذا كان سيتم الحفاظ على اتصال قاعدة البيانات في حاويات الويب.


الإعداد الافتراضي:enabled

DB Idle Connection Timeout

اختياري.

المدة الزمنية بالمللي ثانية التي تغلق بعدها قاعدة البيانات الاتصالات الخاملة.
افتراضي: 180000 مللي ثانية

تكوين التسجيل

الاسمالوصف

Logging driver for container logs

اختياري.

برنامج تشغيل التسجيل في سجلات الحاوية.
الخيارات:json-file (افتراضي)، awslogs
وتعمل القيمة json-file على تخزين السجلات على مضيفات EC2. تبث القيمة awslogs دفق جميع سجلات الحاوية إلى CloudWatch.

Maximum container log file size

اختياري.

الحد الأقصى لحجم ملف سجل الحاوية بالميجابايت قبل تدويره.

القيم المسموح بها بين 1 و250 (كلاهما مشمول). الافتراضي: 50.

Maximum number of container log files

اختياري.

أقصى عدد لملفات السجل التي يتم الاحتفاظ بها في كل حاوية.
في نهاية الأمر، تتم إزالة الحاويات المتوقفة من المضيف. في هذه الحالات، يتم حذف جميع ملفات السجل المخزنة لتلك الحاوية.

القيم المسموح بها بين 1 و30 (كلاهما مشمول). الافتراضي: 7.

Days to retain CloudWatch logs

اختياري.

عدد الأيام المتاحة للاحتفاظ بالسجلات في CloudWatch.
حدّد واحدة من القيم المتوفرة في القائمة.

الافتراضي: 7

تكوين نظام الملفات

الاسمالوصف

File system identifier

غير مستخدم.

اترك هذه المعلمة فارغة.

تكوين الأمان

الاسمالوصف

Key to encrypt DB & EFS

اختياري.

بشكل افتراضي، يتم استخدام مفتاح خدمة AWS (خيار المفتاح الافتراضي) لتشفير بيانات قاعدة البيانات وEFS الثابتة. الخيارات الأخرى هي:

  • غير مشفر: لا يتم تشفير البيانات الثابتة
  • إنشاء مفتاح جديد: يتم إنشاء مفتاح KMS جديد ويُستخدم لتشفير البيانات
  • مفتاح يوفره المستخدم: يمكنك توفير معرّف مفتاح KMS يُستخدم لتشفير البيانات. اترك هذا الخيار فارغًا، إذا تم تحديد خيار آخر.

User provided key id

اختياري.

يمكنك توفير معرّف مفتاح KMS يُستخدم لتشفير البيانات. اترك هذا الخيار فارغًا، إذا لم يتم تحديد الخيار المفتاح الذي يوفره المستخدم.

DB connection encryption

اختياري.

بشكل افتراضي، يتم تشفير البيانات أثناء نقلها إلى قاعدة البيانات. ولا يمكن تطبيق ذلك حاليًا إلا على Coreapp. كما أن تشفير Webapp غير مدعوم حتى الآن. بالإضافة إلى ذلك وباستخدام محرك قاعدة بيانات جديد حتى في حالة تعطيل هذا الخيار، يجري Coreapp التشفير، ولكن بدون التحقق من صحة شهادة (هوية) الخادم.

CA certificate for DB connection

اختياري.

تحتوي القيمة الافتراضية على حزمة شهادة RDS. وإذا تم استخدام قاعدة بيانات أخرى بخلاف RDS، فيمكن توفير حزمة الشهادات المناسبة الصادرة عن هيئة الشهادات (CA) أو تركها فارغة. وتكون القيمة الافتراضية ملائمة لتمكين اتصال آمن مع قاعدة البيانات.

Client certificate for DB connection

اختياري.

شهادة العميل لاتصال قاعدة البيانات

Client key for DB connection

اختياري.

مفتاح العميل لاتصال قاعدة البيانات

نقطة وصول API الخاصة بتطبيق واتساب للأعمال

هذه المعلمات مطلوبة للوحات معلومات Grafana حتى تتمكن من استرداد أدوات قياس التطبيق لأغراض التحقق.

الاسمالوصف

WAWebUsername

مطلوب.

تحدد اسم مستخدم API الخاصة بتطبيق واتساب للأعمال.

WAWebPassword

مطلوب.

تحدد كلمة سر WAWebUsername. ستكون هذه كلمة السر الجديدة بعد تغيير كلمة السر الافتراضية عند تسجيل الدخول لأول مرة.

Grafana

الاسمالوصف

GrafanaAdminPassword

مطلوب.

تحدد كلمة السر التي يتم استخدامها ككلمة سر تسجيل الدخول للوحة معلومات Grafana عند إنشاء التجميع.

GrafanaEnableSmtp

اختياري.

تشير إلى ما إذا تم تمكين SMTP لإعداد تنبيهات البريد الإلكتروني. القيم الصالحة: 0 للتعطيل و1 للتمكين.

الافتراضي:0 (معطَّل)

GrafanaSmtpHost

اختياري.

مضيف SMTP المستخدم في تنبيهات البريد الإلكتروني. على سبيل المثال، smtp.gmail.com:465.

GrafanaSmtpUser

اختياري.

تحدد اسم مستخدم SMTP المستخدم في تنبيهات البريد الإلكتروني.

GrafanaSmtpPassword

اختياري.

تحدد كلمة سر SMTP المستخدمة في تنبيهات البريد الإلكتروني.

المخرجات بعد النشر

عند إنشاء القالب بنجاح، سيتم عرض المعلمات التالية:

  • Load balancer name: اسم المضيف الخاص بموازن التحميل الذي يمكنه الوصول إلى عميل API منصة واتساب للأعمال
  • Database hostname: اسم المضيف الخاص بقاعدة البيانات التي تم إنشاؤها أو توفيرها أثناء إنشاء القالب
  • Database port number: رقم المنفذ الخاص باتصال قاعدة البيانات
  • ECS cluster name: اسم مجموعة ECS التي تم إنشاؤها
  • Log retention days: عدد أيام الاحتفاظ بالسجلات
  • DB connection CA: قيمة اتصال قاعدة البيانات المعتمد من هيئة الشهادات (CA)، في حالة تكوينها
  • DB connection cert: قيمة شهادة اتصال قاعدة البيانات، في حالة تكوينها
  • DB connection key: قيمة مفتاح اتصال قاعدة البيانات، في حالة تكوينها
  • Grafana: عنوان URL لوحة معلومات Grafana
  • ShardCount: عدد الأقسام المطلوب تكوينها في API منصة واتساب للأعمال

تعديل قواعد أمان SSH

بشكل افتراضي، توفر قواعد الأمان التي أنشأها التجميع لكل الزيارات إمكانية الوصول إلى مثيلات EC2 من خلال SSH، ونقاط نهاية API ولوحة معلومات Grafana من خلال بروتوكولات HTTP، وحاويات cadvisor وPrometheus. لأسباب أمنية، يوصى بشدة بإغلاق الوصول غير الضروري. سيوضح هذا القسم خطوات تحديث قاعدة أمان SSH كمثال. احرص دائمًا على تقييد الوصول إلى SSH ليقتصر على الزيارات التي تثق بها فقط.

  1. في EC2 - وحدة تحكم مجموعات الأمان (على سبيل المثال: وحدة تحكم إدارة EC2 (amazon.com)):
    1. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
    2. حدّد مجموعة الأمان التي تحتوي على <stackName>-EcsSecurityGroup، ثم قم بالتبديل إلى علامة التبويب القواعد الواردة.
      تعديل القواعد الواردة
    3. حدّد تعديل القواعد الواردة، وحدّد عمود المصدر للسماح بالزيارات الموثوقة فقط (على سبيل المثال: عنوان IP الخاص بي) للوصول إلى مضيفات EC2 عبر SSH.
    4. بعد تعديل كل قواعد الأمان، انقر على حفظ القواعد لتطبيق كل التغييرات.
    5. كرّر هذه التغييرات لمجموعة الأمان التي تحتوي على "<stackName>-ms-xxx-EcsSecurityGroup" لتقييد وصول إلى SSH بالنسبة للتحقق من التجميع.

تكوين عميل API الخاصة بتطبيق واتساب للأعمال

بمجرد نشر عميل 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"
    }
}

      
      
    

الخطوة الرابعة: [اختياري] تكوين SSL

ينشئ عميل API واتساب للأعمال شهادة موقّعة ذاتيًا بشكل افتراضي عند إنشائه. وقد تكون الشهادة الصادرة عن هيئة الشهادات (CA) والمُستخدمة في إنشاء الشهادة ذاتية التوقيع مطلوبة من أجل التحقق من نقطة النهاية لعميل واجهة API الخاصة بتطبيق WhatsApp للأعمال وتجنب ظهور تحذير بشأن موثوقية الشهادة.

يمكنك تنزيل الشهادة الصادرة عن هيئة الشهادات وتخزينها محليًا لتجنب ظهور تحذير بشأن موثوقية الشهادة أو يمكنك تحميلها بنفسك. لمعرفة المزيد من المعلومات، يمكنك الرجوع إلى certificate وثائق العقدة.

في عمليات نشر خدمات الويب من Amazon (AWS)، يتم إنشاء شهادة SSL باستخدام اسم المضيف الخاص بموازن التحميل. وإذا تم استخدام عنوان IP بدلاً من اسم المضيف الخاص بالوصول، فستستمر ملاحظة التحذير.

سيدعم واتساب تكوين شهادات SSL المتوفرة من العميل في الإصدار القادم.

الخطوة الخامسة: التحقق من صحة الإعداد

بمجرد الانتهاء من خطوات التكوين والتسجيل بنجاح، يمكن إرسال رسالة وتلقيها للتحقق من الوظائف الأساسية لعميل واجهة API الخاصة بتطبيق WhatsApp للأعمال. ويتم وصف ذلك بالكامل في وثائق الرسائل.

عند تلقي الرسالة بنجاح، سيقوم عميل API الخاصة بواتساب للأعمال بإرسال طلب POST لحالة/تفاصيل الرسالة في حدث Webhook الذي تم تكوينه في الخطوة الثالثة.

وإذا تم تلقي الرسالة بنجاح، فتهانينا لك، لقد انتهيت من كل الإعدادات! لمزيد من المعلومات حول نقاط نهاية واجهة API المتوفرة، يُرجى الرجوع إلى الوثائق المرجعية.

إعادة تشغيل Coreapp وWebapp

لبدء تشغيل عميل API الخاصة بتطبيق واتساب للأعمال، في وحدة تحكم ECS (على سبيل المثال, https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters):

  1. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
  2. حدد المجموعة الملائمة من القائمة.
  3. ضمن علامة تبويب الخدمات، حدد اسم الخدمة التي تتضمن WAEntService.
  4. حدد علامة التبويب المهام. ومن المفترض ألا يوجد سوى مهمة واحدة، وبها معرف مكون من ستة أرقام.
  5. في نافذة المهام، انقر على إيقاف في الزاوية العلوية اليسرى، ثم انقر على إيقاف مرة أخرى عندما يُطلب ذلك.

هذا يؤدي إلى إيقاف كل من Webapp وCoreApp. وبعد فترة قصيرة، تعيد بنية AWS الأساسية تشغيل كل من Webapp وCoreApp.

يمكنك أن تتوقع حدوث وقت تعطل يستمر لمدة دقيقة أو دقيقتين تقريبًا.

الترقية

قد يؤدي تحديث تجميع CloudFormation مباشرةً إلى تلف قاعدة البيانات وإعادة إنشائها. نوصيك بشدة باتباع الخطوات اليدوية في القسم التالي لتحديث النظام وتجنب فقدان البيانات.

يتناول هذا القسم كيفية ترقية كل من عميل API الخاصة بتطبيق واتساب للأعمال وقالب CloudFormation. سيؤدي إجراء الترقية إلى حدوث عطل، لذا لا تقم بإرسال الرسائل خلال هذه الفترة. قم باستئناف إرسال الرسائل بعد إكمال الترقية فقط.

يمكنك ترقية قالب CFN وإصدار عميل API الخاصة بواتساب للأعمال في الوقت نفسه من خلال إجراء ما يلي:

  1. في الخطوة الخامسة لتعليمات ترقية عميل API الخاصة بتطبيق واتساب للأعمال، بدلاً من استخدام القالب الحالي، حدّد استبدال القالب الحالي.
  2. في قسم تحديد القالب، اختر "تحميل ملف قالب" واختر أحدث ملف قالب تم تنزيله من GitHub.

ترقية عميل API الخاصة بواتساب للأعمال

  1. انتقل إلى وحدة التحكم CFN (على سبيل المثال، https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active ).
  2. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
  3. حدد تجميع عميل واجهة API واتساب للأعمال الذي تم إنشاؤه بالفعل.
  4. انقر على تحديث.
  5. في الصفحة المتطلبات الأساسية - تجهيز القالب، حدّد الخيار استبدال القالب الحالي. في قسم تحديد القالب، اختر "تحميل ملف قالب" واختر أحدث ملف قالب تم تنزيله من GitHub. انقر على التالي.
  6. في الصفحة تحديد تفاصيل التجميع، قم بتغيير إصدار (حاوية) عميل API الخاصة بتطبيق واتساب للأعمال إلى الإصدار المطلوب. يجب عدم تغيير أي معلمة أخرى. انقر على التالي.
  7. في الصفحة تكوين خيارات التجميع، انقر على التالي.
  8. في الصفحة المراجعة، حدد "أقر بأن AWS CloudFormation قد ينشئ موارد IAM بأسماء مخصصة." راجع القسم تغيير معاينة المجموعة لمعرفة أي تغييرات غير متوقعة. وإذا طرأت أي تغييرات غير متوقعة أو إذا كنت غير متأكد، فيرجى الاتصال بالدعم المباشر في WhatsApp. انقر على تحديث التجميع. يمكن تتبع حالة تحديث التجميع في وحدة التحكم CFN وستتغير من UPDATE_IN_PROGRESS إلى UPDATE_COMPLETE بمجرد الانتهاء من الترقية.

التحقق من الترقية السريعة:أرسل رسالة نصية وتحقق من أن رد واجهة API يحتوي على رقم الإصدار الصحيح (أي الإصدار الجديد). تحقق أيضًا من أن المستلم قد تلقى الرسالة.

ترقية قالب CFN لتطبيق واتساب

  1. انتقل إلى وحدة تحكم CFN (على سبيل المثال، https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
  3. حدد تجميع عميل واجهة API واتساب للأعمال الذي تم إنشاؤه بالفعل.
  4. انقر على تحديث.
  5. في الصفحة المتطلبات الأساسية - تجهيز القالب، حدّد الخيار استبدال القالب الحالي. في قسم حدد القالب، اختر "تحميل ملف قالب" واختر أحدث ملف قالب تم تنزيله من GitHub. انقر على التالي.
  6. في الصفحة تحديد تفاصيل التجميع، أدخل المعلمات المناسبة حسب المعلومات الواردة في الأقسام السابقة. انقر على التالي.
  7. في الصفحة تكوين خيارات التجميع، انقر على التالي.
  8. في الصفحة المراجعة، حدد "أقر بأن AWS CloudFormation قد ينشئ موارد IAM بأسماء مخصصة." راجع القسم تغيير معاينة المجموعة لمعرفة أي تغييرات غير متوقعة. وإذا طرأت أي تغييرات غير متوقعة أو إذا كنت غير متأكد، فيرجى الاتصال بالدعم المباشر في WhatsApp. انقر على تحديث التجميع. يمكن تتبع حالة تحديث التجميع في وحدة التحكم CFN وستتغير من UPDATE_IN_PROGRESS إلى UPDATE_COMPLETE بمجرد الانتهاء من الترقية.

كيفية تقليل التكلفة يدويًا عندما يكون النظام في حالة خمول (اختياري)

من الشائع أن ترغب الأنشطة التجارية في إعداد بيئة تتضمن معدلات إرسال عالية لحملة إعلانية محددة زمنيًا وترغب كذلك في الحفاظ على بيئة منخفضة التكلفة تعمل خلال الفترات غير المرتبطة بحملات إعلانية. يقدم هذا القسم اقتراحات حول كيفية تقليل إعداد AWS يدويًا لتوفير التكلفة.

مهم: يُرجى تذكر أنه سيكون هناك زمن توقف. قد يتراوح زمن التوقف المقدّر بين 5 إلى 15 دقيقة. يُرجى التأكد من اتباع أفضل الممارسات في DevOps، مثل النسخ الاحتياطي لإعدادات التطبيق والنسخ الاحتياطي لقاعدة البيانات.

  1. في وحدة تحكم ECS (مثال: Amazon ECS:)
    1. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
    2. حدّد المجموعة الملائمة من القائمة.
    3. في علامة تبويب الخدمات، حدّد اسم الخدمة التي تتضمن WAEntCoreappService. اختر تعديل الخدمة، وقم بتحديث قيمة "المهام المطلوبة" إلى 0.
      تكوين النشر
    4. كرّر الخطوة ج لكل الخدمات الأخرى، بما في ذلك WAEntWebService وWAEntMasterService وHostExporterService.
    5. عُد إلى صفحة المجموعة، وفي علامة تبويب المهام، وتأكد من عدم تشغيل أي مهام أخرى للخدمات أعلاه.
  2. في EC2 - وحدة تحكم مجموعات التوسع التلقائي (مثال: مجموعات التوسع التلقائي | وحدة تحكم إدارة EC2 (amazon.com)):
    1. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
    2. حدّد مجموعة التوسع التلقائي للتجميع مع تضمين HAECSAutoScalingGroup في الاسم واختر تعديل. قم بتحديث كل من "السعة المطلوبة " و"الحد الأدنى للسعة" إلى 3.
      حجم المجموعة
    3. حدّد مجموعة التوسع التلقائي للتجميع مع تضمين HAECSAutoScalingGroupWeb في الاسم واختر تعديل. قم بتحديث كل من "السعة المطلوبة" و"الحد الأدنى للسعة" إلى 2.
  3. (اختياري) إذا كانت القيمة المبدئية "نوع الرسالة" هي أي من أنواع الصور، فيمكنك استبدال أنواع المثيل EC2 بالخيار الأرخص c5.large.
    1. في EC2 - وحدة تحكم قوالب التشغيل، حدّد قالب التشغيل المناسب من القائمة.
    2. حدّد الإجراءات - تعديل القالب (إنشاء إصدار جديد).
      وحدة تحكم قوالب التشغيل
    3. في القسم نوع المثيل، قم بتحديث نوع المثيل إلى c5.large، ثم اختر إنشاء إصدار قالب.
      نوع المثيل
    4. في EC2 - وحدة تحكم مجموعات التوسع التلقائي، حدّد مجموعة التوسع التلقائي للتجميع مع تضمين HAECSAutoScalingGroup في الاسم.
    5. حدّد تعديل في قسم تشغيل القالب.
    6. حدّد قالب التشغيل الجديد الذي تم إنشاؤه في الخطوة 3ج واختر تحديث.
      قالب التشغيل
  4. في وحدة تحكم RDS (مثال: وحدة تحكم إدارة RDS (amazon.com)):
    1. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
    2. حدّد قاعدة بيانات Aurora الملائمة من القائمة.
    3. حدّد تعديل، وقم بتحديث فئة مثيل قاعدة البيانات إلى r5.xlarge.
      تكوين المثيل
  5. في وحدة تحكم ECS (مثال: Amazon ECS):
    1. حدّد المنطقة الصحيحة في الزاوية العلوية اليسرى.
    2. حدّد المجموعة الملائمة من القائمة.
    3. في علامة تبويب الخدمات، حدّد اسم الخدمة التي تتضمن WAEntCoreappService. حدّد تعديل الخدمة، وقم بتحديث قيمة "المهام المطلوبة" إلى 3.
    4. في علامة تبويب الخدمات، حدّد اسم الخدمة التي تتضمن HostExporterService. حدّد تعديل الخدمة، وقم بتحديث قيمة "المهام المطلوبة" إلى 3.
    5. في علامة تبويب الخدمات، حدّد اسم الخدمة التي تتضمن WAEntWebService. حدّد تعديل الخدمة، وقم بتحديث قيمة "المهام المطلوبة" إلى 2.
    6. في علامة تبويب الخدمات، حدّد اسم الخدمة التي تتضمن WAEntMasterService. حدّد تعديل الخدمة، وقم بتحديث قيمة "المهام المطلوبة" إلى 2.
  6. انتظر حتى تقوم جميع الخدمات بتشغيل العدد المطلوب من المهام. بمجرد تشغيل كل المهام، استخدم API تعيين الأقسام لإعادة تعيين الأقسام إلى 2.
  7. تحقق من سلامة النظام من خلال API السلامة. يمكن أيضًا إرسال رسالة وتلقيها للتحقق من الوظيفة الأساسية لعميل API الخاصة بتطبيق واتساب للأعمال. يتم وصف ذلك بالكامل في وثائق الرسائل.