التحديث باستخدام التنفيذ التلقائي في Azure

باستخدام Azure Automation وPowerShell Runbooks، يمكنك إجراء عمليات تحديث البيانات التلقائية على نماذج Azure Analysis الجدولية.

يستخدم المثال الوارد في هذه المقالة الوحدة النمطية SqlServer PowerShell. يتم توفير نموذج PowerShell Runbook الذي يوضح تحديث نموذج لاحقا في هذه المقالة.

المصادقة

يجب مصادقة جميع المكالمات باستخدام رمز Azure Active Directory (OAuth 2) صالح. يستخدم المثال الوارد في هذه المقالة مدير خدمة (SPN) للمصادقة على خدمات تحليل Azure. لمعرفة المزيد، راجع إنشاء أصل خدمة باستخدام مدخل Azure.

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

هام

يفترض المثال التالي تعطيل جدار حماية Azure Analysis Services. إذا تم تمكين جدار حماية، فيجب تضمين عنوان IP العام لبادئ الطلب في قاعدة جدار حماية.

  1. في حساب التشغيل التلقائي ل Azure، انقر على الوحدات النمطية، ثم استعراض المعرض.

  2. في شريط البحث، ابحث عن SqlServer.

    Search Modules

  3. حدد SqlServer، ثم انقر على استيراد.

    Import Module

  4. انقر فوق موافق.

إنشاء أصل خدمة (SPN)

لمعرفة المزيد حول إنشاء أصل خدمة، راجع إنشاء أصل خدمة باستخدام مدخل Azure.

تكوين الأذونات في خدمات تحليل Azure

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

تصميم دفتر تشغيل التشغيل الآلي ل Azure

  1. في حساب التشغيل التلقائي، قم بإنشاء مورد بيانات اعتماد سيتم استخدامه لتخزين "مبدأ الخدمة" بشكل آمن.

    Screenshot that shows the

  2. أدخل تفاصيل بيانات الاعتماد. في اسم المستخدم، أدخل معرف التطبيق الأساسي للخدمة (appid)، ثم في كلمة المرور، أدخل سر الخدمة الأساسي.

    Create credential

  3. استيراد دفتر تشغيل التشغيل التلقائي.

    Screenshot that shows the

  4. استعرض بحثا عن ملف Refresh-Model.ps1 ، وقم بتوفير اسمووصف، ثم انقر فوق إنشاء.

    ملاحظة

    استخدم البرنامج النصي من قسم Sample PowerShell Runbook في أسفل هذا المستند لإنشاء ملف يسمى Refresh-Model.ps1 وحفظه في الجهاز المحلي لاستيراده إلى Runbook.

    Import Runbook

  5. عند إنشاء Runbook ، سينتقل تلقائيا إلى وضع التحرير. حدد نشر.

    Publish Runbook

    ملاحظة

    يتم استرداد مورد بيانات الاعتماد الذي تم إنشاؤه مسبقا بواسطة دفتر التشغيل باستخدام الأمر Get-AutomationPSCredential . ثم يتم تمرير هذا الأمر إلى الأمر استدعاء العمليةASADatabase PowerShell لإجراء المصادقة إلى خدمات تحليل Azure.

  6. اختبر دفتر التشغيل بالنقر فوق ابدأ.

    Screenshot that shows the

  7. املأ معلمات DATABASENAME و ANALYSISSERVER و REFRESHTYPE ثم انقر فوق موافق. المعلمة WEBHOOKDATA غير مطلوبة عند تشغيل Runbook يدويا.

    Start the Runbook

إذا تم تنفيذ Runbook بنجاح، فستتلقى مخرجا مثل ما يلي:

Successful Run

استخدام دفتر تشغيل أتمتة Azure قائم بذاته

يمكن تكوين دفتر التشغيل لتشغيل تحديث نموذج خدمات تحليل Azure على أساس مجدول.

يمكن تكوين هذا على النحو التالي:

  1. في دفتر تشغيل التنفيذ التلقائي، انقر على الجداول، ثم أضف جدولا.

    Create schedule

  2. انقر فوق جدولإنشاء>جدول جديد، ثم املأ التفاصيل.

    Configure schedule

  3. انقر فوق Create.

  4. املأ معلمات الجدول الزمني. سيتم استخدامها في كل مرة يتم فيها تشغيل Runbook. يجب ترك معلمة WEBHOOKDATA فارغة عند التشغيل عبر جدول زمني.

    Configure parameters

  5. انقر فوق موافق.

استهلك مع داتا فاكتوري

لاستهلاك دفتر التشغيل باستخدام Azure Data Factory، قم أولا بإنشاء Webhook لدفتر التشغيل. سيوفر Webhook عنوان URL يمكن الاتصال به عبر نشاط ويب Azure Data Factory.

هام

لإنشاء Webhook، يجب نشر حالة Runbook.

  1. في دفتر تشغيل التشغيل التلقائي، انقر فوق Webhooks، ثم انقر فوق إضافة Webhook.

    Add Webhook

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

    تنبيه

    تأكد من نسخ عنوان URL قبل إغلاق المعالج حيث لا يمكنك استعادته بمجرد إغلاقه.

    Configure Webhook

    يمكن أن تظل معلمات webhook فارغة. عند تكوين نشاط ويب Azure Data Factory، يمكن تمرير المعلمات إلى نص مكالمة الويب.

  3. في "مصنع البيانات"، قم بتكوين نشاط ويب

مثال

Example Web Activity

عنوان URL هو عنوان URL الذي تم إنشاؤه من Webhook.

النص الأساسي هو مستند JSON الذي يجب أن يحتوي على الخصائص التالية:

الخاصية القيمة
التحليلالخدماتقاعدة البيانات اسم قاعدة بيانات Azure Analysis Services
مثال: AdventureWorksDB
تحليلالخدماتالخادم اسم خادم Azure Analysis Services.
مثال: https://westus.asazure.windows.net/servers/myserver/models/AdventureWorks/
DatabaseRefreshType نوع التحديث المطلوب إجراؤه.
مثال: كامل

مثال على نص JSON:

{
    "AnalysisServicesDatabaseName": "AdventureWorksDB",
    "AnalysisServicesServer": "asazure://westeurope.asazure.windows.net/MyAnalysisServer",
    "DatabaseRefreshType": "Full"
}

يتم تعريف هذه المعلمات في البرنامج النصي PowerShell دفتر التشغيل. عند تنفيذ نشاط الويب، تكون حمولة JSON التي تم تمريرها هي WEBHOOKDATA.

يتم إلغاء تسلسل هذا وتخزينه كمعلمات PowerShell ، والتي يتم استخدامها بعد ذلك بواسطة الأمر PowerShell Invoke-ProcesASDatabase.

Deserialized Webhook

استخدام عامل مختلط مع خدمات تحليل Azure

يمكن استخدام جهاز Azure الظاهري الذي يحتوي على عنوان IP عام ثابت كعامل مختلط لأتمتة Azure. يمكن بعد ذلك إضافة عنوان IP العام هذا إلى جدار حماية Azure Analysis Services.

هام

تأكد من تكوين عنوان IP العام للجهاز الظاهري على أنه ثابت.

لمعرفة المزيد حول تكوين العمال المختلطين لأتمتة Azure، راجع تثبيت عامل التشغيل المختلط.

بمجرد تكوين عامل مختلط، قم بإنشاء Webhook كما هو موضح في القسم الاستهلاك مع Data Factory. الفرق الوحيد هنا هو تحديد خيار تشغيل عامل>مختلط عند تكوين Webhook.

مثال على خطاف الويب باستخدام العامل المختلط:

Example Hybrid Worker Webhook

نموذج PowerShell Runbook

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

param
(
    [Parameter (Mandatory = $false)]
    [object] $WebhookData,

    [Parameter (Mandatory = $false)]
    [String] $DatabaseName,
    [Parameter (Mandatory = $false)]
    [String] $AnalysisServer,
    [Parameter (Mandatory = $false)]
    [String] $RefreshType
)

$_Credential = Get-AutomationPSCredential -Name "ServicePrincipal"

# If runbook was called from Webhook, WebhookData will not be null.
if ($WebhookData)
{ 
    # Retrieve AAS details from Webhook request body
    $atmParameters = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
    Write-Output "CredentialName: $($atmParameters.CredentialName)"
    Write-Output "AnalysisServicesDatabaseName: $($atmParameters.AnalysisServicesDatabaseName)"
    Write-Output "AnalysisServicesServer: $($atmParameters.AnalysisServicesServer)"
    Write-Output "DatabaseRefreshType: $($atmParameters.DatabaseRefreshType)"
    
    $_databaseName = $atmParameters.AnalysisServicesDatabaseName
    $_analysisServer = $atmParameters.AnalysisServicesServer
    $_refreshType = $atmParameters.DatabaseRefreshType
 
    Invoke-ProcessASDatabase -DatabaseName $_databaseName -RefreshType $_refreshType -Server $_analysisServer -ServicePrincipal -Credential $_credential
}
else 
{
    Invoke-ProcessASDatabase -DatabaseName $DatabaseName -RefreshType $RefreshType -Server $AnalysisServer -ServicePrincipal -Credential $_Credential
}

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

عينات
REST API