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

إعداد الإنتاج: التوفّر العالي والاتصال المتعدد

يوضح هذا المستند كيفية إعداد مجموعة التوفّر العالي في مرحلة الإنتاج. كما يوفر إرشادات حول كيفية تمكين الاتصال المتعدد أولاً، وكذلك التغييرات المطلوبة لمجموعة الاتصال المتعدد ذات التوفّر العالي.

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

قبل بدء أي من هذه الإعدادات، تحقق من المتطلبات.

لإعداد مجموعة التوفّر العالي:

  1. إنشاء دليل biz للبرامج النصية للإعداد
  2. الحصول على ملفات تكوين عميل API الخاصة بواتساب للأعمال
  3. إعداد متغيرات بيئة قاعدة البيانات
  4. إعداد وحدة تخزين الوسائط المحلية
  5. بدء عميل API الخاصة بواتساب للأعمال
  6. التحقق من تشغيل الحاويات
  7. إجراء عملية التحقق من سلامة الأداء
  8. تسجيل عميل API الخاصة بواتساب للأعمال
  9. إجراء عملية ثانية للتحقق من سلامة الأداء

لإعداد مجموعة الاتصال المتعدد ذي التوفّر العالي:

  1. إعداد قسمين
  2. إجراء عملية التحقق من سلامة الأداء
  3. بدء تشغيل حاوية coreapp ثالثة للحفاظ على التوفّر العالي
  4. إجراء عملية ثانية للتحقق من سلامة الأداء

بمجرد إكمال إعداد المثيل، يمكنك اختيار ترقيته. لإلغاء تثبيت العميل، اتبع هذه الخطوات.

قبل البدء

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

يعتمد المحتوى في هذا المستند على افتراض التثبيت الحديث باستخدام رقم هاتف جديد.

ستحتاج إلى ما يلي:

  • خوادم الحسابات المتعددة لتشغيل مجموعة متنوعة من مكونات عميل API الخاصة بواتساب للأعمال، (أي Webapp وCoreapp وMaster)
    • لمتطلبات النظام، راجع ما متطلبات نظام الخادم لتشغيل عميل API الخاصة بواتساب للأعمال؟ في الأسئلة المتكررة.
    • لإعداد التوفّر العالي في الإنتاج، نوصي باستخدام جهاز واحد على الأقل لحاوية Webapp وجهازين لحاويات Coreapp وجهازين لحاويات Master. تكون عمليات التحميل على حاويات Master خفيفة ويمكنك تحديد مواقع حاويات Master وCoreapp على المضيف نفسه.
  • خادم قاعدة بيانات مستقل يشغّل عملية MySQL أو PostgreSQL
    • يجب عدم تشغيل خادم قاعدة البيانات على أي من خوادم الحوسبة الأخرى التي تستضيف عميل API الخاصة بواتساب للأعمال ويجب ألا يتأخر زمن الاستجابة عن جزء طفيف بالمللي ثانية من خوادم الحوسبة الأخرى.

يلزم توفير الإصدار MySQL 5.7.xx/8.0.xx أو PostgreSQL 13.x/12.x/11.x.

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

ربما سيتسبب عدم الامتثال بذلك في فشل الإعداد.

  • نظام ملف مشترك (مثل NFS) تم تثبيته على نطاق محلي في كل مضيفي Webapp وMaster وCoreapp، إذا كنت تريد دعم إرسال رسائل الوسائط وتلقيها
    • تأكد من تعيين 755 كوضع الملف في مسار التثبيت وكل النطاقات الفرعية.
mkdir your-local-media-volume-path
mount -t nfs nfs_server_IP_addr:/shared_directory /your-local-media-volume-path

Install Docker Desktop

To install Docker Desktop on your developer machine:

  1. Navigate to the Docker website.
  2. If you do not have an existing Docker account, create one by clicking on Sign Up.
  3. After you have created your account, you will be directed to the Docker download page.
  4. Download Docker Desktop based on your OS (This should be automatically detected and presented as the default option).

The remaining steps are based on macOS and should be very similar for Linux or Windows 10.

To install Docker using macOS:

  1. Install the package (docker.dmg for macOS).
  2. After extraction, Finder will pop-up and you will be presented with a dialog that instructs you to drag the Docker icon to Applications. Drag Docker icon to the Application folder in Finder.
  3. In Applications launch Docker and then click the Open button.
  4. You may be prompted to enter your password Docker needs priviledged/administrator access.
  5. Docker will present you with a tutorial, you can click Start to launch a tutorial or you can click Skip Tutorial to start using Docker.

Verify Docker Compose is installed

Docker Compose is a plugin that is bundled with Docker Desktop and should have installed automatically. For more information about using or Docker Compose, see Overview of Docker Compose. If for some reason Docker Compose was not installed, you can install it by following the instructions located at Install Docker Compose.

إعداد مجموعة ذات التوفّر العالي

الخطوة الأولى: إنشاء دليل biz للبرامج النصية للإعداد

قم بتشغيل الرمز التالي في موقعك المفضل لعميل API الخاصة بواتساب للأعمال:

mkdir ~/biz; cd ~/biz;

الخطوة الثانية: الحصول على ملفات تكوين عميل API الخاصة بواتساب للأعمال

انسخ ملفي التكوين prod-multiconnect-compose.yml وdb.env من دليل التثبيت في مستودع WhatsApp-Business-API-Setup-Scripts GitHub إلى دليل ~/biz الذي أنشأته في الخطوة الأولى.

الخطوة الثالثة: تعيين متغيرات بيئة قاعدة البيانات

يمكنك تغيير متغيرات بيئة قاعدة البيانات في الملف db.env ضمن الدليل ~/biz لعرض تكوين MySQL/PostgreSQL.

WA_DB_ENGINE=MYSQL | PGSQL
WA_DB_HOSTNAME=your-database-server
WA_DB_PORT=your-database-server-port
WA_DB_USERNAME=your-database-username
WA_DB_PASSWORD=your-database-password

الخطوة الرابعة: إعداد وحدة تخزين الوسائط المحلية

يتم استخدام وحدة تخزين الوسائط المحلية (whatsappMedia:/usr/local/wamedia بشكل افتراضي) المحددة في ملف prod-docker-compose.yml لتخزين ملفات الوسائط. يتم افتراضيًا تثبيت وحدة التخزين على الدليل في جهاز Docker. بدلاً من ذلك، يمكنك اختيار تثبيت وحدة تخزين الوسائط في دليل المضيف. لتغيير نقطة التثبيت في وحدة تخزين الوسائط، يمكنك تعديل تعريف وحدة التخزين داخل القسم services من whatsappMedia إلى مسار دليل المضيف الذي تستخدمه.

services:
  waweb:
    ...
    volumes:
      - /your-local-media-volume-path:/usr/local/wamedia
    ...
  wacore:
    ...
    volumes:
      - /your-local-media-volume-path:/usr/local/wamedia
  ...
  master:
    ...
    volumes:
      - /your-local-media-volume-path:/usr/local/wamedia

الخطوة الخامسة: بدء تشغيل عميل API الخاصة بواتساب للأعمال

لبدء عميل API الخاصة بواتساب للأعمال بحاوية Webapp واحدة وحاويتي Master وحاويتي Coreapp مشابهة لمخطط تقديم التوّفر العالي، استخدم الأوامر التالية بتغييرات ضرورية للبيئة (أي أسماء المضيف وأسماء مستخدم المضيف والمسارات المحلية):

# copy configuration scripts to each Webapp host, ssh to each Webapp host, execute scripts to install Webapp on the host
for host in your-webapp-hostname; do
    scp db.env prod-multiconnect-compose.yml username@$host:/local/path/
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd waweb
done 
# copy configuration scripts to each Master host, ssh to each Master host, execute scripts to install Master on the host
for host in your-master1-hostname your-master2-hostname; do
    scp db.env prod-multiconnect-compose.yml username@$host:/local/path/
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd master
done
# copy configuration scripts to each Coreapp host, ssh to each Coreapp host, execute scripts to install Coreapp on the host
for host in your-coreapp1-hostname your-coreapp2-hostname; do
    scp db.env prod-multiconnect-compose.yml username@$host:/local/path/
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd wacore
done

باختصار، ستعمل الأوامر أعلاه على ما يلي:

  • نسخ ملفات التكوين prod-multiconnect-compose.yml وdb.env لكل مضيفي Webapp (your-webapp-hostname في هذا المثال) وابدأ الخدمة waweb في هؤلاء المضيفين؛
  • نسخ ملفي التكوين prod-multiconnect-compose.yml وdb.env إلى كل مضيفي Master (your-master1-hostname وyour-master2-hostnameفي هذا المثال) وتشغيل الخدمة Master على هؤلاء المضيفين؛
  • نسخ ملفي التكوين prod-multiconnect-compose.yml وdb.env إلى كل مضيفي في Coreapp (your-coreapp1-hostname وyour-coreapp2-hostname في هذا المثال) وتشغيل الخدمة wacore على هؤلاء المضيفين.

الخطوة السادسة: التحقق من تشغيل الحاويات

يمكنك التحقق من أن كل الحاويات متوفرة بالحالة RUNNING عن طريق تشغيل:

EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f prod-multiconnect-compose.yml ps

الخطوة السابعة: إجراء التحقق من سلامة الأداء

يمكنك تنزيل مجموعة Postman التي نوفرها وتكوينها للتفاعل مع API الخاصة بواتساب للأعمال إذا كنت لا تريد استخدام سطر الأوامر.

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

يجب أن يبدو الإخراج الناتج كما يلي:

{
    "health": {
        "your-master1-hostname:85cdd51506fd": {
            "errors": [
              {
                  "code": 1011,
                  "title": "Service not ready",
                  "details": "Wacore is not instantiated. Please check wacore log for details."
              }
            ]
        },
        "your-master2-hostname:8dd3f5bea27d": {
            "gateway_status": "unregistered",
            "role": "primary_master"
        },
        "your-coreapp1-hostname:753efb1cf72c": {
            "errors": [
              {
                  "code": 1011,
                  "title": "Service not ready",
                  "details": "Wacore is not instantiated. Please check wacore log for details."
              }
            ]
        },
        "your-coreapp2-hostname:75d7355eaaaa": {
            "errors": [
              {
                  "code": 1011,
                  "title": "Service not ready",
                  "details": "Wacore is not instantiated. Please check wacore log for details."
              }
            ]
        }
    }
}
200

تعرض الاستجابة gateway_status لـ unregistered نظرًا إلى أنه لم يتم تسجيل عميل API الخاصة بواتساب للأعمال بعد.

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

يمكنك تسجيل عميل API الخاصة بواتساب للأعمال باستخدام استدعاء API في العقدة account.

الخطوة التاسعة: إجراء عملية ثانية للتحقق من سلامة الأداء

قم بإجراء التحقق من سلامة الأداء مرة أخرى بعميل API الخاصة بواتساب للأعمال باستخدام استدعاء API إلى العقدة health بعد إكمال التسجيل، والتأكد من أن إحدى حاويات Coreapp تتوفر بالحالة gateway_status لـ connected.

يجب أن يبدو الإخراج الناتج كما يلي:

{
    "health": {
        "your-master1-hostname:85cdd51506fd": {
            "gateway_status": "disconnected",
            "role": "secondary_master"
        },
        "your-master2-hostname:8dd3f5bea27d": {
            "gateway_status": "disconnected",
            "role": "primary_master"
        },
        "your-coreapp1-hostname:753efb1cf72c": {
            "gateway_status": "connected",
            "role": "coreapp"
        },
        "your-coreapp2-hostname:75d7355eaaaa": {
            "gateway_status": "disconnected",
            "role": "coreapp"
        }
    }
}
200

ملاحظة: في وضع التوفّر العالي، لن يتم سوى ربط عقدة Coreapp واحدة فقط (your-coreapp1-hostname:753efb1cf72c في هذا المثال) بخادم واتساب، وستتمتع جميع العُقد الأخرى بما في ذلك عقدة Master الرئيسية بالحالة gateway_status لـ disconnected. إذا تعطلت your-coreapp1-hostname:753efb1cf72c، فسيتم استبدالها بـ your-coreapp2-hostname:75d7355eaaaa وربطها بخادم واتساب للحفاظ على التوفّر العالي.

يوصى بإعداد التحقق في عميل API الخاصة بواتساب للأعمال للإنتاج.

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

إعداد مجموعة الاتصال المتعدد ذات التوفّر العالي

الخطوة الأولى: إعداد قسمين

استخدم نقطة نهاية الأقسام لإعداد قسمين. يجب أن تظهر لك استجابة HTTP بالحالة 201 Created.

الخطوة الثانية: إجراء التحقق من سلامة الأداء

يمكنك إجراء التحقق من سلامة الأداء في عميل API الخاصة بواتساب للأعمال باستخدام استدعاء API إلى العقدة health للتحقق من تشغيل كل العُقد بشكل سليم.

يجب أن يبدو الإخراج الناتج كما يلي:

{
    "health": {
        "your-master1-hostname:85cdd51506fd": {
            "gateway_status": "disconnected",
            "role": "secondary_master"
        },
        "your-master2-hostname:8dd3f5bea27d": {
            "gateway_status": "connected",
            "role": "primary_master"
        },
        "your-coreapp1-hostname:753efb1cf72c": {
            "gateway_status": "connected",
            "role": "coreapp"
        },
        "your-coreapp2-hostname:75d7355eaaaa": {
            "gateway_status": "connected",
            "role": "coreapp"
        }
    }
}      
200    

ملاحظة: في وضع الاتصال المتعدد ذي القسمين، سيتم ربط عقدتي Coreapp (your-coreapp1-hostname:753efb1cf72c وyour-coreapp2-hostname:75d7355eaaaa في هذا المثال) بخادم واتساب، كما سيتم ربط عقدة Master الرئيسية (your-master2-hostname:8dd3f5bea27d في هذا المثال) بالخادم.

الخطوة الثالثة: بدء تشغيل حاوية Coreapp ثالثة للحفاظ على التوفّر العالي

في هذا المثال حتى الآن، تتوفر لديك حاويتا Coreapp وتم تقسيم عمليات تحميل الرسائل بينهما. مع ذلك، إذا تعطلت إحدى حاويتي Coreapp، فستفشل نصف عمليات إرسال الرسائل لديك. للحفاظ على التوّفر العالي في إعداد الاتصال المتعدد الجديد، يمكنك بدء حاوية Coreapp ثالثة في مضيف Coreapp جديد (

your-coreapp3-hostname

في هذا المثال) لتجاوز فشل حاوية Coreapp واحدة، وهو مشابه للمخطط المعروض في تقديم الاتصال المتعدد.

لتشغيل حاوية Coreapp الثالثة، قم بتشغيل الأمر التالي:

# copy configuration scripts to the 3rd Coreapp host, ssh to the Coreapp host, execute scripts to install Coreapp on the host
for host in your-coreapp3-hostname; do
    scp db.env prod-multiconnect-compose.yml username@$host:/local/path/
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd wacore
done

الخطوة الرابعة: إجراء التحقق من سلامة الأداء للمرة الثانية

قم بإجراء التحقق من سلامة الأداء مرة أخرى للتأكد من أن جميع العُقد تعمل بشكل صحيح باستخدام استدعاء API إلى العقدة health.

يجب أن يبدو الإخراج الناتج كما يلي:

{
    "health": {
        "your-master1-hostname:85cdd51506fd": {
            "gateway_status": "disconnected",
            "role": "secondary_master"
        },
        "your-master2-hostname:8dd3f5bea27d": {
            "gateway_status": "disconnected",
            "role": "primary_master"
        },
        "your-coreapp1-hostname:753efb1cf72c": {
            "gateway_status": "connected",
            "role": "coreapp"
        },
        "your-coreapp2-hostname:75d7355eaaaa": {
            "gateway_status": "connected",
            "role": "coreapp"
        },
        "your-coreapp3-hostname:23b50199bec2": {
            "gateway_status": "disconnected",
            "role": "coreapp"
        }
    }
}      
200 

تعمل حاوية Coreapp الجديدة (your-coreapp3-hostname:23b50199bec2 في هذا المثال) الآن باعتبارها حاوية احتياطية، ولكن لم يتم ربطها حاليًا بخادم واتساب. إذا توقفت إحدى حاويتي Coreapp المرتبطتين عن العمل، فسيتم ربط الحاوية الثالثة بخادم واتساب للحفاظ على العدد الكلي للأقسام وهو 2.

الإرشادات وأفضل الممارسات

عدد حاويات Webapp

لدعم 100 إلى 150 رسالة/الثانية، يوصى باستخدام حاويتي Webapp على الأقل. إذا كنت تريد تحقيق التوفّر العالي لحاوية Webapp، فيمكنك تشغيل حاويات Webapp على أكثر من مضيفين واستضافتها بتجاوز موازن التحميل، مثل HAProxy أو Nginx أو ELB. بدلاً من الوصول إلى نقاط النهاية لعميل API الخاصة بواتساب للأعمال النشاط التجاري من خلال https://your-webapp-hostname:your-webapp-port/، يجب أن تستخدم https://your-load-balancer-name:your-load-balancer-port/.

عدد حاويات Master

يوصى بتشغيل 3 حاويات Master على أجهزة مضيفة مختلفة. لا يوجد سبب لتوفر أكثر من 3 حاويات Master في الإنتاج بغض النظر عن عدد الأقسام المتوفرة لديك. تكون عمليات التحميل على حاويات Master خفيفة ويمكنك تحديد مواقعها مع حاويات Coreapp.

عدد حاويات Coreapp

يوصى بتشغيل عدد shard_number + X من حاويات Coreapp بأجهزة مضيفة مختلفة لتجاوز بعدد X من حالات فشل المضيف.

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

ستواجه مشكلة زمن التوقف أثناء عملية الترقية.

يوصى بشدة بإجراء نسخ احتياطي لإعدادات التطبيق الحالية لديك قبل الترقية للتأكد من أنه يمكنك نسخ الإعدادات احتياطيًا وتشغيلها سريعًا. يُرجى اتباع وثائق النسخ الاحتياطي والاستعادة.

نوصي دائمًا بتنفيذ الترقيات خلال الساعات الأقل نشاطًا.

يجب تحديث المتغير البيئي WA_API_VERSION إلى رقم الإصدار الجديد. قم بتشغيل الأوامر التالية بالتغييرات الضرورية للبيئة (أي أسماء المضيف وأسماء مستخدم المضيف والمسارات المحلية):

# ssh to each Webapp host, execute scripts with new WA_API_VERSION to upgrade Webapp on the host
for host in your-webapp-hostname; do
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.x docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd waweb
done
# ssh to each Master host, execute scripts with new WA_API_VERSION to upgrade Master on the host
for host in your-master1-hostname your-master2-hostname; do
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.x docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd master
done
# ssh to each Coreapp host, execute scripts with new WA_API_VERSION to upgrade Coreapp on the host
for host in your-coreapp1-hostname your-coreapp2-hostname your-coreapp3-hostname; do
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.x docker-compose -f /local/path/prod-multiconnect-compose.yml up -d"
    ssh username@$host $cmd wacore
done

بالنسبة لمستخدمي قاعدة بيانات MySQL، يجب على المستخدمين الترقية إلى الإصدار 2.23.x والإصدارات الأحدث

يمكنك الآن الاستفادة من خدمة ترقية قاعدة البيانات التي ستتيح لك ترقية قاعدة البيانات بينما لا يزال تطبيقك قيد التشغيل لتجنب زمن التوقف.

الخطوة الأولى: تنزيل ملف التكوين

يتضمن الملف dbupgrade-compose.yml حقولاً تشير إلى إصدار الحاوية.

المثال:

services:
  dbupgrade:
      image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}

الخطوة الثانية: بدء تشغيل الحاوية

لترقية عملية تثبيت، يمكنك بدء تشغيل الحاوية dbupgrade-service مع تعيين متغير البيئة WA_API_VERSION على أحدث إصدار:

EXTERNAL_HOSTNAME=$host_to_upgradedb WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d

ملاحظة: إذا كنت تستخدم تزامنًا يعيد تشغيل الحاوية عند الخروج بغض النظر عن الرمز للخروج، فيمكنك بدء تشغيل الخدمة من خلال تعيين متغير البيئة EXIT_ON_SUCCESS على القيمة FALSE لتجنب الخروج من الحاوية عندما يكون الرمز للخروج بالقيمة 0.

الخطوة الثالثة: السماح بإكمال الترقية

إذا تمت ترقية قاعدة البيانات بنجاح، فستخرج الحاوية بالرمز 0. يمكنك استخدام أمر Docker التالي لتتبع الحالة:

docker wait your-database-upgrade-container-name

سيؤدي ذلك إلى عرض رمز الخروج الخاص بحاوية dbupgrade-service.

الخطوة الرابعة: إعادة تشغيل حاويات Coreapp وWebapp

أعد تشغيل حاويات Docker في Coreapp وWebapp مع تعيين متغير البيئة WA_API_VERSION إلى أحدث إصدار:

EXTERNAL_HOSTNAME=$host_to_upgradedb WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d

بالنسبة لمستخدمي عميل API الخاصة بواتساب للأعمال الذين يقومون بالترقية إلى الإصدار 2.29.3 والإصدارات الأحدث

إذا كنت تقوم بالترقية من v2.29.1 وv2.29.2أو واجهت مشكلات أثناء الترقية إلى هذه الإصدارات وكان عليك الرجوع إلى إصدار قديم من للحصول على أداء ثابت، فنوصي بالترقية إلى v2.29.3 ثم تشغيل الأمر التالي في حاوية Webapp Docker:

chown -R root your-media-directory/incoming your-media-directory/outgoing your-media-directory/shared

ما لم تقم بتغييره، فإن دليل الوسائط الافتراضي هو /usr/local/wamedia.

ملاحظة:

  • نظرًا إلى أن هذا الأمر يمكن أن يستغرق بعض الوقت حتي يكتمل استنادًا إلى حجم وحدة تخزين الوسائط الموجودة مسبقًا، نوصي ببدء هذا الأمر بمجرد الترقية أثناء فترة الصيانة.
  • يعمل هذا الأمر فقط على تعديل ملكية وحدات تخزين الوسائط في الخلفية (لا يوجد تأثير/زمن توقف لعمليات الوسائط أو تأخر استجابة/أداء أثناء التشغيل).
  • هذا مسار ترقية لمرة واحدة فقط لإصلاح مشكلات التوافق مع الإصدارات السابقة في v2.29.1 وv2.29.2.

إلغاء تثبيت عميل API الخاصة بواتساب للأعمال

إذا كنت تحتاج إلى إعادة تعيين بيئة التطوير من خلال إزالة كل الحاويات، فاستخدم الأوامر التالية بالتغييرات الضرورية للبيئة (أي أسماء المضيف وأسماء مستخدم المضيف والمسارات المحلية):

# ssh to each Webapp host, execute scripts to uninstall Webapp on the host
for host in your-webapp-hostname; do
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-docker-compose.yml down"
    ssh username@$host $cmd waweb
done
# ssh to each Master host, execute scripts to uninstall Master on the host
for host in your-master1-hostname your-master2-hostname; do
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-docker-compose.yml down"
    ssh username@$host $cmd master
done
# ssh to each Coreapp host, execute scripts to uninstall Coreapp on the host
for host in your-coreapp1-hostname your-coreapp2-hostname your-coreapp3-hostname; do
    cmd="EXTERNAL_HOSTNAME=$host WA_API_VERSION=2.23.4 docker-compose -f /local/path/prod-docker-compose.yml down"
    ssh username@$host $cmd wacore
done

استكشاف الأخطاء وإصلاحها

لتجميع السجلات من جميع الحاويات في المضيف، قم بتشغيل الأمر التالي:

EXTERNAL_HOSTNAME=$host_to_collect_logs docker-compose -f /local/path/prod-multiconnect-compose.yml logs > debug_output.txt

لتجميع سجلات خدمة معينة، قم بإلحاق اسم الخدمة (مثل waweb أو master1 أو wacore1) بالأمر docker-compose logs.

EXTERNAL_HOSTNAME=$host_to_collect_logs docker-compose -f /local/path/prod-multiconnect-compose.yml logs waweb > debug_output.txt

يمكنك العثور على السجلات في الملف debug_output.txt في الدليل الحالي.


يستخدم هذا البرنامج الرمز FFmpeg المُرخص بموجب رخصة جنو العمومية الصغرى (LGPL) بالإصدار 2.1 ويمكن تنزيل مصدره من هنا.