تلقي طلبات HTTPS الواردة والاستجابة لها في تطبيقات Azure Logic
باستخدام Azure Logic Apps ومشغل الطلب المضمن وإجراء الاستجابة، يمكنك إنشاء مهام ومهام سير عمل تلقائية يمكنها تلقي الطلبات الواردة عبر HTTPS. لإرسال الطلبات الصادرة بدلا من ذلك، استخدم مشغل HTTP المضمن أو إجراء HTTP.
على سبيل المثال، يمكنك الحصول على تطبيق المنطق الخاص بك:
تلقي طلب HTTPS للبيانات والاستجابة له في قاعدة بيانات محلية.
قم بتشغيل سير عمل عند حدوث حدث webhook خارجي.
تلقي مكالمة HTTPS والرد عليها من تطبيق منطقي آخر.
توضح هذه المقالة كيفية استخدام مشغل الطلب وإجراء الاستجابة حتى يتمكن تطبيقك المنطقي من تلقي المكالمات الواردة والرد عليها.
لمزيد من المعلومات حول الأمان والتخويل والتشفير للمكالمات الواردة إلى تطبيقك المنطقي، مثل أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL)، أو مصادقة Azure Active Directory المفتوحة (Azure AD OAuth)، أو تعريض تطبيقك المنطقي باستخدام إدارة واجهة برمجة تطبيقات Azure، أو تقييد عناوين IP التي تنشأ عنها المكالمات الواردة، راجع الوصول الآمن والبيانات - الوصول للمكالمات الواردة إلى المشغلات المستندة إلى الطلب.
ملاحظة
في سير عمل تطبيق المنطق القياسي الذي يبدأ بمشغل الطلب (ولكن ليس مشغل webhook)، يمكنك استخدام توفير وظائف Azure لمصادقة المكالمات الواردة المرسلة إلى نقطة النهاية التي تم إنشاؤها بواسطة هذا المشغل باستخدام هوية مدارة. ويعرف هذا الحكم أيضا باسم "المصادقة السهلة". لمزيد من المعلومات، راجع مهام سير عمل المشغل في تطبيقات المنطق القياسية باستخدام المصادقة السهلة.
المتطلبات الأساسية
حساب واشتراك Azure. إذا لم يكن لديك اشتراك، فيمكنك التسجيل للحصول على حساب Azure مجاني.
المعرفة الأساسية حول كيفية إنشاء تطبيقات منطقية. إذا كنت جديدا على التطبيقات المنطقية، فراجع ما المقصود بتطبيقات Azure المنطقية؟
إضافة مشغل طلب
ينشئ هذا المشغل المضمن نقطة نهاية قابلة للاستدعاء يدويا يمكنها التعامل مع الطلبات الواردة فقط عبر HTTPS. عندما يرسل المتصل طلبا إلى نقطة النهاية هذه، يتم تشغيل مشغل الطلب وتشغيل تطبيق المنطق. لمزيد من المعلومات حول كيفية استدعاء هذا المشغل، راجع مهام سير عمل الاتصال أو المشغل أو التداخل باستخدام نقاط نهاية HTTPS في تطبيقات Azure المنطقية.
يبقي تطبيقك المنطقي الطلب الوارد مفتوحا لفترة محدودة فقط. بافتراض أن تطبيقك المنطقي يتضمن إجراء استجابة، إذا لم يرسل تطبيقك المنطقي ردا مرة أخرى إلى المتصل بعد مرور هذا الوقت، فسيعود 504 GATEWAY TIMEOUT تطبيق المنطق بحالة إلى المتصل. إذا لم يتضمن تطبيقك المنطقي إجراء استجابة، فسيقوم تطبيقك المنطقي بإرجاع 202 ACCEPTED حالة إلى المتصل على الفور.
تسجيل الدخول إلى مدخل Microsoft Azure. قم بإنشاء تطبيق Logic فارغ.
بعد فتح Logic App Designer، في مربع البحث، أدخل
http requestكعامل تصفية خاص بك. من قائمة المشغلات، حدد المشغل عند تلقي طلب HTTP .
يعرض مشغل الطلب هذه الخصائص:

اسم الخاصية اسم الخاصية JSON مطلوب الوصف عنوان URL لنشر HTTP {لا شيء} نعم عنوان URL لنقطة النهاية الذي يتم إنشاؤه بعد حفظ تطبيق المنطق ويتم استخدامه للاتصال بتطبيق المنطق طلب مخطط JSON للهيئة schemaلا مخطط JSON الذي يصف الخصائص والقيم في نص الطلب الوارد في المربع مخطط JSON لنص الطلب، أدخل اختياريا مخطط 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، يعرض المصمم تذكيرا لتضمين
Content-Typeالرأس في طلبك وتعيين قيمة الرأس هذه إلىapplication/json. لمزيد من المعلومات، راجع معالجة أنواع المحتويات.
إليك الشكل الذي يبدو عليه هذا الرأس بتنسيق JSON:
{ "Content-Type": "application/json" }لإنشاء مخطط JSON يستند إلى الحمولة (البيانات) المتوقعة، يمكنك استخدام أداة مثل JSONSchema.net، أو يمكنك اتباع الخطوات التالية:
في مشغل الطلب، حدد استخدام عينة الحمولة لإنشاء مخطط.

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

فيما يلي عينة الحمولة:
{ "account": { "name": "Contoso", "ID": "12345", "address": { "number": "1234", "street": "Anywhere Street", "city": "AnyTown", "state": "AnyState", "country": "USA", "postalCode": "11111" } } }
للتحقق من أن المكالمة الواردة تحتوي على نص طلب يطابق المخطط المحدد، اتبع الخطوات التالية:
لفرض الرسالة الواردة على الحصول على نفس الحقول الدقيقة التي يصفها المخطط، في المخطط، أضف
requiredالخاصية وحدد الحقول المطلوبة.addtionalPropertiesأضف القيمة واضبطها علىfalse.على سبيل المثال، يحدد المخطط التالي أن الرسالة الواردة يجب أن تحتوي على الحقل
msgوليس أي حقول أخرى:{ "properties": { "msg": { "type": "string" } }, "type": "object", "required": ["msg"], "additionalProperties": false }في شريط عنوان مشغل الطلب، حدد زر علامات الحذف (...).
في إعدادات المشغل، قم بتشغيل التحقق من صحة المخطط، وحدد تم.
إذا كان نص طلب المكالمة الواردة لا يتطابق مع المخطط، فسيرجع المشغل خطأ
HTTP 400 Bad Request.
لتحديد خصائص إضافية، افتح القائمة إضافة معلمات جديدة ، وحدد المعلمات التي تريد إضافتها.
اسم الخاصية اسم الخاصية JSON مطلوب الوصف الأسلوب methodلا الطريقة التي يجب أن يستخدمها الطلب الوارد لاستدعاء تطبيق المنطق المسار النسبي relativePathلا المسار النسبي للمعلمة التي يمكن أن يقبلها عنوان URL لنقطة النهاية لتطبيق المنطق يضيف هذا المثال الخاصية الأسلوب :

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

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

ملاحظة
إذا كنت تريد تضمين رمز التجزئة أو الجنيه (#) في عنوان URI عند إجراء مكالمة إلى مشغل الطلب، فاستخدم هذا الإصدار المشفر بدلا من ذلك:
%25%23لاختبار تطبيقك المنطقي، أرسل طلب HTTP إلى عنوان URL الذي تم إنشاؤه.
على سبيل المثال، يمكنك استخدام أداة مثل ساعي البريد لإرسال طلب HTTP. لمزيد من المعلومات حول تعريف JSON الأساسي للمشغل وكيفية استدعاء هذا المشغل، راجع هذه المواضيع ونوع مشغل الطلبومهام سير عمل الاتصال أو المشغل أو التداخل مع نقاط نهاية HTTP في تطبيقات Azure المنطقية.
لمزيد من المعلومات حول الأمان والتخويل والتشفير للمكالمات الواردة إلى تطبيقك المنطقي، مثل أمان طبقة النقل (TLS)، المعروف سابقا باسم طبقة مآخذ التوصيل الآمنة (SSL)، أو مصادقة Azure Active Directory المفتوحة (Azure AD OAuth)، أو تعريض تطبيقك المنطقي باستخدام إدارة واجهة برمجة تطبيقات Azure، أو تقييد عناوين IP التي تنشأ عنها المكالمات الواردة، راجع الوصول الآمن والبيانات - الوصول للمكالمات الواردة إلى المشغلات المستندة إلى الطلب.
مخرجات الزناد
فيما يلي مزيد من المعلومات حول المخرجات من مشغل الطلب:
| اسم الخاصية JSON | نوع البيانات | الوصف |
|---|---|---|
headers |
العنصر | كائن JSON يصف الرؤوس من الطلب |
body |
العنصر | كائن JSON يصف محتوى النص الأساسي من الطلب |
إضافة إجراء استجابة
عند استخدام مشغل الطلب للتعامل مع الطلبات الواردة، يمكنك نمذجة الاستجابة وإرسال نتائج الحمولة مرة أخرى إلى المتصل باستخدام إجراء الاستجابة المضمن. يمكنك استخدام إجراء الاستجابة فقط مع مشغل الطلب. يؤدي هذا الدمج مع مشغل الطلب وإجراء الاستجابة إلى إنشاء نمط استجابة الطلب. باستثناء الحلقات الداخلية وحلقات "حتى" والفروع المتوازية، يمكنك إضافة إجراء الاستجابة في أي مكان في سير العمل.
هام
إذا كان إجراء الاستجابة يتضمن هذه الرؤوس، فإن Logic Apps يزيل هذه الرؤوس من رسالة الاستجابة التي تم إنشاؤها دون إظهار أي تحذير أو خطأ:
AllowContent-*الرؤوس باستثناءContent-Disposition، وعندContent-Typeاستخدام عمليات POST و PUT ،Content-Encodingولكن لا يتم تضمينها لعمليات GETCookieExpiresLast-ModifiedSet-CookieTransfer-Encoding
على الرغم من أن التطبيقات المنطقية لن تمنعك من حفظ التطبيقات المنطقية التي تحتوي على إجراء استجابة مع هذه الرؤوس، إلا أن التطبيقات المنطقية تتجاهل هذه الرؤوس.
في مصمم تطبيقات المنطق، ضمن الخطوة التي تريد إضافة إجراء استجابة إليها، حدد خطوة جديدة.
على سبيل المثال، باستخدام مشغل الطلب من وقت سابق:

لإضافة إجراء بين الخطوات، حرك المؤشر فوق السهم بين تلك الخطوات. حدد علامة الجمع (+) التي تظهر، ثم حدد إضافة إجراء.
ضمن اختيار إجراء، في مربع البحث، أدخل
responseكعامل تصفية، وحدد إجراء الاستجابة .
يتم طي مشغل الطلب في هذا المثال للبساطة.
أضف أية قيم مطلوبة لرسالة الاستجابة.
في بعض الحقول، يؤدي النقر داخل مربعاتها إلى فتح قائمة المحتوى الديناميكي. يمكنك بعد ذلك تحديد الرموز المميزة التي تمثل المخرجات المتوفرة من الخطوات السابقة في سير العمل. تظهر الآن خصائص من المخطط المحدد في المثال السابق في قائمة المحتوى الديناميكي.
على سبيل المثال، بالنسبة للمربع الرؤوس ، قم بتضمين
Content-Typeاسم المفتاح وقم بتعيين قيمة المفتاح إلىapplication/jsonكما هو مذكور سابقا في هذا الموضوع. بالنسبة إلى المربع النص ، يمكنك تحديد إخراج نص المشغل من قائمة المحتوى الديناميكي.
لعرض الرؤوس بتنسيق JSON، حدد التبديل إلى طريقة عرض النص.

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