إعداد توزيع DevOps لعمليات سير عمل التطبيق المنطقي القياسي في Azure Logic Apps للمستأجر الفردي

ينطبق على: Azure Logic Apps (قياسي)

توضح هذه المقالة كيفية توزيع مشروع تطبيق منطقي قياسي على Azure Logic Apps للمستأجر الفردي من Visual Studio Code إلى البنية الأساسية الخاصة بك باستخدام أدوات وعمليات DevOps. بناءً على ما إذا كنت تفضل GitHub أو Azure DevOps للتوزيع، اختر المسار والأدوات التي تعمل بشكل أفضل مع السيناريو الخاص بك. يمكنك استخدام العينات المضمنة التي تحتوي على أمثلة لمشروعات التطبيق المنطقي بالإضافة إلى أمثلة لتوزيع Azure باستخدام إما GitHub أو Azure DevOps. لمزيد من المعلومات حول DevOps للمستأجر الفردي، راجع نظرة عامة على توزيع DevOps للمستأجر الواحد Azure Logic Apps.

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

  • حساب Azure مع اشتراك نشط. إذا لم يكن لديك اشتراك Azure، فأنشئ حسابًا مجانًا.

  • مشروع تطبيق منطقي قياسي تم إنشاؤه باستخدام Visual Studio Code وملحق Azure Logic Apps (قياسي).

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

  • إذا كنت تريد التوزيع إلى Azure، فأنت بحاجة إلى مورد تطبيق منطقي (قياسي) تم إنشاؤه في Azure. لإنشاء مورد تطبيق منطقي فارغ بسرعة، راجع إنشاء مهام سير عمل تطبيق منطقي يستند إلى مستأجر واحد - المدخل.

قم بتوزيع موارد البنية الأساسية

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

يتضمن كلا النموذجين الموارد التالية التي يستخدمها التطبيق المنطقي للتشغيل.

اسم المورد المطلوب ‏‏الوصف
Logic App (القياسي) ‏‏نعم‬ يحتوي مورد Azure هذا على مهام سير العمل التي يتم تشغيلها في Azure Logic Apps للمستأجر الفردي.
خطة استضافة Functions Premium أو App Service ‏‏نعم‬ يحدد مورد Azure هذا موارد الاستضافة لاستخدامها في تشغيل تطبيق المنطق، مثل الحساب والمعالجة والتخزين والشبكات وما إلى ذلك.

هام: في التجربة الحالية، يتطلب مورد تطبيق Logic (قياسي) خطة استضافة Workflow Standard، والتي تستند إلى وظائف خطة الاستضافة المميزة.

حساب مخزن Azure نعم، لكل من مهام سير العمل ذات الحالة وعديمة الحالة يخزن مورد Azure هذا البيانات التعريفية ومفاتيح التحكم في الوصول والحالة والإدخالات والمخرجات ومحفوظات التشغيل ومعلومات أخرى حول مهام سير العمل.
Application Insights اختياري يوفر مورد Azure هذا إمكانات مراقبة لعمليات سير العمل الخاصة بك.
اتصالات واجهة برمجة التطبيقات اختياري، إذا لم يكن موجوداً تحدد موارد Azure هذه أي اتصالات API مُدارة تستخدمها مهام سير العمل لتشغيل عمليات الموصل المُدارة، مثل Office 365 وSharePoint وما إلى ذلك.

هام: في مشروع التطبيق المنطقي، يحتوي ملف links.json على بيانات تعريف ونقاط نهاية ومفاتيح لأي اتصالات API مُدارة وAzure Functions تستخدمها مهام سير العمل. لاستخدام اتصالات ووظائف مختلفة في كل بيئة، تأكد من تحديد معلمات ملف links.json وتحديث نقاط النهاية.

لمزيد من المعلومات، راجع نُهج الوصول وموارد اتصال واجهة برمجة التطبيقات.

قالب Azure Resource Manager (ARM) اختياري يحدد مورد Azure هذا عملية توزيع البنية الأساسية التي يمكنك إعادة استخدامها أو تصديرها.

موارد اتصال API ونُهج الوصول

في Azure Logic Apps للمستأجر الفردي، يتطلب كل مورد اتصال مُدار أو API في مهام سير العمل نهج وصول مرتبطة. يحتاج هذا النهج إلى هوية تطبيقك المنطقي لتوفير الأذونات الصحيحة للوصول إلى البنية الأساسية للموصل المُدار. تشتمل نماذج المشاريع المضمنة على قالب ARM يتضمن جميع موارد البنية الأساسية الضرورية، بما في ذلك نُهج الوصول هذه.

يوضح الرسم التخطيطي التالي التبعيات بين مشروع التطبيق المنطقي وموارد البنية الأساسية:

رسم تخطيطي مفاهيمي يوضح تبعيات البنية الأساسية لمشروع تطبيق منطقي في نموذج Azure Logic Apps للمستأجر الفردي.

توزيع موارد التطبيق المنطقي (توزيع zip)

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

قم ببناء مشروعك

لإعداد تدفق بناءً على نوع مشروع التطبيق المنطقي، أكمل الإجراءات المقابلة في الجدول التالي:

نوع المشروع الوصف والخطوات
على أساس Nuget يعتمد هيكل المشروع المستند إلى NuGet على .NET Framework. لإنشاء هذه المشاريع، تأكد من اتباع خطوات الإنشاء لـ NET. Standard. لمزيد من المعلومات، راجع وثائق إنشاء حزمة NuGet باستخدام MSBuild.
على أساس الحزم المشروع المستند إلى حزمة الملحقات ليس خاصاً باللغة ولا يتطلب أي خطوات إنشاء خاصة باللغة. يمكنك استخدام أي طريقة لضغط ملفات مشروعك.

هام: تأكد من أن ملف zip. الخاص بك يحتوي على البيانات الاصطناعية البناء الفعلية، بما في ذلك جميع مجلدات سير العمل وملفات التكوين مثل host.json وlinks.json وأي ملفات أخرى ذات صلة.

قبل إصداره إلى Azure

يتم إنشاء اتصالات API المُدارة داخل ملف links.json الخاص بمشروع تطبيقك المنطقي للاستخدام المحلي في Visual Studio Code. قبل أن تتمكن من تحرير بيانات المشروع الاصطناعية من Visual Studio Code إلى Azure، يجب عليك تحديث هذه البيانات الاصطناعية. لاستخدام اتصالات API المُدارة في Azure، يجب عليك تحديث أساليب المصادقة الخاصة بها بحيث تكون بالتنسيق الصحيح لاستخدامها في Azure.

تحديث نوع المصادقة

لكل اتصال API مدار يستخدم المصادقة، يجب عليك تحديث عنصر المصادقة من التنسيق المحلي في Visual Studio Code إلى تنسيق مدخل Microsoft Azure، كما هو موضح في أمثلة التعليمة البرمجية الأولى والثانية، على التوالي:

تنسيق Visual Studio Code

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "Raw",
         "scheme": "Key",
         "parameter": "@appsetting('sql-connectionKey')"
      }
   }
}

تنسيق مدخل Microsoft Azure

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "ManagedServiceIdentity",
      }
   }
}

إنشاء اتصالات API حسب الحاجة

إذا كنت توزع سير عمل التطبيق المنطقي الخاص بك إلى منطقة Azure أو اشتراك مختلف عن بيئة التطوير المحلية، يجب عليك أيضاً التأكد من إنشاء اتصالات API المُدارة هذه قبل التوزيع. يعد توزيع قالب Azure Resource Manager (قالب ARM) أسهل طريقة لإنشاء اتصالات API مُدارة.

يوضح المثال التالي تعريف مورد اتصال API المُدار بواسطة SQL في قالب ARM:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

للعثور على القيم التي تحتاج إلى استخدامها في عنصر properties لإكمال تعريف مورد الاتصال، يمكنك استخدام واجهة برمجة التطبيقات التالية لموصل محدد:

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

في الاستجابة، ابحث عن كائن connectionParameters ، الذي يحتوي على المعلومات الضرورية لإكمال تعريف المورد لهذا الموصل المحدد. يُظهر المثال التالي مثالاً على تعريف مورد لاتصال مُدار بواسطة SQL:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

كبديل، يمكنك تسجيل ومراجعة تتبع الشبكة عند إنشاء اتصال باستخدام مصمم سير العمل في Azure Logic Apps. ابحث عن استدعاء PUT الذي تم إرساله إلى واجهة برمجة التطبيقات المُدارة للموصل كما هو موضح سابقاً، وقم بمراجعة نص الطلب للحصول على جميع المعلومات الضرورية.

تعريف مورد بوابة البيانات المحلية

إذا كان الاتصال الخاص بك يستخدم مورد بوابة بيانات محلية، فإن تعريف المورد هذا موجود بشكل منفصل عن تعريف مورد الموصل. لعرض تعريف مورد بوابة البيانات، راجع أتمتة النشر ل Azure Logic Apps باستخدام قوالب Azure Resource Manager وMicrosoft.Web connectionGateways.

حرر إلى Azure

لإعداد مسار إصدار يتم توزيعه في Azure، اتبع الخطوات المرتبطة بـ GitHub أو Azure DevOps أو Azure CLI.

إشعار

لا تدعم Azure Logic Apps حالياً فتحات توزيع Azure.

بالنسبة لعمليات توزيع GitHub، يمكنك توزيع التطبيق المنطقي الخاص بك باستخدام GitHub Actions، على سبيل المثال، GitHub Actions في Azure Functions. يتطلب هذا الإجراء أن تمر عبر المعلومات التالية:

  • اسم التطبيق المنطقي المراد استخدامه للتوزيع
  • الملف المضغوط الذي يحتوي على البيانات الاصطناعية البناء الفعلية، بما في ذلك جميع مجلدات سير العمل وملفات التكوين مثل host.json وlinks.json وأي ملفات أخرى ذات صلة.
  • ملف التعريف الخاص بك للنشر، والذي يتم استخدامه للمصادقة
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

لمزيد من المعلومات، راجع وثائق التسليم المستمر باستخدام GitHub Action.

بعد إطلاق سراحه إلى Azure

كل اتصال API له نُهج الوصول. بعد اكتمال توزيع zip، يجب عليك فتح مورد التطبيق المنطقي في مدخل Microsoft Azure، وإنشاء نُهج وصول لكل اتصال API لإعداد الأذونات للتطبيق المنطقي المنشور. لا يؤدي التوزيع المضغوط إلى إنشاء إعدادات التطبيق لك. لذلك، بعد التوزيع، يجب عليك إنشاء إعدادات التطبيق هذه بناءً على ملف local.settings.json في مشروع Visual Studio Code المحلي الخاص بك.

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

نود أن نسمع عن تجاربك مع Azure Logic Apps للمستأجر الفردي!