Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Azure Logic Apps (Standard)
Note
Dieses Vorschaufeature unterliegt den ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.
Wenn Ihre Organisation eine Integrationsplattform verwendet, die die Erweiterung Azure Logic Apps Migration Agent in Visual Studio Code derzeit nicht unterstützt, z. B. TIBCO BusinessWorks, IBM IIB/ACE, Dell Boomi oder Workato, können Sie den Agent erweitern, indem Sie einen benutzerdefinierten Parser für diese Plattform erstellen und hinzufügen. Die Erweiterung verwendet eine registrierungsbasierte Parserarchitektur, die sowohl integrierte als auch externe Parser unterstützt, sodass Sie Plattformunterstützung hinzufügen können, ohne die Kernmigrationspipeline zu ändern.
In diesem Artikel wird gezeigt, wie Sie einen benutzerdefinierten Parser erstellen und hinzufügen, der die Artefakte Ihrer Quellintegrationsplattform in das allgemeine Ir-Format (Intermediate Representation) des Migrations-Agents transformiert. Dieses JSON-Dokument beschreibt Artefakte auf plattformneutrale Weise und ermöglicht es dem Agent, Ihre Artefakte über alle fünf Migrationsphasen zu verarbeiten.
Prerequisites
Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Ressourcen verfügen:
| Anforderung | Beschreibung |
|---|---|
| Node.js 18 oder höher | Kostenlose, Open-Source-, plattformübergreifende JavaScript-Laufzeitumgebung |
| Visual Studio Code 1.85.0 oder höher | Lokale Entwicklungserfahrung |
| Visual Studio Code-Erweiterungs-API | API, mit der Sie Erweiterungen für Visual Studio Code erstellen können |
| Azure Logic Apps Migrations-Agent-Erweiterung | Erforderliche Erweiterung mit Migrations-Agent für Visual Studio Code |
| Azure Logic Apps (Standard)-Erweiterung | Erforderliche Abhängigkeiten für die Erweiterung des Azure Logic Apps Migration Agent |
| Vertrautheit mit TypeScript | Eine stark typisierte Programmiersprache, die auf JavaScript aufbaut |
| Quellintegrationsprojekt | Das Quellintegrationsprojekt und Artefaktdateien für die Plattform, auf der Sie Unterstützung benötigen |
Parserarchitektur
Verwenden Sie die folgenden Ansätze, um dem Migrations-Agent Plattformunterstützung hinzuzufügen:
| Approach | Empfohlen | Beschreibung |
|---|---|---|
| Eingebauter Parser: Mitwirken am GitHub-Repository der Erweiterung | Ja | Fügen Sie dem Projekt direkt einen Parser und Fähigkeiten hinzu. Vollständige Integration mit allen fünf Migrationsphasen. Dieser Ansatz wird empfohlen, da integrierte Parser mit der Erweiterung ausgeliefert werden, dieselbe CI/CD-Pipeline verwenden und auf alle internen APIs zugreifen können. |
| Externe Parsererweiterung | No | Erstellen Sie eine separate Visual Studio Code Erweiterung, die Parser über die Plug-In-API registriert. Deckt nur die Ermittlungsphase ab. |
Alle Parser transformieren Quellplattformartefakte in ein gemeinsames IR-Format als JSON-Dokument. Der Migrations-Agent verwendet das IR-Format in den Phasen Planung, Konvertierung und Validierung. Die Parserregistrierung unterstützt integrierte und externe Parser-Plug-Ins:
| Integrierte Parser | Plug-Ins für externe Parser |
|---|---|
BizTalk (.btproj, .odx) BizTalk ( .btm, .xsd) BizTalk ( .btp) MuleSoft (Stub) |
Partnerplattform-Parser Community-Parser |
Schritt 1: Hinzufügen eines integrierten Parsers
Erstellen Sie unter
src/parsers/<your-platform>/ein neues Parsermodul.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>.tsStellen Sie sicher, dass jeder Parser die
IParserSchnittstelle implementiert.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 */ } }; } }Registrieren Sie Ihren Parser in
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>()); }Tipp
Verwenden Sie als voll funktionsfähige Referenz die BizTalk-Parserimplementierung in
src/parsers/biztalk/.
Schritt 2: Hinzufügen plattformspezifischer Fähigkeiten
Als Markdown-Dateien bieten Fähigkeiten KI-Anweisungen für jede Migrationsstufe. Sie teilen den GitHub Copilot Agents mit, wie Artefakte für Ihre spezifische Plattform analysiert, geplant und konvertiert werden.
Um diese Fähigkeiten zu finden, betrachten Sie die plattformspezifischen Varianten unter 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)
Jede SKILL.md Datei verwendet YAML-Frontmatter gefolgt von Markdown-Inhalten, z. B.:
---
name: source-to-logic-apps-mapping
description: >-
Component mapping for \<*your-platform*\> components to their equivalents in Azure Logic Apps (Standard).
---
Schritt 3: Zuordnen Ihrer Plattform zu Azure Logic Apps (Standard)-Komponenten
Überprüfen Sie die folgende Tabelle, um die Adapterzuordnungen zu erstellen:
< Ihre Plattform> Komponente Azure Logic Apps Entsprechung Nativ? Hinweise HTTP-Listener HTTP-Trigger Ja Integriert Datenbankkonnektor SQL Server-Connector Ja Integriert Erstellen Sie für jede Fähigkeit in der folgenden Tabelle die erforderliche
<your-platform>/SKILL.mdQualifikationsvariante:Tipp
Kopieren Sie die Funktionen für eine unterstützte Plattform, wie z. B.
biztalk/SKILL.md, als Ausgangspunkt und passen Sie die Inhalte für Ihre Plattform an.GitHub Copilot Agent Qualifikation Purpose @migration-analyserdetect-logical-groupsRegeln zum Gruppieren von Artefakten in logische Flussgruppen @migration-analyseranalyse-source-designRegeln zum Analysieren der Quellarchitektur und zum Generieren von Visualisierungen @migration-analyserdependency-and-decompilation-analysisRegeln zum Identifizieren fehlender Abhängigkeiten Alle Agents source-to-logic-apps-mappingKomponenten-nach-Komponenten-Zuordnung von Quelle zu Azure Logic Apps @migration-plannerlogic-apps-planning-rulesRegeln zum Generieren von Migrationsplänen @migration-converterconversion-task-plan-rulesRegeln zum Erstellen von Konvertierungsaufgaben @migration-converterscaffold-logic-apps-projectRegeln für das Gerüst der Standardlogik-App-Projektstruktur @migration-converterworkflow-json-generation-rulesRegeln zum Generieren von workflow.jsonDateien@migration-converterconnections-json-generation-rulesRegeln zum Generieren der connections.jsonDatei@migration-converterdotnet-local-functions-logic-appsRegeln zum Generieren von .NET lokalen Funktionen @migration-converterno-stubs-code-generationRegeln für die Sicherstellung, dass der generierte Code vollständig ist @migration-converterruntime-validation-and-testingRegeln für Laufzeitüberprüfung und -tests @migration-convertercloud-deployment-and-testingRegeln für cloudbasierte Bereitstellung und Tests
Schritt 4: Registrieren Ihrer Plattform
Fügen Sie in der
src/types/platforms.tsDatei Ihre Plattform zur Liste der unterstützten Plattformen hinzu.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>'], }, ];Fügen Sie in der
src/stages/discovery/PlatformDetector.tsDatei die Erkennungslogik hinzu.Fügen Sie in der
src/stages/discovery/SourceFolderService.tsDatei die Dateimuster hinzu.
Schritt 5 (optional): Hinzufügen von IR-Beispielen
Um zu dokumentieren, wie die Artefakte Ihrer Plattform dem IR-Schema zugeordnet sind, fügen Sie eine docs/IRExamples_YourPlatform.md Datei hinzu. Die folgenden Beispiele sind vorhanden und dienen als Vorlagen:
| Beispiel | Beschreibung |
|---|---|
docs/IRExamples_BizTalk.md |
BizTalk-Referenz |
docs/IRExamples_MuleSoft.md |
MuleSoft-Referenz |
docs/IRExamples_Boomi.md |
Dell Boomi-Beispiel |
docs/IRExamples_IBMIIB.md |
IBM IIB/ACE-Beispiel |
docs/IRExamples_TIBCO.md |
TIBCO BusinessWorks(Beispiel) |
docs/IRExamples_Workato.md |
Workato-Beispiel |
Alternative: Externe Parsererweiterung
Externe Parsererweiterungen decken nur die Ermittlungsphase des Migrations-Agents ab, in der der Agent Ihre Quelldateien analysiert. Fähigkeiten, Plattformerkennung und KI-basierte Planung und Konvertierung erfordern, dass Sie direkt zum Extension GitHub Repository beitragen.
Wenn Sie jedoch lieber nicht direkt zum Repository beitragen möchten, erstellen Sie eine separate Visual Studio Code Erweiterung, die Parser mithilfe der parse-Plug-In-API registriert:
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-Plug-In-API
| Methode oder Eigenschaft | Beschreibung |
|---|---|
version |
Erweiterungsversion (Nur-Lesen) |
registerParser(parser, options?) |
Registrieren Sie einen Parser im Register. |
unregisterParser(id) |
Entfernen Sie einen registrierten Parser. |
getParserRegistry() |
Greifen Sie direkt auf die Parserregistrierung zu. |
hasParser(id) |
Überprüfen Sie, ob ein Parser registriert ist. |
getExternalParsers() |
Abrufen von Informationen zu registrierten externen Parsern. |