تلقي مكالمات HTTPS الواردة والاستجابة لها إلى مهام سير العمل في Azure Logic Apps

ينطبق على: Azure Logic Apps (الاستهلاك + قياسي)

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

إشعار

يعمل إجراء الاستجابة فقط عند استخدام مشغل الطلب.

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

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

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

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

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

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

  • حساب واشتراك Azure. إذا لم يكن لديك اشتراك، يمكنك التسجيل للحصول على حساب Azure مجاني.

  • سير عمل التطبيق المنطقي حيث تريد تلقي طلب HTTPS الوارد. لبدء سير العمل باستخدام مشغل طلب، يجب أن تبدأ بسير عمل فارغ. لاستخدام إجراء الاستجابة، يجب أن يبدأ سير العمل بمشغل الطلب.

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

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

  1. في مدخل Microsoft Azure، افتح تطبيق منطق الاستهلاك وسير العمل الفارغ في المصمم.

  2. على المصمم، اتبع هذه الخطوات العامة للبحث عن المشغل المضمن للطلب وإضافته المسمى عند تلقي طلب HTTP.

  3. بعد ظهور مربع معلومات المشغل، قم بتوفير المعلومات التالية كما هو مطلوب:

    اسم الخاصية اسم خاصية JSON المطلوب ‏‏الوصف
    HTTP POST URL {none} ‏‏نعم‬ عنوان URL لنقطة النهاية الذي تم إنشاؤه بعد حفظ سير العمل الخاص بك ويستخدم لإرسال طلب يؤدي إلى تشغيل سير العمل الخاص بك.
    طلب مخطط JSON الأساسي schema لا مخطط JSON الذي يصف الخصائص والقيم في نص الطلب الوارد. يستخدم المصمم هذا المخطط لإنشاء رموز مميزة للخصائص في الطلب. وبهذه الطريقة، يمكن لسير العمل تحليل المخرجات واستهلاكها وتمريرها من مشغل الطلب إلى سير العمل الخاص بك.

    إذا لم يكن لديك مخطط JSON، يمكنك إنشاء المخطط من حمولة عينة باستخدام استخدام حمولة العينة لإنشاء إمكانية المخطط .

    يوضح المثال التالي نموذج مخطط JSON:

    Screenshot showing Consumption workflow and Request trigger with example JSON schema.

    يوضح المثال التالي نموذج مخطط JSON الكامل:

    {
       "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، يعرض المصمم تذكيرا لتضمين عنوان نوع المحتوى في طلبك وتعيين قيمة العنوان هذه إلى application/json. لمزيد من المعلومات، راجع معالجة أنواع المحتويات.

    Screenshot showing Consumption workflow, Request trigger, and reminder to include

    يوضح المثال التالي كيفية ظهور رأس نوع المحتوى بتنسيق JSON:

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

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

    1. في المشغل Request، حدد Use sample payload to generate schema.

      Screenshot showing Consumption workflow, Request trigger, and

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

      Screenshot showing Consumption workflow, Request trigger, and sample payload entered 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.

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

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

    يضيف المثال التالي خاصية Method :

    Screenshot showing Consumption workflow, Request trigger, and adding the

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

    Screenshot showing Consumption workflow, Request trigger, and the

  6. عندما تكون مستعدا، احفظ سير العمل. في شريط أدوات المصمم، حدد "Save".

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

  7. لنسخ عنوان URL الذي تم إنشاؤه، حدد رمز النسخ بجوار عنوان URL.

    Screenshot showing Consumption workflow, Request trigger, and URL copy button selected.

    إشعار

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

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

إشعار

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

للحصول على معلومات حول الأمان والتخويل والتشفير للمكالمات الواردة إلى سير العمل الخاص بك، مثل أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL)، أو مصادقة Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) أو تعريض مورد تطبيق المنطق الخاص بك باستخدام Azure API Management، أو تقييد عناوين IP التي تنشأ المكالمات الواردة، راجع الوصول الآمن والبيانات - الوصول إلى المكالمات الواردة إلى المشغلات المستندة إلى الطلب.

مخرجات المشغل

يسرد الجدول التالي المخرجات من مشغل الطلب:

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

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

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

هام

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

    • Allow
    • Content-* العناوين باستثناء Content-Dispositionو Content-Encodingو Content-Type عند استخدام عمليات POST و PUT، ولكن لا يتم تضمينها لعمليات GET
    • Cookie
    • Expires
    • Last-Modified
    • Set-Cookie
    • Transfer-Encoding
  • إذا كان لديك إجراء استجابة واحد أو أكثر في سير عمل معقد مع فروع، فتأكد من أن سير العمل يعالج إجراء استجابة واحدا على الأقل أثناء وقت التشغيل. وإلا، إذا تم تخطي كافة إجراءات الاستجابة، يتلقى المتصل خطأ 502 Bad Gateway ، حتى إذا انتهى سير العمل بنجاح.

  • في سير عمل تطبيق المنطق القياسي عديم الحالة ، يجب أن يظهر إجراء الاستجابة الأخير في سير العمل الخاص بك. إذا ظهر الإجراء في أي مكان آخر، فلن يتم تشغيل Azure Logic Apps حتى تنتهي جميع الإجراءات الأخرى من التشغيل.

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

    للتبسيط، تظهر الأمثلة التالية مشغل طلب مطوي.

  2. في مربع معلومات الإجراء، أضف القيم المطلوبة لرسالة الاستجابة.

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

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

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

    Screenshot showing Azure portal, Consumption workflow, and Response action information.

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

    Screenshot showing Azure portal, Consumption workflow, and Response action headers in

  3. لإضافة المزيد من الخصائص للإجراء، مثل مخطط JSON لنص الاستجابة، من قائمة إضافة معلمات جديدة، حدد المعلمات التي تريد إضافتها.

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

اختبار سير العمل

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

الأمان والمصادقة

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

لمزيد من المعلومات حول الأمان والتخويل والتشفير للمكالمات الواردة إلى سير عمل تطبيق المنطق، مثل أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL)، أو مصادقة Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth)، أو تعريض تطبيق المنطق الخاص بك باستخدام Azure API Management، أو تقييد عناوين IP التي تنشأ المكالمات الواردة، راجع الوصول الآمن والبيانات - الوصول إلى المكالمات الواردة إلى المشغلات المستندة إلى الطلب.

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