أرسل إعلامات إلى قناة فرق Microsoft من مصنع بيانات Azure أو مسار تحليلات Synapse

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

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

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

  1. افتح فرق Microsoft وانتقل إلى علامة التبويب التطبيقات. ابحث عن "Webhook الوارد" وحدد موصل Webhook الوارد.

    Shows the Incoming Webhook app under the Apps tab in Teams.

  2. حدد الزر "إضافة إلى فريق" لإضافة الموصل إلى موقع اسم قناة الفريق أو الفريق حيث تريد إرسال الإعلامات.

    Highlights the "Add to a team" button for the Incoming Webhook app.

  3. اكتب اسم قناة الفريق أو الفريق أو حدده حيث تريد إرسال الإعلامات.

    Shows the team selection prompt on the Incoming Webhook app configuration dialog in Teams. Type the "Team or Team channel name"

  4. حدد الزر "إعداد موصل" لإعداد خطاف الويب الوارد لاسم قناة الفريق أو الفريق الذي حددته في الخطوة السابقة.

    Shows the team selection prompt on the Incoming Webhook app configuration dialog in Teams. Highlights the Team and the "Set up a connector" button

  5. قم بتسمية Webhook بالشكل المناسب وقم بتحميل رمز اختيارياً لتحديد رسائلك. بعد ذلك، حدد الزر "Create" لإنشاء إخطار على الويب الوارد.

    Highlights the name property, optional image upload, and "Create" button in the Incoming Webhook options page.  

  6. انسخ عنوان URL Webhook الذي تم إنشاؤه عند الإنشاء واحفظه لاستخدامه لاحقًا في البنية الأساسية لبرنامج ربط العمليات التجارية. بعد ذلك، حدد الزر "تم" لإكمال الإعداد.

    Shows the new webhook URL on the Incoming Webhook options page after creation.

  7. يمكنك رؤية الإشعار في القناة حيث تضيف موصل الخطاف على الويب.

    Shows the notification in the Teams channel where you added the webhook connector.

خطوات إرسال إعلامات على قناة الفرق من مسار:

  1. حدد علامة التبويب "Author" من الجزء الأيسر.

  2. حدد الزر + (علامة الجمع)، ثم حدد مسار جديد.

    Shows the "New pipeline" menu in the Azure Data Factory Studio.

  3. في جزء "Properties" ضمن "General"، حدد NotifiyTeamsChannelPipeline لـ Name. ثم قم بطي اللوحة بالنقر فوق رمز الخصائص في الزاوية العلوية اليمنى.

    Shows the "Properties" panel.

    Shows the "Properties" panel hidden.

  4. في جزء "Configurations"، حدد Parameters، ثم حدد الزر + New حدد المعلمات التالية للبنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك.

    Name نوع القيمة الافتراضية
    الاشتراك String Specify subscription id for the pipeline
    resourceGroup String Specify resource group name for the pipeline
    runId String @activity('Specify name of the calling pipeline').output['pipelineRunId']
    الاسم String @activity('Specify name of the calling pipeline').output['pipelineName']
    triggerTime String @activity('Specify name of the calling pipeline').ExecutionStartTime
    الحالة String @activity('Specify name of the calling pipeline').Status
    رسالة String @activity('Specify name of the calling pipeline').Error['message']
    executionEndTime String @activity('Specify name of the calling pipeline').ExecutionEndTime
    runDuration String @activity('Specify name of the calling pipeline').Duration
    teamWebhookUrl String Specify Team Webhook URL

    Shows the "Pipeline parameters".

    إشعار

    تُستخدم هذه المعلمات لإنشاء عنوان URL للمراقبة. لنفترض أنك لا تقدم اشتراكاً صالحاً ومجموعة موارد (من نفس مصنع البيانات حيث تنتمي المسارات). في هذه الحالة، لن يحتوي الإشعار على عنوان URL صالح لمراقبة المسارات، ولكن الرسائل ستظل تعمل. بالإضافة إلى ذلك، تساعد إضافة هذه المعلمات في منع الحاجة إلى تمرير هذه القيم دائماً من مسار آخر. إذا كنت تنوي التحكم في هذه القيم من خلال نهج قائم على البيانات الوصفية، فيجب عليك تعديلها وفقاً لذلك.

    تلميح

    نوصي بإضافة معرف اشتراك Data Factory الحالي ومجموعة الموارد وعنوان URL للإخطار على الويب Teams (راجع المتطلبات الأساسية) للقيمة الافتراضية للمعلمات ذات الصلة.

  5. في جزء "Configurations"، حدد Variables، ثم حدد الزر + New حدد المتغيرات التالية للبنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك.

    Name نوع القيمة الافتراضية
    messageCard String

    Shows the "Pipeline variables".

  6. ابحث عن "ضبط المتغير" في لوحة أنشطة البنية الأساسية لبرنامج ربط العمليات التجارية، وسحب نشاط ضبط المتغير إلى لوحة البنية الأساسية لبرنامج ربط العمليات التجارية.

  7. حدد نشاط Set Variable على اللوحة إذا لم يكن محددًا بالفعل، وعلامة التبويب "General" الخاصة به، لتحرير تفاصيله.

  8. في علامة التبويب "General"، حدد Set JSON schema لـName لنشاط Set Variable.

    Shows the "Set variable" activity general tab.

  9. في علامة التبويب "Variables"، حدد متغير messageCard للخاصية Name وأدخل JSON التالية لخاصية Value الخاصة بها:

    {
        "@type": "MessageCard",
        "@context": "http://schema.org/extensions",
        "themeColor": "0076D7",
        "summary": "Pipeline status alert message​​​​",
        "sections": [
            {
                "activityTitle": "Pipeline execution alert​​​​",
                "facts": [
                    {
                        "name": "Subscription Id:",
                        "value": "@{pipeline().parameters.subscription}"
                    },
                    {
                        "name": "Resource Group:",
                        "value": "@{pipeline().parameters.resourceGroup}"
                    },
                    {
                        "name": "Data Factory Name:",
                        "value": "@{pipeline().DataFactory}"
                    },
                    {
                        "name": "Pipeline RunId:",
                        "value": "@{pipeline().parameters.runId}"
                    },
                    {
                        "name": "Pipline Name:",
                        "value": "@{pipeline().Pipeline}"
                    },
                    {
                        "name": "Pipeline Status:",
                        "value": "@{pipeline().parameters.status}"
                    },
                    {
                        "name": "Execution Start Time (UTC):",
                        "value": "@{pipeline().parameters.triggerTime}"
                    },
                    {
                        "name": "Execution Finish Time (UTC):",
                        "value": "@{pipeline().parameters.executionEndTime}"
                    },
                    {
                        "name": "Execution Duration (s):",
                        "value": "@{pipeline().parameters.runDuration}"
                    },
                    {
                        "name": "Message:",
                        "value": "@{pipeline().parameters.message}"
                    },
                    {
                        "name": "Notification Time (UTC):",
                        "value": "@{utcnow()}"
                    }
                ],
                "markdown": true
            }
        ],
        "potentialAction": [
            {
                "@type": "OpenUri",
                "name": "View pipeline run",
                "targets": [
                    {
                        "os": "default",
                        "uri": "@{concat('https://synapse.azure.com/monitoring/pipelineruns/',pipeline().parameters.runId,'?factory=/subscriptions/',pipeline().parameters.subscription,'/resourceGroups/',pipeline().parameters.resourceGroup,'/providers/Microsoft.DataFactory/factories/',pipeline().DataFactory)}"
                    }
                ]
            }
        ]
    }
    

    Shows the "Set variable" activity variables tab.

  10. ابحث عن "ويب" في جزء "الأنشطة" في البنية الأساسية لبرنامج ربط العمليات التجارية، واسحب نشاط ويب إلى لوحة البنية الأساسية لبرنامج ربط العمليات التجارية.

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

  12. حدد نشاط ويب الجديد على اللوحة إذا لم يكن محددًا بالفعل، وعلامة التبويب "عام"، لتحرير تفاصيله.

  13. في جزء "عام"، حدد Invoke Teams Webhook Url لـName نشاط ويب.

    Shows the "Web" activity general pane.

  14. في جزء "Settings"، قم بتعيين الخصائص التالية كما يلي:

    الخاصية قيمة
    عنوان URL @pipeline().parameters.teamWebhookUrl
    الطريقة POST
    نص الرسالة @json(variables('messageCard'))

    Shows the "Web" activity settings pane.

  15. تم تعيين كل شيء والآن أنت جاهز للتحقق من صحة البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، وتصحيحها، ثم نشر البنية الأساسية لبرنامج ربط العمليات التجارية لإعلامك بـInamsChannelPipeline.

    • للتحقق من صحة البنية الأساسية لبرنامج ربط العمليات التجارية، حدد Validate من شريط الأدوات.
    • لتصحيح أخطاء التدفقات، حدد Debug على شريط الأدوات. تشاهد حالة تشغيل التدفقات في علامة التبويب "Output" أسفل النافذة.
    • بمجرد تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية بنجاح، في شريط الأدوات العلوي، حدد Publish all. ينشر هذا الإجراء الكيانات التي أنشأتها من خلال مصنع البيانات. انتظر حتى ترى رسالة تم النشر بنجاح.

    Shows the "Validate, Debug, Publish" buttons to validate, debug, and then publish your pipeline.

استخدام العينة

في سيناريو الاستخدام النموذجي هذا، سنقوم بإنشاء مسار رئيسي مع ثلاثة أنشطة تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية. سيستدعي نشاط Execute Pipeline الأول مسار ETL الخاص بنا وسيستدعي نشاطي Execute Pipeline المتبقيين مسار "NotificationyTeamsChannelPipeline" لإرسال إعلامات النجاح أو الفشل ذات الصلة إلى قناة Teams اعتمادًا على حالة تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية ETL.

  1. حدد علامة التبويب Author من الجزء الأيمن في Data Factory أو علامة التبويب Integrate من الجزء الأيمن في Synapse Studio. بعد ذلك، حدد الزر + (علامة الجمع)، ثم حدد البنية الأساسية لبرنامج ربط العمليات التجارية لإنشاء مسار جديد.

  2. في اللوحة العامة ضمن "General"، حدد CopyPipeline لـName. ثم قم بطي اللوحة بالنقر فوق رمز الخصائص في الزاوية العلوية اليمنى.

  3. ابحث عن البنية الأساسية لبرنامج ربط العمليات التجارية في جزء "الأنشطة"، واسحب ثلاثة أنشطة تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية إلى لوحة البنية الأساسية لبرنامج ربط العمليات التجارية.

  4. حدد نشاط تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية أولًا على اللوحة إذا لم يكن محددا بالفعل، وجزء "عام"، لتحرير تفاصيله.

    • بالنسبة إلى خاصية Name لنشاط Execute Pipeline، نوصي باستخدام اسم مسار ETL الذي تم استدعاؤه والذي تريد إرسال إعلامات له. على سبيل المثال، استخدمنا LoadDataPipeline لـName نشاط Execute Pipeline لأنه اسم المسار الذي تم استدعاؤه.
    • في جزء "Settings"، حدد مسارًا موجودًا أو أنشئ مسارًا جديدًا باستخدام الزر + New لخاصية المسار الذي تم استدعاؤه. على سبيل المثال، في حالتنا، حددنا مسار LoadDataPipeline للخاصية "Invoked pipeline". حدّد خيارات أخرى وكوّن أي معلمات للبنية الأساسية كما هو مطلوب لإكمال التكوين الخاص بك.

    Shows the "Execute pipeline" activity general pane for "LoadDataPipeline" pipeline.

    Shows the "Execute pipeline" activity setting pane for "LoadDataPipeline" pipeline.

  5. حدد نشاط تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية الثاني على اللوحة، وهو جزء "عام"، لتحرير تفاصيله.

    • حدد OnSuccess Notification لـName نشاط تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية.

    • في جزء "Settings"، حدد "NotifiyTeamsChannelPipeline pipeline"، الذي أنشأناه سابقًا، لخاصية المسار الذي تم استدعاؤه. قم بتخصيص المعلمات على النحو المطلوب بناءً على نوع النشاط. على سبيل المثال، لقد قمت بتخصيص المعلمات كما يلي:

      الاسم القيمة‬
      الاشتراك 11111111-0000-aaaa-bbbb-0000000000
      resourceGroup contosorg
      runId @activity('LoadDataPipeline').output['pipelineRunId']
      الاسم @activity('LoadDataPipeline').output['pipelineName']
      triggerTime @activity('LoadDataPipeline').ExecutionStartTime
      الحالة @activity('LoadDataPipeline').Status
      رسالة Pipeline - LoadDataPipeline ran with success.
      executionEndTime @activity('LoadDataPipeline').ExecutionEndTime
      runDuration @activity('LoadDataPipeline').Duration
      teamWebhookUrl https://microsoft.webhook.office.com/webhookb2/1234abcd-1x11-2ff1-ab2c-1234d0699a9e@72f988bf-32b1-41af-91ab-2d7cd011db47/IncomingWebhook/8212f66ad80040ab83cf68b554d9232a/17d524d0-ed5c-44ed-98a0-35c12dd89a6d
    • قم بإنشاء شرط تبعية لنشاط تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية الثاني بحيث يتم تشغيله فقط إذا نجح نشاط Execute Pipeline الأول. لإنشاء هذه التبعية، حدد المقبض الأخضر على الجانب الأيسر من نشاط Execute Pipeline الأول، واسحبه، وقم بتوصيله بنشاط Execute Pipeline الثاني.

    Shows the second "Execute pipeline" activity "OnSuccess Notification" general pane for "NotifiyTeamsChannelPipeline" pipeline.

    Shows the second "Execute pipeline" activity "OnSuccess Notification" setting pane for "NotifiyTeamsChannelPipeline" pipeline.

  6. حدد نشاط تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية الثالث على اللوحة، وهو جزء "عام"، لتحرير تفاصيله.

    • حدد OnFailure Notification لـName نشاط تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية.

    • في جزء "Settings"، حدد "NotifiyTeamsChannelPipeline pipeline" لخاصية المسار الذي تم استدعاؤه. قم بتخصيص المعلمات على النحو المطلوب بناءً على نوع النشاط. على سبيل المثال، لقد قمت بتخصيص المعلمات هذه المرة كما يلي:

      الاسم القيمة‬
      الاشتراك 11111111-0000-aaaa-bbbb-0000000000
      resourceGroup contosorg
      runId @activity('LoadDataPipeline').output['pipelineRunId']
      الاسم @activity('LoadDataPipeline').output['pipelineName']
      triggerTime @activity('LoadDataPipeline').ExecutionStartTime
      الحالة @activity('LoadDataPipeline').Status
      رسالة @activity('LoadDataPipeline').Error['message']
      executionEndTime @activity('LoadDataPipeline').ExecutionEndTime
      runDuration @activity('LoadDataPipeline').Duration
      teamWebhookUrl https://microsoft.webhook.office.com/webhookb2/1234abcd-1x11-2ff1-ab2c-1234d0699a9e@72f988bf-32b1-41af-91ab-2d7cd011db47/IncomingWebhook/8212f66ad80040ab83cf68b554d9232a/17d524d0-ed5c-44ed-98a0-35c12dd89a6d
    • إنشاء شرط تبعية لنشاط Execute Pipeline الثالث بحيث يتم تشغيله فقط إذا فشل نشاط Execute Pipeline الأول. لإنشاء هذه التبعية، حدد المقبض الأحمر على الجانب الأيسر من نشاط Execute Pipeline الأول، واسحبه، وقم بتوصيله بنشاط Execute Pipeline الثالث.

    • التحقق من صحة مسار MasterPipeline وتصحيحه ثم نشره.

    Shows the third "Execute pipeline" activity "OnFailure Notification" general pane for "NotifiyTeamsChannelPipeline" pipeline.

    Shows the third "Execute pipeline" activity "OnFailure Notification" settings pane for "NotifiyTeamsChannelPipeline" pipeline.

  7. قم بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية لتلقي الإعلامات في Teams. على سبيل المثال، فيما يلي نماذج الإعلامات، عند تشغيل المسار الخاص بي بنجاح ومتى فشلت.

    Shows on success pipeline notifications in a Teams channel.

    Shows on failure pipeline notifications in a Teams channel.

  8. حدد الزر "عرض تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية" لعرض تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

إضافة رسائل ديناميكية مع متغيرات وتعبيرات النظام

يمكنك استخدام متغيرات النظام والتعبيرات لتصبح الرسائل ديناميكية. على سبيل المثال:

  • @activity("CopyData").output.errors[0].Message

  • @activity("DataFlow").error.Message

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

نحن نشجعك أيضا على مراجعة مخطط حمولة الإعلامات المدعوم من Microsoft Teams وتخصيص القالب أعلاه بشكل أكبر لتلبية احتياجاتك.

كيفية إرسال بريد إلكتروني من البنية الأساسية لبرنامج ربط العمليات التجارية