إرسال رسالة إلى موضوع Pub/Sub

ينطبق على: المطور | بريميوم

يوجه النهج publish-to-dapr بوابة إدارة واجهة برمجة التطبيقات لإرسال رسالة إلى موضوع نشر/اشتراك في Dapr. ينجز النهج ذلك عن طريق إجراء طلب HTTP POST إلى http://localhost:3500/v1.0/publish/{{pubsub-name}}/{{topic}}، واستبدال معلمات القالب وإضافة المحتوى المحدد في بيان النهج.

يفترض النهج أن وقت تشغيل Dapr يعمل في حاوية جانبية في نفس الجراب مثل البوابة. ينفذ وقت تشغيل Dapr دلالات Pub/Sub. تعرف على المزيد حول تكامل Dapr مع APIM.

إشعار

تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.

نهج السياسة

<publish-to-dapr pubsub-name="pubsub-name" topic="topic-name" ignore-error="false|true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
    <!-- message content -->
</publish-to-dapr>

سمات

السمة ‏‏الوصف مطلوبة افتراضي
pubsub-name اسم المكوّن PubSub الهدف. يعين إلى معلمة method-name في Dapr. إذا لم تكن موجودة، topic يجب أن تكون قيمة السمة في شكل pubsub-name/topic-name. يتم السماح بتعبيرات النهج. لا بلا
الموضوع اسم الموضوع. يعين إلى معلمة topic في Dapr. يتم السماح بتعبيرات النهج. ‏‏نعم‬ غير متوفر
تجاهل الخطأ إذا تم تعيينه إلى true، يرشد النهج إلى عدم تشغيل قسم "عند الخطأ" عند تلقي خطأ من وقت تشغيل Dapr. تعبيرات النهج غير مسموح بها. لا false
اسم متغير الاستجابة اسم إدخال مجموعة المتغيرات لاستخدامه لتخزين الاستجابة من وقت تشغيل Dapr. تعبيرات النهج غير مسموح بها. لا بلا
المهلة الوقت (بالثواني) لانتظار وقت تشغيل Dapr للاستجابة. يمكن أن يتراوح من 1 إلى 240 ثانية. يتم السماح بتعبيرات النهج. لا 5
القالب محرك القولبة لاستخدامه في تحويل محتوى الرسالة. "Liquid" هو القيمة الوحيدة المدعومة. لا بلا
content-type نوع محتوى الرسالة. "application/json" هي القيمة الوحيدة المدعومة. لا بلا

الاستخدام

ملاحظات الاستخدام

يجب تمكين دعم Dapr في البوابة المستضافة ذاتيا.

مثال

يوضح المثال التالي إرسال نص الطلب الحالي إلى الموضوع "new" لمكوّن Pub/Sub "orders". يتم تخزين الاستجابة المتلقاة من وقت تشغيل Dapr في إدخال "dapr-response" لمجموعة «المتغيرات» في عنصر السياق.

إذا لم يتمكن وقت تشغيل Dapr من تحديد موقع الموضوع الهدف، على سبيل المثال، واستجاب بخطأ، فسيتم تشغيل قسم "on-error". يتم إرجاع الاستجابة المتلقاة من وقت تشغيل Dapr إلى الطالب حرفياً. خلاف ذلك، يتم إرجاع الاستجابة 200 OK الافتراضية.

القسم "backend" فارغ ولا يتم إعادة توجيه الطلب إلى الخلفية.

<policies>
     <inbound>
        <base />
        <publish-to-dapr
           pubsub-name="orders"
               topic="new"
               response-variable-name="dapr-response">
            @(context.Request.Body.As<string>())
        </publish-to-dapr>
    </inbound>
    <backend>
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
        <return-response response-variable-name="pubsub-response" />
    </on-error>
</policies>

لمزيد من المعلومات حول العمل مع النُهج، راجع: