إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: Azure Logic Apps (قياسي)
ملاحظة
تخضع ميزة المعاينة هذه لشروط الاستخدام الإضافية لمعاينات Microsoft Azure.
إذا كانت مؤسستك تستخدم منصة تكامل لا يدعمها امتداد Azure Logic Apps Migration Agent في تعليمة Visual Studio برمجية حاليا، مثل TIBCO BusinessWorks أو IBM IIB/ACE أو Dell Boomi أو Workato، يمكنك توسيع الوكيل عن طريق إنشاء وإضافة محلل مخصص لتلك المنصة. تستخدم الإضافة بنية محلل تعتمد على السجل تدعم المحللات المدمجة والخارجية، بحيث يمكنك إضافة دعم للمنصة دون تعديل خط الانتقال الأساسي.
توضح هذه المقالة كيفية إنشاء وإضافة محلل مخصص يحول تشكيلات منصة تكامل المصدر إلى صيغة التمثيل الوسيط (IR) الشائعة لوكيل الترحيل. تصف هذه الوثيقة JSON القطع الأثرية بطريقة محايدة للمنصة وتسمح للوكيل بمعالجة القطع الأثرية خلال جميع مراحل الترحيل الخمس.
المتطلبات المسبقه
قبل أن تبدأ، تأكد من أن لديك الموارد التالية:
| المتطلب | Description |
|---|---|
| Node.js 18 أو أكثر | بيئة تشغيل مجانية ومفتوحة المصدر ومتعددة المنصات لجافا سكريبت |
| تعليمة Visual Studio برمجية 1.85.0 أو أحدث | تجربة التطوير المحلي |
| تعليمة Visual Studio برمجية واجهة برمجة التطبيقات الملحقة | واجهة برمجة تطبيقات تتيح لك بناء امتدادات ل تعليمة Visual Studio برمجية |
| Azure Logic Apps Migration Agent extension | الامتداد المطلوب مع وكيل الترحيل ل تعليمة Visual Studio برمجية |
| Azure Logic Apps (الامتداد القياسي) | الاعتماد المطلوب لإضافة Azure Logic Apps Migration Agent |
| الألفة مع TypeScript | لغة برمجة ذات أنواع قوية تعتمد على جافاسكريبت |
| مشروع دمج المصدر | مشروع دمج المصدر وملفات القطع الأثرية للمنصة التي تريد دعمها |
هندسة المحلل
لإضافة دعم المنصة إلى وكيل الترحيل، استخدم الأساليب التالية:
| نهج | موصى به | Description |
|---|---|---|
| محلل مدمج: ساهم في مستودع GitHub extension | Yes | أضف محلل ومهارات مباشرة إلى المشروع. التكامل الكامل مع جميع مراحل الهجرة الخمس. يوصى بهذا النهج لأن المحللات المدمجة تأتي مع الامتداد، وتستخدم نفس خط أنابيب CI/CD، ويمكنها الوصول إلى جميع واجهات برمجة التطبيقات الداخلية. |
| امتداد محلل خارجي | No | أنشئ إضافة منفصلة ل تعليمة Visual Studio برمجية تسجل المحللين عبر واجهة برمجة التطبيقات الخاصة بالإضافة. يغطي فقط مرحلة ديسكفري. |
جميع المحللات تحول التشويهات في منصة المصدر إلى صيغة IR مشتركة كمستند JSON. يستخدم وكيل الهجرة تنسيق IR في مراحل التخطيط والتحويل والتحقق. يدعم سجل المحلل إضافات محلل مدمجة وخارجية:
| المحللات المضمنة | إضافات المحلل الخارجية |
|---|---|
بيزتوك (.btproj, .odx) بيزتوك ( .btm, .xsd) بيزتوك ( .btp) مول سوفت (بذر) |
محللات المنصات الشريكة محللو المجتمع |
الخطوة 1: أضف محلل مدمج
تحت
src/parsers/<your-platform>/، أنشئ وحدة محلل جديدة.src/parsers/ ├── biztalk/ # Reference implementation │ ├── index.ts │ ├── types.ts │ ├── BizTalkProjectParser.ts │ ├── BizTalkOrchestrationParser.ts │ └── ... ├── <your-platform>/ # Your new parser │ ├── index.ts │ ├── types.ts │ └── <your-platform-parser-name>.tsتأكد من أن كل محلل ينفذ الواجهة
IParser.import { IParser, ParserCapabilities, ParseResult, ParseOptions } from '../types'; import { IRDocument, createEmptyIRDocument } from '../../ir/types'; export class YourPlatformParser implements IParser { get capabilities(): ParserCapabilities { return { platform: '<your-platform>', fileExtensions: ['.<your-extension>'], fileTypes: ['flow'], supportsFolder: false, description: 'Parses <your-platform> integration flows.', }; } canParse(filePath: string): boolean { return filePath.endsWith('.<your-extension>'); } async parse( filePath: string, options?: ParseOptions ): Promise<ParseResult> { const ir = createEmptyIRDocument(); // Parse the source file and populate the IR document. // For the complete schema, see docs/IRSchema.md. return { ir, stats: { /* parsing statistics */ } }; } }سجل محلل التحليل الخاص بك في
src/parsers/index.ts.import { <your-platform-parser-name> } from './<your-platform>'; export function initializeParsers(): void { // ... existing parsers ... defaultParserRegistry.register(new <your-platform-parser-name>()); }نصيحة
كمرجع يعمل بالكامل، استخدم تنفيذ محلل BizTalk في
src/parsers/biztalk/.
الخطوة 2: إضافة مهارات خاصة بالمنصة
كملفات ماركداون، توفر المهارات تعليمات الذكاء الاصطناعي لكل مرحلة ترحيل. يخبرون وكلاء GitHub Copilot كيفية تحليل وتخطيط وتحويل القطع الأثرية لمنصتك المحددة.
للعثور على هذه المهارات، ابحث أدناه resources/skills/ مع نسخ خاصة بالمنصات.
resources/skills/
├── detect-logical-groups/
│ ├── biztalk/SKILL.md
│ ├── mulesoft/SKILL.md
│ └── <your-platform>/SKILL.md
├── source-to-logic-apps-mapping/
│ ├── biztalk/SKILL.md
│ ├── mulesoft/SKILL.md
│ └── <your-platform>/SKILL.md
└── ... (13 skills total)
يستخدم كل SKILL.md ملف واجهة YAML متبوعة بمحتوى Markdown، على سبيل المثال:
---
name: source-to-logic-apps-mapping
description: >-
Component mapping for \<*your-platform*\> components to their equivalents in Azure Logic Apps (Standard).
---
الخطوة 3: قم بتعيين منصتك إلى مكونات Azure Logic Apps (Standard)
راجع الجدول التالي لإنشاء خرائط المحولات:
< منصتك-منصة> المكون Azure Logic Apps equivalent هل هي من أصلي؟ Notes مستمع HTTP مشغل HTTP Yes Built-in موصل قاعدة البيانات موصل SQL Server Yes Built-in لكل مهارة في الجدول التالي، أنشئ النسخة المطلوبة
<your-platform>/SKILL.mdمن المهارة المطلوبة:نصيحة
انسخ المهارات لمنصة مدعومة، مثل
biztalk/SKILL.md، كنقطة انطلاق وعدل المحتوى لمنصتك.GitHub عامل Copilot المهاره الغرض @migration-analyserdetect-logical-groupsقواعد لتجميع القطع الأثرية في مجموعات تدفق منطقية @migration-analyseranalyse-source-designقواعد لتحليل بنية المصدر وتوليد التصورات @migration-analyserdependency-and-decompilation-analysisقواعد تحديد التبعيات المفقودة جميع الوكلاء source-to-logic-apps-mappingتحويل المكونات إلى المكون من المصدر إلى Azure Logic Apps @migration-plannerlogic-apps-planning-rulesقواعد إنشاء خطط الهجرة @migration-converterconversion-task-plan-rulesقواعد إنشاء مهام التحويل @migration-converterscaffold-logic-apps-projectقواعد هيكل هيكل مشروع تطبيق المنطق القياسي @migration-converterworkflow-json-generation-rulesقواعد توليد workflow.jsonالملفات@migration-converterconnections-json-generation-rulesقواعد توليد الملف connections.json@migration-converterdotnet-local-functions-logic-appsقواعد توليد الدوال المحلية .NET @migration-converterno-stubs-code-generationقواعد لضمان اكتمال الكود المولد @migration-converterruntime-validation-and-testingقواعد التحقق والاختبار في وقت التشغيل @migration-convertercloud-deployment-and-testingقواعد النشر والاختبار عبر السحابة
الخطوة 4: سجل منصتك
في
src/types/platforms.tsالملف، أضف منصتك إلى قائمة المنصات المدعومة.export type SourcePlatform = 'biztalk' | 'mulesoft' | '<your-platform>'; export const SUPPORTED_PLATFORMS: PlatformInfo[] = [ // ... existing platforms ... { id: '<your-platform>', label: '<your-platform-name>', description: '<your-platform> version <version-number>', icon: '$(server)', filePatterns: ['.<your-extension>', '.<your-config>'], }, ];في
src/stages/discovery/PlatformDetector.tsالملف، أضف منطق الكشف.في
src/stages/discovery/SourceFolderService.tsالملف، أضف أنماط الملفات.
الخطوة 5 (اختياري): إضافة أمثلة على الأشعة تحت الحمراء
لتوثيق كيفية مطابقة التشويذات في منصتك مع مخطط IR، أضف ملفا docs/IRExamples_YourPlatform.md . الأمثلة التالية موجودة وتعمل كقوالب:
| مثال | Description |
|---|---|
docs/IRExamples_BizTalk.md |
مرجع BizTalk |
docs/IRExamples_MuleSoft.md |
مرجع لمولسوفت |
docs/IRExamples_Boomi.md |
مثال على Dell Boomi |
docs/IRExamples_IBMIIB.md |
مثال على IBM IIB/ACE |
docs/IRExamples_TIBCO.md |
مثال على TIBCO BusinessWorks |
docs/IRExamples_Workato.md |
مثال على وركاتو |
بديل: امتداد محلل خارجي
توسعات المحلل الخارجية تغطي فقط مرحلة الاكتشاف الخاصة بوكيل الترحيل حيث يقوم الوكيل بتحليل ملفات المصدر الخاصة بك. تتطلب المهارات، واكتشاف المنصات، والتخطيط والتحويل المدعوم بالذكاء الاصطناعي أن تساهم مباشرة في مستودع GitHub extension .
ومع ذلك، إذا كنت تفضل عدم المساهمة مباشرة في المستودع، أنشئ امتداد تعليمة Visual Studio برمجية منفصل يسجل المحللين باستخدام واجهة برمجة التطبيقات parse API:
import * as vscode from 'vscode';
export async function activate(context: vscode.ExtensionContext) {
const assistant = vscode.extensions.getExtension('microsoft.logicapps-migration-assistant');
if (assistant) {
const api = await assistant.activate();
api.registerParser(new MyPlatformParser(), {
priority: 10,
});
}
}
واجهة برمجة تطبيقات إضافة Parser
| الطريقة أو الخاصية | Description |
|---|---|
version |
نسخة الامتداد (للقراءة فقط) |
registerParser(parser, options?) |
سجل محلل في السجل. |
unregisterParser(id) |
قم بإزالة محلل مسجل. |
getParserRegistry() |
الوصول مباشرة إلى سجل المحلل. |
hasParser(id) |
تحقق مما إذا كان محلل التحليل مسجلا. |
getExternalParsers() |
احصل على معلومات حول محللين خارجيين مسجلين. |