التكامل والتسليم المستمرين لمساحة عمل 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
- قم بإعداد مشروع Azure DevOps لتشغيل خط أنابيب الإصدار.
- امنح أي مستخدمين يقومون بإيداع الوصول الأساسي إلى التعليمات البرمجية على مستوى المؤسسة، حتى يتمكنوا من رؤية المستودع.
- منح إذن المالك لمستودع Azure Synapse.
- تأكد من إنشاء وكيل Azure DevOps VM مستضاف ذاتيا أو استخدام وكيل Azure DevOps مستضاف.
- منح أذونات لإنشاء اتصال خدمة Azure Resource Manager لمجموعة الموارد.
- يجب على مسؤول Azure Active Directory (Azure AD) تثبيت ملحق عامل نشر مساحة عمل Azure DevOps 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.
قم بإعداد مساحة عمل فارغة للنشر إلى:
- إنشاء مساحة عمل Azure Synapse جديدة.
- منح عامل VM ومساهم الخدمة الأساسي إذن لمجموعة الموارد التي يتم استضافة مساحة العمل الجديدة فيها.
- في مساحة العمل، لا تقم بتكوين اتصال مستودع Git.
- في مدخل Azure، ابحث عن مساحة عمل Azure Synapse الجديدة، ثم امنح المالك إذنا لنفسك وللمستخدم الذي سيقوم بتشغيل مساحة عمل Azure Synapse لخط أنابيب Azure DevOps.
- أضف عامل Azure DevOps VM ومدير الخدمة إلى دور المساهم لمساحة العمل. (كان ينبغي أن يكون الدور موروثا ، ولكن تحقق من أنه كذلك.)
- في مساحة عمل Azure Synapse، انتقل إلى StudioManageAccess>>Control. أضف عامل Azure DevOps VM وأصل الخدمة إلى مجموعة مسؤول مساحة العمل.
- افتح حساب التخزين المستخدم لمساحة العمل. في جزء إدارة الهوية والوصول ، أضف عامل الجهاز الظاهري وأصل الخدمة إلى دور المساهم في بيانات نقطة التخزين.
- أنشئ مخزنا رئيسيا في اشتراك الدعم، وتأكد من أن كل من مساحة العمل الحالية ومساحة العمل الجديدة لديهما أذونات GET وLIST على الأقل للخزانة.
- لكي يعمل النشر التلقائي، تأكد من وجود أي سلاسل اتصال محددة في خدماتك المرتبطة في مخزن المفاتيح.
المتطلبات الأساسية الأخرى
- لا يتم إنشاء تجمعات Spark وأوقات تشغيل التكامل المستضافة ذاتيا في مهمة نشر مساحة العمل. إذا كان لديك خدمة مرتبطة تستخدم وقت تشغيل تكامل مستضاف ذاتيا، فقم بإنشاء وقت التشغيل يدويا في مساحة العمل الجديدة.
- إذا كانت العناصر الموجودة في مساحة عمل التطوير مرفقة بتجمعات محددة، فتأكد من إنشاء أو معلمة نفس الأسماء للتجمعات في مساحة العمل الهدف في ملف المعلمة.
- إذا تم إيقاف تجمعات SQL المتوفرة مؤقتا عند محاولة النشر، فقد يفشل النشر.
لمزيد من المعلومات، راجع CI/CD في Azure Synapse Analytics الجزء 4 - خط أنابيب الإصدار.
إعداد خط أنابيب إصدار في Azure DevOps
في هذا القسم، ستتعرف على كيفية نشر مساحة عمل Azure Synapse في Azure DevOps.
في Azure DevOps، افتح المشروع الذي أنشأته للإصدار.
في القائمة اليمنى، حدد PipelinesReleases>.
حدد New pipeline. إذا كان لديك خطوط أنابيب موجودة، فحدد خط أنابيب الإصدار NewNewRelease>.
حدد قالب Empty job
في اسم المرحلة، أدخل اسم بيئتك.
حدد إضافة قطعة أثرية، ثم حدد مستودع Git الذي تم تكوينه باستخدام Azure Synapse Studio في بيئة التطوير الخاصة بك. حدد مستودع Git الذي تدير فيه قوالب ARM للتجمعات ومساحة العمل. إذا كنت تستخدم GitHub كمصدر، فقم بإنشاء اتصال خدمة لحساب GitHub الخاص بك واسحب المستودعات. لمزيد من المعلومات، راجع اتصالات الخدمة.
حدد فرع قالب ARM للمورد. بالنسبة إلىDefault version، حدد Latest from default branch.
بالنسبة للفرع الافتراضي للقطع الفنية، حدد فرع نشر المستودع. بشكل افتراضي، يكون فرع النشر هو
workspace_publish. بالنسبة إلىDefault version، حدد Latest from default branch.
إعداد مهمة مرحلة لقالب ARM لإنشاء مورد وتحديثه
إذا كان لديك قالب ARM يقوم بنشر مورد، مثل مساحة عمل Azure Synapse أو تجمع Spark و SQL أو مخزن مفاتيح، فأضف مهمة نشر Azure Resource Manager لإنشاء هذه الموارد أو تحديثها:
في طريقة عرض المراحل، حدد View stage tasks.
أنشئ مهمة جديدة. ابحث عن ARM Template Deployment، ثم حدد Add.
في علامة التبويب مهام النشر، حدد الاشتراك ومجموعة الموارد وموقع مساحة العمل. وفر بيانات الاعتماد إذا لزم الأمر.
بالنسبة إلى الإجراء، حدد إنشاء مجموعة موارد أو تحديثها.
بالنسبة إلى القالب، حدد زر علامة الحذف (...). انتقل إلى قالب ARM الخاص بمساحة العمل.
بالنسبة لمعلمات القالب، حدد ... لاختيار ملف المعلمات.
بالنسبة لتجاوز معلمات القالب، حدد ...، ثم أدخل قيم المعلمات التي تريد استخدامها لمساحة العمل.
بالنسبة إلى وضع النشر، حدد تزايدي.
(اختياري) أضف Azure PowerShell للمنحة وقم بتحديث تعيين دور مساحة العمل. إذا كنت تستخدم خط أنابيب إصدار لإنشاء مساحة عمل Azure Synapse، إضافة أصل خدمة خط الأنابيب كمسؤول مساحة عمل افتراضي. يمكنك تشغيل PowerShell لمنح الحسابات الأخرى حق الوصول إلى مساحة العمل.
تحذير
في وضع النشر الكامل، يتم حذف الموارد الموجودة في مجموعة الموارد غير المحددة في قالب ARM الجديد. لمزيد من المعلومات، راجع أوضاع توزيع إدارة موارد Azure.
إعداد مهمة مرحلة لنشر القطع الأثرية Azure Synapse
استخدم ملحق نشر مساحة عمل Synapse لنشر عناصر أخرى في مساحة عمل Azure Synapse . تتضمن العناصر التي يمكنك نشرها مجموعات البيانات والبرامج النصية SQL ودفاتر الملاحظات وتعريف مهمة Spark وتدفق البيانات وخط أنابيب وخدمة مرتبطة وبيانات اعتماد ووقت تشغيل تكامل.
ابحث عن الإضافة واحصل عليها من Visual Studio Marketplace.
حدد مؤسسة Azure DevOps التي تريد تثبيت الملحق فيها.
تأكد من منح أصل خدمة خط أنابيب Azure DevOps إذن الاشتراك وتعيينه كمسؤول مساحة عمل Synapse لمساحة العمل.
لإنشاء مهمة جديدة، ابحث عن نشر مساحة عمل Synapse، ثم حدد إضافة.
في المهمة، بجوار قالب، حدد ... لاختيار ملف القالب.
بجوار معلمات القالب، حدد ... لاختيار ملف المعلمات.
حدد اتصالا ومجموعة موارد واسما لمساحة العمل.
بجوار تجاوز معلمات القالب، حدد ... . أدخل قيم المعلمات التي تريد استخدامها لمساحة العمل، بما في ذلك سلاسل الاتصال ومفاتيح الحساب المستخدمة في الخدمات المرتبطة. لمزيد من المعلومات، راجع CI/CD في Azure Synapse Analytics.
يتم دعم نشر نقطة النهاية الخاصة المدارة فقط في الإصدار 2.x. يرجى التأكد من تحديد الإصدار الصحيح والتحقق من نشر نقاط النهاية الخاصة المدارة في القالب.
لإدارة المشغلات، يمكنك استخدام مفتاح تبديل المشغل لإيقاف المشغلات قبل النشر. ويمكنك أيضا إضافة مهمة لإعادة تشغيل المشغلات بعد مهمة النشر.
هام
في سيناريوهات CI/CD، يجب أن يكون نوع وقت تشغيل التكامل في بيئات مختلفة هو نفسه. على سبيل المثال، إذا كان لديك وقت تشغيل تكامل مستضاف ذاتيا في بيئة التطوير، فيجب أن يكون وقت تشغيل التكامل نفسه مستضاف ذاتيا في بيئات أخرى، مثل الاختبار والإنتاج. وبالمثل، إذا كنت تشارك أوقات تشغيل التكامل عبر مراحل متعددة، فيجب ربط أوقات تشغيل التكامل واستضافتها ذاتيا في جميع البيئات، مثل التطوير والاختبار والإنتاج.
إنشاء إصدار للنشر
بعد حفظ كافة التغييرات، يمكنك تحديد إنشاء إصدار لإنشاء إصدار يدويا. لمعرفة كيفية أتمتة إنشاء الإصدارات، راجع مشغلات إصدار Azure DevOps.
إعداد إصدار في "إجراءات GitHub"
في هذا القسم، ستتعرف على كيفية إنشاء مهام سير عمل GitHub باستخدام إجراءات GitHub لنشر مساحة عمل Azure Synapse.
يمكنك استخدام قالب GitHub Actions for Azure Resource Manager لأتمتة نشر قالب ARM إلى Azure لمساحات العمل وتجمعات الحوسبة.
ملف سير العمل
تعريف سير عمل إجراءات GitHub في ملف YAML (.yml) في المسار /.github/workflows/ في المستودع. يحتوي التعريف على الخطوات والمعلمات المختلفة التي تشكل سير العمل.
يحتوي الملف .yml على قسمين:
| القسم | المهام |
|---|---|
| المصادقة | 1. تحديد مدير الخدمة. 2. إنشاء سر GitHub. |
| نشر | نشر القطع الأثرية لمساحة العمل. |
تكوين أسرار إجراءات GitHub
أسرار الإجراءات GitHub هي متغيرات البيئة المشفرة. يمكن لأي شخص لديه إذن متعاون لهذا المستودع استخدام هذه الأسرار للتفاعل مع الإجراءات في المستودع.
في مستودع GitHub، حدد علامة التبويب الإعدادات، ثم حدد سر مستودعSecretsNew>.
أضف سرا جديدا لمعرف العميل، وأضف سرا جديدا للعميل إذا كنت تستخدم أصل الخدمة للنشر. يمكنك أيضا اختيار حفظ معرف الاشتراك ومعرف المستأجر كأسرار.
أضف سير العمل الخاص بك
في مستودع GitHub، انتقل إلى الإجراءات.
حدد Set up your workflow yourself.
في ملف سير العمل، احذف كل شيء بعد المقطع
on:. على سبيل المثال، قد يبدو سير العمل المتبقي مثل هذا المثال:name: CI on: push: branches: [ master ] pull_request: branches: [ master ]أعد تسمية سير العمل. ضمن علامة التبويب Marketplace، ابحث عن إجراء نشر مساحة عمل Synapse، ثم أضف الإجراء.
قم بتعيين القيم المطلوبة وقالب مساحة العمل:
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'أنت مستعد لتنفيذ تغييراتك. حدد بدء الالتزام، وأدخل العنوان، ثم أضف وصفا (اختياري). ثم حدد تنفيذ ملف جديد.
يظهر الملف في المجلد . github/workflows في المستودع.
ملاحظة
يتم دعم الهوية المدارة فقط مع الأجهزة الظاهرية المستضافة ذاتيا في Azure. تأكد من تعيين العداء على الاستضافة الذاتية. قم بتمكين الهوية المدارة المعينة من قبل النظام للجهاز الظاهري الخاص بك وإضافتها إلى Azure Synapse Studio كمسؤول Synapse.
مراجعة النشر الخاص بك
في مستودع 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 لاسترداد قيم المعلمات. يمكنك أيضا استخدام أحرف الهروب المزدوج لحل المشكلة.








