التكامل والتسليم المستمرين لمساحة عمل Azure Synapse Analytics

التكامل المستمر (CI) هو عملية أتمتة إنشاء التعليمات البرمجية واختبارها في كل مرة يلتزم فيها أحد أعضاء الفريق بإجراء تغيير في التحكم في الإصدار. التسليم المستمر (CD) هو عملية بناء واختبار وتكوين ونشر من بيئات اختبار أو تدريج متعددة إلى بيئة إنتاج.

في مساحة عمل Azure Synapse Analytics، تنقل CI/CD جميع الكيانات من بيئة واحدة (التطوير والاختبار والإنتاج) إلى بيئة أخرى. ترقية مساحة العمل الخاصة بك إلى مساحة عمل أخرى هي عملية من جزأين. أولا، استخدم قالب Azure Resource Manager (قالب ARM) لإنشاء موارد مساحة العمل أو تحديثها (التجمعات ومساحة العمل). بعد ذلك، قم بترحيل القطع الأثرية مثل البرامج النصية ودفاتر الملاحظات SQL وتعريفات مهمة Spark وخطوط الأنابيب ومجموعات البيانات وتدفقات البيانات باستخدام أدوات Azure Synapse CI/CD في Azure DevOps أو على GitHub.

توضح هذه المقالة كيفية استخدام خط أنابيب إصدار Azure DevOps GitHub الإجراءات لأتمتة نشر مساحة عمل Azure Synapse إلى بيئات متعددة.

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

لأتمتة نشر مساحة عمل Azure Synapse إلى بيئات متعددة، يجب أن تكون المتطلبات الأساسية والتكوينات التالية في مكانها.

Azure DevOps

GitHub

  • إنشاء مستودع GitHub يحتوي على القطع الأثرية لمساحة عمل Azure Synapse وقالب مساحة العمل.
  • تأكد من إنشاء عداء مستضاف ذاتيا أو استخدام عداء مستضاف GitHub.

Azure Active Directory

  • إذا كنت تستخدم مبدأ خدمة، ففي Azure AD، قم بإنشاء مدير خدمة لاستخدامه للنشر.
  • إذا كنت تستخدم هوية مدارة، فقم بتمكين الهوية المدارة المعينة من قبل النظام على جهازك الظاهري في Azure كوكيل أو عداء، ثم قم بإضافتها إلى Azure Synapse Studio كمسؤول Synapse.
  • استخدم دور المسؤول Azure AD لإكمال هذه الإجراءات.

Azure Synapse Analytics

ملاحظة

يمكنك أتمتة هذه المتطلبات الأساسية ونشرها باستخدام نفس خط الأنابيب أو قالب ARM أو Azure CLI، ولكن لم يتم وصف هذه العمليات في هذه المقالة.

  • يجب تكوين مساحة العمل "المصدر" المستخدمة للتطوير باستخدام مستودع Git في Azure Synapse Studio. لمزيد من المعلومات، راجع عنصر تحكم المصدر في Azure Synapse Studio.

  • قم بإعداد مساحة عمل فارغة للنشر إلى:

    1. إنشاء مساحة عمل Azure Synapse جديدة.
    2. منح عامل VM ومساهم الخدمة الأساسي إذن لمجموعة الموارد التي يتم استضافة مساحة العمل الجديدة فيها.
    3. في مساحة العمل، لا تقم بتكوين اتصال مستودع Git.
    4. في مدخل Azure، ابحث عن مساحة عمل Azure Synapse الجديدة، ثم امنح المالك إذنا لنفسك وللمستخدم الذي سيقوم بتشغيل مساحة عمل Azure Synapse لخط أنابيب Azure DevOps.
    5. أضف عامل Azure DevOps VM ومدير الخدمة إلى دور المساهم لمساحة العمل. (كان ينبغي أن يكون الدور موروثا ، ولكن تحقق من أنه كذلك.)
    6. في مساحة عمل Azure Synapse، انتقل إلى StudioManageAccess>>Control. أضف عامل Azure DevOps VM وأصل الخدمة إلى مجموعة مسؤول مساحة العمل.
    7. افتح حساب التخزين المستخدم لمساحة العمل. في جزء إدارة الهوية والوصول ، أضف عامل الجهاز الظاهري وأصل الخدمة إلى دور المساهم في بيانات نقطة التخزين.
    8. أنشئ مخزنا رئيسيا في اشتراك الدعم، وتأكد من أن كل من مساحة العمل الحالية ومساحة العمل الجديدة لديهما أذونات GET وLIST على الأقل للخزانة.
    9. لكي يعمل النشر التلقائي، تأكد من وجود أي سلاسل اتصال محددة في خدماتك المرتبطة في مخزن المفاتيح.

المتطلبات الأساسية الأخرى

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

لمزيد من المعلومات، راجع CI/CD في Azure Synapse Analytics الجزء 4 - خط أنابيب الإصدار.

إعداد خط أنابيب إصدار في Azure DevOps

في هذا القسم، ستتعرف على كيفية نشر مساحة عمل Azure Synapse في Azure DevOps.

  1. في Azure DevOps، افتح المشروع الذي أنشأته للإصدار.

  2. في القائمة اليمنى، حدد PipelinesReleases>.

    Screenshot that shows selecting Pipelines and then Releases on the Azure DevOps menu.

  3. حدد New pipeline. إذا كان لديك خطوط أنابيب موجودة، فحدد خط أنابيب الإصدار NewNewRelease>.

  4. حدد قالب ⁧⁩Empty job⁧

    Screenshot that shows selecting the Empty job template.

  5. في اسم المرحلة، أدخل اسم بيئتك.

  6. حدد إضافة قطعة أثرية، ثم حدد مستودع Git الذي تم تكوينه باستخدام Azure Synapse Studio في بيئة التطوير الخاصة بك. حدد مستودع Git الذي تدير فيه قوالب ARM للتجمعات ومساحة العمل. إذا كنت تستخدم GitHub كمصدر، فقم بإنشاء اتصال خدمة لحساب GitHub الخاص بك واسحب المستودعات. لمزيد من المعلومات، راجع اتصالات الخدمة.

    Screenshot that shows selecting GitHub to add a publish branch for a new artifact.

  7. حدد فرع قالب ARM للمورد. بالنسبة إلى⁧⁩Default version⁧⁩، حدد ⁧⁩Latest from default branch⁧⁩.

    Screenshot that shows setting the resource ARM template branch.

  8. بالنسبة للفرع الافتراضي للقطع الفنية، حدد فرع نشر المستودع. بشكل افتراضي، يكون فرع النشر هو workspace_publish. بالنسبة إلى⁧⁩Default version⁧⁩، حدد ⁧⁩Latest from default branch⁧⁩.

    Screenshot that shows setting the artifacts branch.

إعداد مهمة مرحلة لقالب ARM لإنشاء مورد وتحديثه

إذا كان لديك قالب ARM يقوم بنشر مورد، مثل مساحة عمل Azure Synapse أو تجمع Spark و SQL أو مخزن مفاتيح، فأضف مهمة نشر Azure Resource Manager لإنشاء هذه الموارد أو تحديثها:

  1. في طريقة عرض المراحل، حدد ⁧⁩View stage tasks⁧⁩.

    Screenshot that shows setting the stage view.

  2. أنشئ مهمة جديدة. ابحث عن ⁧⁩ARM Template Deployment⁧⁩، ثم حدد ⁧⁩Add⁧⁩.

  3. في علامة التبويب مهام النشر، حدد الاشتراك ومجموعة الموارد وموقع مساحة العمل. وفر بيانات الاعتماد إذا لزم الأمر.

  4. بالنسبة إلى الإجراء، حدد إنشاء مجموعة موارد أو تحديثها.

  5. بالنسبة إلى القالب، حدد زر علامة الحذف (...). انتقل إلى قالب ARM الخاص بمساحة العمل.

  6. بالنسبة لمعلمات القالب، حدد ... لاختيار ملف المعلمات.

    Screenshot that shows the: workspace and pools deploy.

  7. بالنسبة لتجاوز معلمات القالب، حدد ...، ثم أدخل قيم المعلمات التي تريد استخدامها لمساحة العمل.

  8. بالنسبة إلى وضع النشر، حدد تزايدي.

  9. (اختياري) أضف Azure PowerShell للمنحة وقم بتحديث تعيين دور مساحة العمل. إذا كنت تستخدم خط أنابيب إصدار لإنشاء مساحة عمل Azure Synapse، إضافة أصل خدمة خط الأنابيب كمسؤول مساحة عمل افتراضي. يمكنك تشغيل PowerShell لمنح الحسابات الأخرى حق الوصول إلى مساحة العمل.

    Screenshot that demonstrates running a PowerShell script to grant permissions.

تحذير

في وضع النشر الكامل، يتم حذف الموارد الموجودة في مجموعة الموارد غير المحددة في قالب ARM الجديد. لمزيد من المعلومات، راجع أوضاع توزيع إدارة موارد Azure.

إعداد مهمة مرحلة لنشر القطع الأثرية Azure Synapse

استخدم ملحق نشر مساحة عمل Synapse لنشر عناصر أخرى في مساحة عمل Azure Synapse . تتضمن العناصر التي يمكنك نشرها مجموعات البيانات والبرامج النصية SQL ودفاتر الملاحظات وتعريف مهمة Spark وتدفق البيانات وخط أنابيب وخدمة مرتبطة وبيانات اعتماد ووقت تشغيل تكامل.

  1. ابحث عن الإضافة واحصل عليها من Visual Studio Marketplace.

    Screenshot that shows the Synapse workspace deployment extension as it appears in Visual Studio Marketplace.

  2. حدد مؤسسة Azure DevOps التي تريد تثبيت الملحق فيها.

    Screenshot that shows selecting an organization in which to install the Synapse workspace deployment extension.

  3. تأكد من منح أصل خدمة خط أنابيب Azure DevOps إذن الاشتراك وتعيينه كمسؤول مساحة عمل Synapse لمساحة العمل.

  4. لإنشاء مهمة جديدة، ابحث عن نشر مساحة عمل Synapse، ثم حدد إضافة.

    Screenshot that shows searching for Synapse workspace deployment to create a task.

  5. في المهمة، بجوار قالب، حدد ... لاختيار ملف القالب.

  6. بجوار معلمات القالب، حدد ... لاختيار ملف المعلمات.

  7. حدد اتصالا ومجموعة موارد واسما لمساحة العمل.

  8. بجوار تجاوز معلمات القالب، حدد ... . أدخل قيم المعلمات التي تريد استخدامها لمساحة العمل، بما في ذلك سلاسل الاتصال ومفاتيح الحساب المستخدمة في الخدمات المرتبطة. لمزيد من المعلومات، راجع CI/CD في Azure Synapse Analytics.

    Screenshot that shows setting up the Synapse deployment task for the workspace.

  9. يتم دعم نشر نقطة النهاية الخاصة المدارة فقط في الإصدار 2.x. يرجى التأكد من تحديد الإصدار الصحيح والتحقق من نشر نقاط النهاية الخاصة المدارة في القالب.

    Screenshot that shows selecting version 2.x to deploy private endpoints with synapse deployment task.

  10. لإدارة المشغلات، يمكنك استخدام مفتاح تبديل المشغل لإيقاف المشغلات قبل النشر. ويمكنك أيضا إضافة مهمة لإعادة تشغيل المشغلات بعد مهمة النشر.

    Screenshot that shows managing triggers before and after deployment.

هام

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

إنشاء إصدار للنشر

بعد حفظ كافة التغييرات، يمكنك تحديد إنشاء إصدار لإنشاء إصدار يدويا. لمعرفة كيفية أتمتة إنشاء الإصدارات، راجع مشغلات إصدار Azure DevOps.

Screenshot that shows the New release pipeline pane, with Create release highlighted.

إعداد إصدار في "إجراءات GitHub"

في هذا القسم، ستتعرف على كيفية إنشاء مهام سير عمل GitHub باستخدام إجراءات GitHub لنشر مساحة عمل Azure Synapse.

يمكنك استخدام قالب GitHub Actions for Azure Resource Manager لأتمتة نشر قالب ARM إلى Azure لمساحات العمل وتجمعات الحوسبة.

ملف سير العمل

تعريف سير عمل إجراءات GitHub في ملف YAML (.yml) في المسار /.github/workflows/ في المستودع. يحتوي التعريف على الخطوات والمعلمات المختلفة التي تشكل سير العمل.

يحتوي الملف .yml على قسمين:

القسم المهام
المصادقة 1. تحديد مدير الخدمة.
2. إنشاء سر GitHub.
نشر نشر القطع الأثرية لمساحة العمل.

تكوين أسرار إجراءات GitHub

أسرار الإجراءات GitHub هي متغيرات البيئة المشفرة. يمكن لأي شخص لديه إذن متعاون لهذا المستودع استخدام هذه الأسرار للتفاعل مع الإجراءات في المستودع.

  1. في مستودع GitHub، حدد علامة التبويب الإعدادات، ثم حدد سر مستودعSecretsNew>.

    Screenshot that shows the GitHub elements to select to create a new repository secret.

  2. أضف سرا جديدا لمعرف العميل، وأضف سرا جديدا للعميل إذا كنت تستخدم أصل الخدمة للنشر. يمكنك أيضا اختيار حفظ معرف الاشتراك ومعرف المستأجر كأسرار.

أضف سير العمل الخاص بك

في مستودع GitHub، انتقل إلى الإجراءات.

  1. حدد Set up your workflow yourself.

  2. في ملف سير العمل، احذف كل شيء بعد المقطع on: . على سبيل المثال، قد يبدو سير العمل المتبقي مثل هذا المثال:

    name: CI
    
    on:
    push:
        branches: [ master ]
    pull_request:
        branches: [ master ]
    
  3. أعد تسمية سير العمل. ضمن علامة التبويب Marketplace، ابحث عن إجراء نشر مساحة عمل Synapse، ثم أضف الإجراء.

    Screenshot that shows searching for the Synapse workspace deployment task on the Marketplace tab.

  4. قم بتعيين القيم المطلوبة وقالب مساحة العمل:

    name: workspace deployment
    
    on:
        push:
            branches: [ publish_branch ]
    jobs:
        release:
            # You also can use the self-hosted runners.
            runs-on: windows-latest
            steps:
            # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it.
            - uses: actions/checkout@v2
            - uses: azure/synapse-workspace-deployment@release-1.0
            with:
              TargetWorkspaceName: 'target workspace name'
              TemplateFile: './path of the TemplateForWorkspace.json'
              ParametersFile: './path of the TemplateParametersForWorkspace.json'
              OverrideArmParameters: './path of the parameters.yaml'
              environment: 'Azure Public'
              resourceGroup: 'target workspace resource group'
              clientId: ${{secrets.CLIENTID}}
              clientSecret:  ${{secrets.CLIENTSECRET}}
              subscriptionId: 'subscriptionId of the target workspace'
              tenantId: 'tenantId'
              DeleteArtifactsNotInTemplate: 'true'
              managedIdentity: 'False'
    
  5. أنت مستعد لتنفيذ تغييراتك. حدد بدء الالتزام، وأدخل العنوان، ثم أضف وصفا (اختياري). ثم حدد تنفيذ ملف جديد.

    Screenshot that shows committing the workflow in GitHub.

    يظهر الملف في المجلد . github/workflows في المستودع.

    ملاحظة

    يتم دعم الهوية المدارة فقط مع الأجهزة الظاهرية المستضافة ذاتيا في Azure. تأكد من تعيين العداء على الاستضافة الذاتية. قم بتمكين الهوية المدارة المعينة من قبل النظام للجهاز الظاهري الخاص بك وإضافتها إلى Azure Synapse Studio كمسؤول Synapse.

مراجعة النشر الخاص بك

  1. في مستودع GitHub، انتقل إلى الإجراءات.

  2. للاطلاع على السجلات التفصيلية لتشغيل سير العمل، افتح النتيجة الأولى:

    Screenshot that shows selecting the workspace deployment log in the repository Actions in GitHub.

إنشاء معلمات مخصصة في قالب مساحة العمل

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

لتجاوز قالب المعلمة الافتراضي، قم بإنشاء قالب معلمة مخصص باسم template-parameters-definition.json في المجلد الجذر لفرع تعاون Git. يجب عليك استخدام اسم الملف الدقيق هذا. عندما تنشر مساحة عمل Azure Synapse من فرع التعاون، فإنها تقرأ هذا الملف وتستخدم تكوينه لإنشاء المعلمات. إذا لم تعثر مساحة عمل Azure Synapse على هذا الملف، فهذا يعني أنها تستخدم قالب المعلمة الافتراضي.

بناء معلمة مخصصة

يمكنك استخدام الإرشادات التالية لإنشاء ملف معلمات مخصص:

  • أدخل مسار الخصائص ضمن نوع العنصر ذي الصلة.
  • يشير تعيين اسم خاصية إلى أنك تريد وضع معلمة لجميع الخصائص ضمن الخاصية (فقط وصولا إلى * المستوى الأول، وليس بشكل متكرر). يمكنك تعيين استثناءات لهذا التكوين.
  • تعيين قيمة خاصية كسلسلة يشير إلى أنك تريد تخصيص معلمات الخاصية. استخدم التنسيق ⁧<action>:<name>:<stype>⁩.
    • <action>⁩ يمكن أن تكون واحدة من هذه الأحرف:
      • =⁩ تعني الاحتفاظ بالقيمة الحالية كقيمة افتراضية للمعلمة.
      • -⁩ تعني عدم الاحتفاظ بالقيمة الافتراضية للمعلمة.
      • |⁩ هي حالة خاصة للبيانات السرية من Azure Key Vault لسلاسل ومفاتيح الاتصال.
    • <name>⁩ هو اسم المعلمة. إذا كان فارغًا، فإنه يأخذ اسم الخاصية. إذا كانت القيمة تبدأ بحرف ⁧-⁩، يتم اختصار الاسم. على سبيل المثال، سيتم اختصار ⁧AzureStorage1_properties_typeProperties_connectionString⁩ إلى ⁧AzureStorage1_connectionString⁩.
    • <stype>⁩ هو نوع المعلمة. إذا كان ⁧<stype>⁩ فارغًا، يكون النوع الافتراضي هو ⁧string⁩. القيم المدعومة هي: string، securestring، int،bool،object،secureobject وarray.
  • يشير تحديد صفيف في الملف إلى أن الخاصية المطابقة في القالب عبارة عن صفيف. يكرر Azure Synapse من خلال كافة الكائنات الموجودة في الصفيف باستخدام التعريف المحدد. يصبح الكائن الثاني، السلسلة، اسم الخاصية، وهو يستخدم كاسم للمعلمة لكل تكرار.
  • لا يمكن أن يكون التعريف محددًا بمثيل مورد. ينطبق أي تعريف على جميع الموارد من هذا النوع.
  • بشكل افتراضي، يتم تحديد معلمات جميع السلاسل الآمنة (مثل أسرار Key Vault) والسلاسل الآمنة (مثل سلاسل الاتصال والمفاتيح والرموز المميزة).

مثال على تعريف قالب المعلمة

في ما يلي مثال على الشكل الذي يبدو عليه تعريف قالب المعلمة:

{
    "Microsoft.Synapse/workspaces/notebooks": {
        "properties": {
            "bigDataPool": {
                "referenceName": "="
            }
        }
    },
    "Microsoft.Synapse/workspaces/sqlscripts": {
        "properties": {
            "content": {
                "currentConnection": {
                    "*": "-"
                }
            }
        }
    },
    "Microsoft.Synapse/workspaces/pipelines": {
        "properties": {
            "activities": [
                {
                    "typeProperties": {
                        "waitTimeInSeconds": "-::int",
                        "headers": "=::object"
                    }
                }
            ]
        }
    },
    "Microsoft.Synapse/workspaces/integrationRuntimes": {
        "properties": {
            "typeProperties": {
                "*": "="
            }
        }
    },
    "Microsoft.Synapse/workspaces/triggers": {
        "properties": {
            "typeProperties": {
                "recurrence": {
                    "*": "=",
                    "interval": "=:triggerSuffix:int",
                    "frequency": "=:-freq"
                },
                "maxConcurrency": "="
            }
        }
    },
    "Microsoft.Synapse/workspaces/linkedServices": {
        "*": {
            "properties": {
                "typeProperties": {
                    "*": "="
                }
            }
        },
        "AzureDataLakeStore": {
            "properties": {
                "typeProperties": {
                    "dataLakeStoreUri": "="
                }
            }
        }
    },
    "Microsoft.Synapse/workspaces/datasets": {
        "properties": {
            "typeProperties": {
                "*": "="
            }
        }
    }
}

فيما يلي شرح لكيفية إنشاء القالب السابق، حسب نوع المورد.

notebooks

  • يتم تحديد أي خاصية في properties/bigDataPool/referenceName المسار بقيمتها الافتراضية. يمكنك وضع معلمة لتجمع Spark مرفق لكل ملف دفتر ملاحظات.

sqlscripts

  • في المسار، يتم وضع معلمات كل من poolName الخصائص والخصائص databaseName كسلاسل بدون القيم الافتراضية في القالبproperties/content/currentConnection.

pipelines

  • يتم تحديد أي خاصية في المسار activities/typeProperties/waitTimeInSeconds . أي نشاط في مسارٍ يحتوي على خاصية مستوى التعليمات البرمجية المسماة waitTimeInSeconds (على سبيل المثال، Wait النشاط) توضع عليه معلمة كعدد، مع اسم افتراضي. لن يكون للخاصية قيمة افتراضية في قالب Resource Manager. بدلا من ذلك، ستكون الخاصية مطلوبة للإدخال أثناء Resource Manager النشر.
  • يتم headers تحديد الخاصية Web (على سبيل المثال، في نشاط) بالكتابة object (كائن). headers تحتوي الخاصية على قيمة افتراضية هي نفس قيمة المصنع المصدر.

integrationRuntimes

  • يتم تحديد كافة الخصائص في typeProperties المسار بالقيم الافتراضية الخاصة بكل منها. على سبيل المثال، توجد خاصيتان ضمن IntegrationRuntimes خصائص النوع: computeProperties و ssisProperties. يُنشأ كلا النوعين من الخصائص مع القيم الافتراضية والأنواع الخاصة بهما (كائن).

triggers

  • ضمن typeProperties، يتم تحديد معلمتين لخاصيتين:
    • maxConcurrency تحتوي الخاصية على قيمة افتراضية وهي string النوع. اسم المعلمة الافتراضي للخاصية maxConcurrency هو <entityName>_properties_typeProperties_maxConcurrency.
    • recurrenceتُوضع معلمة أيضاً على الخاصية. يتم تعيين كافة الخصائص ضمن recurrence الخاصية ليتم معلماتها كسلاسل، مع القيم الافتراضية وأسماء المعلمات. الاستثناء interval هو الخاصية ، والتي يتم تحديد معلمتها كنوع int . تضاف لاحقة إلى اسم المعلمة، هي<entityName>_properties_typeProperties_recurrence_triggerSuffix. وبالمثل، فإن freq الخاصية هي سلسلة وتوضع عليها معلمات كسلسلة. ومع ذلك، freq توضع معلمات على الخاصية دون قيمة افتراضية. يتم اختصار الاسم ولاحقته ، مثل <entityName>_freq.

linkedServices

  • الخدمات المرتبطة فريدة من نوعها. نظرا لأن الخدمات ومجموعات البيانات المرتبطة تحتوي على مجموعة واسعة من الأنواع، يمكنك توفير تخصيصات خاصة بنوع معين. في المثال السابق، بالنسبة لجميع الخدمات المرتبطة من AzureDataLakeStore النوع، يتم تطبيق قالب معين. بالنسبة لجميع الآخرين (الذين تم تحديدهم من خلال استخدام الحرف * ) ، يتم تطبيق قالب مختلف.
  • connectionString يتم تحديد الخاصية كقيمةsecurestring. ليس له قيمة افتراضية. يتم تقصير اسم المعلمة ولاحقته ب connectionString.
  • secretAccessKey يتم تحديد الخاصية كقيمة AzureKeyVaultSecret (على سبيل المثال، في خدمة مرتبطة ب Amazon S3). يتم تحديد الخاصية تلقائيا كسرية Key Vault Azure ويتم جلبها من مخزن المفاتيح الذي تم تكوينه. يمكنك أيضا تحديد معلمة قبو المفاتيح نفسه.

datasets

  • على الرغم من أنه يمكنك تخصيص الأنواع في مجموعات البيانات، إلا أنه لا يلزم تكوين صريح على مستوى *. في المثال السابق، توضع معلمات على جميع خصائص مجموعة البيانات ضمن typeProperties.

أفضل الممارسات لـ CI/CD

إذا كنت تستخدم تكامل Git مع مساحة عمل Azure Synapse وكان لديك خط أنابيب CI/CD ينقل التغييرات من التطوير إلى الاختبار، ثم إلى الإنتاج، فإننا نوصي بأفضل الممارسات التالية:

  • ادمج مساحة عمل التطوير فقط مع Git. إذا كنت تستخدم تكامل Git، فقم بدمج مساحة عمل Azure Synapse الخاصة بالتطوير فقط مع Git. يتم نشر التغييرات في مساحات عمل الاختبار والإنتاج عبر CI/CD ولا تحتاج إلى تكامل Git.
  • قم بإعداد التجمعات قبل ترحيل القطع الأثرية. إذا كان لديك برنامج نصي أو دفتر ملاحظات SQL مرفق بتجمعات في مساحة عمل التطوير، فاستخدم الاسم نفسه للتجمعات في بيئات مختلفة.
  • مزامنة تعيين الإصدار في البنية الأساسية كسيناريوهات التعليمات البرمجية. لإدارة البنية الأساسية (الشبكات والأجهزة الظاهرية وموازنات التحميل وطبولوجيا الاتصال) في نموذج وصفي، استخدم نفس الإصدار الذي يستخدمه فريق DevOps للتعليمات البرمجية المصدرية.
  • راجع أفضل ممارسات Azure Data Factory. إذا كنت تستخدم Data Factory، فراجع أفضل الممارسات الخاصة بنماذج Data Factory.

استكشاف أخطاء نشر القطع الأثرية وإصلاحها

استخدام مهمة نشر مساحة عمل Synapse

في Azure Synapse، على عكس Data Factory، لا Resource Manager بعض القطع الأثرية بالموارد. لا يمكنك استخدام مهمة نشر قالب ARM لنشر القطع الأثرية Azure Synapse. بدلا من ذلك، استخدم مهمة نشر مساحة عمل Synapse.

خطأ رمز مميز غير متوقع في الإصدار

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