تلقي طلبات HTTPS الواردة والاستجابة لها في تطبيقات Azure Logic

باستخدام Azure Logic Apps ومشغل الطلب المضمن وإجراء الاستجابة، يمكنك إنشاء مهام ومهام سير عمل تلقائية يمكنها تلقي الطلبات الواردة عبر HTTPS. لإرسال الطلبات الصادرة بدلا من ذلك، استخدم مشغل HTTP المضمن أو إجراء HTTP.

على سبيل المثال، يمكنك الحصول على تطبيق المنطق الخاص بك:

  • تلقي طلب HTTPS للبيانات والاستجابة له في قاعدة بيانات محلية.

  • قم بتشغيل سير عمل عند حدوث حدث webhook خارجي.

  • تلقي مكالمة HTTPS والرد عليها من تطبيق منطقي آخر.

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

لمزيد من المعلومات حول الأمان والتخويل والتشفير للمكالمات الواردة إلى تطبيقك المنطقي، مثل أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL)، أو مصادقة Azure Active Directory المفتوحة (Azure AD OAuth)، أو تعريض تطبيقك المنطقي باستخدام إدارة واجهة برمجة تطبيقات Azure، أو تقييد عناوين IP التي تنشأ عنها المكالمات الواردة، راجع الوصول الآمن والبيانات - الوصول للمكالمات الواردة إلى المشغلات المستندة إلى الطلب.

ملاحظة

في سير عمل تطبيق المنطق القياسي الذي يبدأ بمشغل الطلب (ولكن ليس مشغل webhook)، يمكنك استخدام توفير وظائف Azure لمصادقة المكالمات الواردة المرسلة إلى نقطة النهاية التي تم إنشاؤها بواسطة هذا المشغل باستخدام هوية مدارة. ويعرف هذا الحكم أيضا باسم "المصادقة السهلة". لمزيد من المعلومات، راجع مهام سير عمل المشغل في تطبيقات المنطق القياسية باستخدام المصادقة السهلة.

المتطلبات الأساسية

إضافة مشغل طلب

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

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

  1. تسجيل الدخول إلى ⁧مدخل Microsoft Azure⁧. قم بإنشاء تطبيق Logic فارغ.

  2. بعد فتح Logic App Designer، في مربع البحث، أدخل http request كعامل تصفية خاص بك. من قائمة المشغلات، حدد المشغل عند تلقي طلب HTTP .

    Select Request trigger

    يعرض مشغل الطلب هذه الخصائص:

    Request trigger

    اسم الخاصية اسم الخاصية JSON مطلوب الوصف
    عنوان URL لنشر HTTP {لا شيء} نعم عنوان URL لنقطة النهاية الذي يتم إنشاؤه بعد حفظ تطبيق المنطق ويتم استخدامه للاتصال بتطبيق المنطق
    طلب مخطط JSON للهيئة schema لا مخطط JSON الذي يصف الخصائص والقيم في نص الطلب الوارد
  3. في المربع مخطط JSON لنص الطلب، أدخل اختياريا مخطط JSON يصف النص الأساسي في الطلب الوارد، على سبيل المثال:

    Example JSON schema

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

    فيما يلي نموذج المخطط:

    {
       "type": "object",
       "properties": {
          "account": {
             "type": "object",
             "properties": {
                "name": {
                   "type": "string"
                },
                "ID": {
                   "type": "string"
                },
                "address": {
                   "type": "object",
                   "properties": {
                      "number": {
                         "type": "string"
                      },
                      "street": {
                         "type": "string"
                      },
                      "city": {
                         "type": "string"
                      },
                      "state": {
                         "type": "string"
                      },
                      "country": {
                         "type": "string"
                      },
                      "postalCode": {
                         "type": "string"
                      }
                   }
                }
             }
          }
       }
    }
    

    عند إدخال مخطط JSON، يعرض المصمم تذكيرا لتضمين Content-Type الرأس في طلبك وتعيين قيمة الرأس هذه إلى application/json. لمزيد من المعلومات، راجع معالجة أنواع المحتويات.

    Reminder to include

    إليك الشكل الذي يبدو عليه هذا الرأس بتنسيق JSON:

    {
       "Content-Type": "application/json"
    }
    

    لإنشاء مخطط JSON يستند إلى الحمولة (البيانات) المتوقعة، يمكنك استخدام أداة مثل JSONSchema.net، أو يمكنك اتباع الخطوات التالية:

    1. في مشغل الطلب، حدد استخدام عينة الحمولة لإنشاء مخطط.

      Screenshot with

    2. أدخل عينة الحمولة، ثم حدد تم.

      Enter sample payload to generate schema

      فيما يلي عينة الحمولة:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": {
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. للتحقق من أن المكالمة الواردة تحتوي على نص طلب يطابق المخطط المحدد، اتبع الخطوات التالية:

    1. لفرض الرسالة الواردة على الحصول على نفس الحقول الدقيقة التي يصفها المخطط، في المخطط، أضف required الخاصية وحدد الحقول المطلوبة. addtionalProperties أضف القيمة واضبطها على false.

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

      {
         "properties": {
           "msg": {
              "type": "string"
           }
         },
         "type": "object",
         "required": ["msg"],
         "additionalProperties": false
      }
      
    2. في شريط عنوان مشغل الطلب، حدد زر علامات الحذف (...).

    3. في إعدادات المشغل، قم بتشغيل التحقق من صحة المخطط، وحدد تم.

      إذا كان نص طلب المكالمة الواردة لا يتطابق مع المخطط، فسيرجع المشغل خطأ HTTP 400 Bad Request .

  5. لتحديد خصائص إضافية، افتح القائمة إضافة معلمات جديدة ، وحدد المعلمات التي تريد إضافتها.

    اسم الخاصية اسم الخاصية JSON مطلوب الوصف
    الأسلوب method لا الطريقة التي يجب أن يستخدمها الطلب الوارد لاستدعاء تطبيق المنطق
    المسار النسبي relativePath لا المسار النسبي للمعلمة التي يمكن أن يقبلها عنوان URL لنقطة النهاية لتطبيق المنطق

    يضيف هذا المثال الخاصية الأسلوب :

    Add Method parameter

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

    Select method

  6. الآن ، أضف إجراء آخر كخطوة تالية في سير عملك. ضمن المشغل، حدد الخطوة التالية حتى تتمكن من العثور على الإجراء الذي تريد إضافته.

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

    يبقي تطبيقك المنطقي الطلب الوارد مفتوحا لفترة محدودة فقط. بافتراض أن سير عمل تطبيق المنطق يتضمن إجراء استجابة، إذا لم يعرض تطبيق المنطق استجابة بعد مرور هذا الوقت، فسيقوم تطبيق المنطق بإرجاع استجابة 504 GATEWAY TIMEOUT إلى المتصل. وإلا، إذا لم يتضمن تطبيقك المنطقي إجراء استجابة، فسيقوم تطبيقك المنطقي بإرجاع 202 ACCEPTED استجابة إلى المتصل على الفور.

  7. عند الانتهاء، احفظ تطبيق المنطق الخاص بك. في شريط أدوات المصمم، حدد "Save" .

    تنشئ هذه الخطوة عنوان URL لاستخدامه لإرسال الطلب الذي يؤدي إلى تشغيل التطبيق المنطقي. لنسخ عنوان URL هذا، حدد رمز النسخ بجوار عنوان URL.

    URL to use triggering your logic app

    ملاحظة

    إذا كنت تريد تضمين رمز التجزئة أو الجنيه (#) في عنوان URI عند إجراء مكالمة إلى مشغل الطلب، فاستخدم هذا الإصدار المشفر بدلا من ذلك: %25%23

  8. لاختبار تطبيقك المنطقي، أرسل طلب HTTP إلى عنوان URL الذي تم إنشاؤه.

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

لمزيد من المعلومات حول الأمان والتخويل والتشفير للمكالمات الواردة إلى تطبيقك المنطقي، مثل أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL)، أو مصادقة Azure Active Directory المفتوحة (Azure AD OAuth)، أو تعريض تطبيقك المنطقي باستخدام إدارة واجهة برمجة تطبيقات Azure، أو تقييد عناوين IP التي تنشأ عنها المكالمات الواردة، راجع الوصول الآمن والبيانات - الوصول للمكالمات الواردة إلى المشغلات المستندة إلى الطلب.

مخرجات الزناد

فيما يلي مزيد من المعلومات حول المخرجات من مشغل الطلب:

اسم الخاصية JSON نوع البيانات الوصف
headers العنصر كائن JSON يصف الرؤوس من الطلب
body العنصر كائن JSON يصف محتوى النص الأساسي من الطلب

إضافة إجراء استجابة

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

هام

إذا كان إجراء الاستجابة يتضمن هذه الرؤوس، فإن Logic Apps يزيل هذه الرؤوس من رسالة الاستجابة التي تم إنشاؤها دون إظهار أي تحذير أو خطأ:

  • Allow
  • Content-*الرؤوس باستثناء Content-Disposition، وعند Content-Type استخدام عمليات POST و PUT ، Content-Encodingولكن لا يتم تضمينها لعمليات GET
  • Cookie
  • Expires
  • Last-Modified
  • Set-Cookie
  • Transfer-Encoding

على الرغم من أن التطبيقات المنطقية لن تمنعك من حفظ التطبيقات المنطقية التي تحتوي على إجراء استجابة مع هذه الرؤوس، إلا أن التطبيقات المنطقية تتجاهل هذه الرؤوس.

  1. في مصمم تطبيقات المنطق، ضمن الخطوة التي تريد إضافة إجراء استجابة إليها، حدد خطوة جديدة.

    على سبيل المثال، باستخدام مشغل الطلب من وقت سابق:

    Add new step

    لإضافة إجراء بين الخطوات، حرك المؤشر فوق السهم بين تلك الخطوات. حدد علامة الجمع (+) التي تظهر، ثم حدد إضافة إجراء.

  2. ضمن اختيار إجراء، في مربع البحث، أدخل response كعامل تصفية، وحدد إجراء الاستجابة .

    Select the Response action

    يتم طي مشغل الطلب في هذا المثال للبساطة.

  3. أضف أية قيم مطلوبة لرسالة الاستجابة.

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

    على سبيل المثال، بالنسبة للمربع الرؤوس ، قم بتضمين Content-Type اسم المفتاح وقم بتعيين قيمة المفتاح إلى application/json كما هو مذكور سابقا في هذا الموضوع. بالنسبة إلى المربع النص ، يمكنك تحديد إخراج نص المشغل من قائمة المحتوى الديناميكي.

    Response action details

    لعرض الرؤوس بتنسيق JSON، حدد التبديل إلى طريقة عرض النص.

    Headers - Switch to text view

    فيما يلي مزيد من المعلومات حول الخصائص التي يمكنك تعيينها في إجراء الاستجابة.

    اسم الخاصية اسم الخاصية JSON مطلوب الوصف
    كود الحالة statusCode نعم رمز الحالة المطلوب إرجاعه في الاستجابة
    الرؤوس headers لا كائن JSON يصف رأسا واحدا أو أكثر لتضمينه في الاستجابة
    النص الأساسي body لا هيئة الاستجابة
  4. لتحديد خصائص إضافية، مثل مخطط JSON لنص الاستجابة، افتح القائمة إضافة معلمات جديدة ، وحدد المعلمات التي تريد إضافتها.

  5. عند الانتهاء، احفظ تطبيق المنطق الخاص بك. في شريط أدوات المصمم، حدد "Save" .

هام

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

الخطوات التالية