Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: Azure Logic Apps (Standard)
Note
Den här förhandsgranskningsfunktionen omfattas av de kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure.
Om din organisation använder en integrationsplattform som Azure Logic Apps Migration Agent-tillägget i Visual Studio Code för närvarande inte stöder, till exempel TIBCO BusinessWorks, IBM IIB/ACE, Dell Boomi eller Workato, kan du utöka agenten genom att skapa och lägga till en anpassad parser för den plattformen. Tillägget använder en registerbaserad parserarkitektur som stöder både inbyggda och externa parsers, så att du kan lägga till plattformsstöd utan att ändra pipelinen för kärnmigrering.
Den här artikeln visar hur du skapar och lägger till en anpassad parser som omvandlar källintegreringsplattformens artefakter till migreringsagentens gemensamma IR-format (Intermediate Representation). Det här JSON-dokumentet beskriver artefakter på ett plattformsneutralt sätt och låter agenten bearbeta dina artefakter genom alla fem migreringsstegen.
Prerequisites
Kontrollera att du har följande resurser innan du börjar:
| Krav | Description |
|---|---|
| Node.js 18 eller senare | Kostnadsfri JavaScript-körningsmiljö med öppen källkod och plattformsoberoende |
| Visual Studio Code 1.85.0 eller senare | Lokal utvecklingsupplevelse |
| Visual Studio Code Extension API | API som gör att du kan skapa tillägg för Visual Studio Code |
| Tillägg för Azure Logic Apps Migration Agent | Obligatoriskt tillägg med migreringsagenten för Visual Studio Code |
| Azure Logic Apps (Standard) tillägg | Obligatoriskt beroende för tillägget Azure Logic Apps Migration Agent |
| Kunskaper om TypeScript | Ett starkt skrivet programmeringsspråk som bygger på JavaScript |
| Källintegreringsprojekt | Källintegreringsprojektet och artefaktfilerna för plattformen där du vill ha stöd |
Parser-arkitektur
Om du vill lägga till plattformsstöd till migreringsagenten använder du följande metoder:
| Approach | Rekommenderad | Description |
|---|---|---|
| Built-in parser: Bidra till GitHub-repository för tillägget | Yes | Lägg till en parser och kompetenser direkt i projektet. Fullständig integrering med alla fem migreringsstegen. Den här metoden rekommenderas eftersom inbyggda parsers levereras med tillägget, använder samma CI/CD-pipeline och har åtkomst till alla interna API:er. |
| Tillägg för extern parsning | No | Skapa ett separat Visual Studio Code tillägg som registrerar parsers via plugin-API:et. Omfattar endast discovertystadiet. |
Alla parsare omvandlar källplattformsartefakter till ett gemensamt IR-format som ett JSON-dokument. Migreringsagenten använder IR-formatet i planerings-, konverterings- och valideringsstegen. Parser-registret stöder både inbyggda och externa parser-plugin-program:
| Inbyggda tolkar | Plugin-program för extern parsning |
|---|---|
BizTalk (.btproj, .odx) BizTalk ( .btm, .xsd) BizTalk ( .btp) MuleSoft (stub) |
Parsare för partnerplattform Communityparsare |
Steg 1: Lägg till en inbyggd parser
Under
src/parsers/<your-platform>/skapar du en ny 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>.tsKontrollera att varje parser implementerar
IParsergränssnittet.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 */ } }; } }Registrera parsern i
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>()); }Tips
Som en fullständigt fungerande referens använder du BizTalk-parserimplementeringen i
src/parsers/biztalk/.
Steg 2: Lägga till plattformsspecifika färdigheter
Som Markdown-filer ger färdigheter AI-instruktioner för varje migreringssteg. De berättar för GitHub Copilot agenter hur de ska analysera, planera och konvertera artefakter för din specifika plattform.
Om du vill hitta de här färdigheterna kan du titta under resources/skills/ med plattformsspecifika varianter.
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)
Varje SKILL.md fil använder YAML-frontmatter följt av Markdown-innehåll, till exempel:
---
name: source-to-logic-apps-mapping
description: >-
Component mapping for \<*your-platform*\> components to their equivalents in Azure Logic Apps (Standard).
---
Steg 3: Mappa din plattform till Azure Logic Apps (Standard) komponenter
Se över följande tabell för att skapa adaptermappningar:
< din-plattform> komponent Azure Logic Apps-motsvarighet Inbyggd? Noteringar HTTP-lyssnare HTTP-utlösare Yes Built-in Databasanslutning Anslutningsapp för SQL Server Yes Built-in För varje färdighet i följande tabell skapar du den nödvändiga
<your-platform>/SKILL.mdkunskapsvarianten:Tips
Kopiera färdigheterna för en plattform som stöds, till exempel
biztalk/SKILL.md, som en startpunkt och anpassa innehållet för din plattform.GitHub Copilot-agent Färdighet Purpose @migration-analyserdetect-logical-groupsRegler för att gruppera artefakter i logiska flödesgrupper @migration-analyseranalyse-source-designRegler för att analysera källarkitektur och generera visualiseringar @migration-analyserdependency-and-decompilation-analysisRegler för att identifiera saknade beroenden Alla agenter source-to-logic-apps-mappingKomponent-för-komponent-mappning från källa till Azure Logic Apps @migration-plannerlogic-apps-planning-rulesRegler för att generera migreringsplaner @migration-converterconversion-task-plan-rulesRegler för att skapa konverteringsuppgifter @migration-converterscaffold-logic-apps-projectRegler för att skapa en struktur för standardlogikappen @migration-converterworkflow-json-generation-rulesRegler för att generera workflow.jsonfiler@migration-converterconnections-json-generation-rulesRegler för att generera connections.jsonfilen@migration-converterdotnet-local-functions-logic-appsRegler för att generera .NET lokala funktioner @migration-converterno-stubs-code-generationRegler för att säkerställa att den genererade koden är klar @migration-converterruntime-validation-and-testingRegler för exekveringsverifiering och testning @migration-convertercloud-deployment-and-testingRegler för distribution och testning av molnet
Steg 4: Registrera din plattform
src/types/platforms.tsLägg till din plattform i listan plattformar som stöds i filen.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>'], }, ];Lägg till identifieringslogik i
src/stages/discovery/PlatformDetector.tsfilen.Lägg till filens mönster i
src/stages/discovery/SourceFolderService.ts-filen.
Steg 5 (valfritt): Lägg till IR-exempel
Om du vill dokumentera hur plattformens artefakter mappas till IR-schemat lägger du till en docs/IRExamples_YourPlatform.md fil. Följande exempel finns och fungerar som mallar:
| Exempel | Description |
|---|---|
docs/IRExamples_BizTalk.md |
BizTalk-referens |
docs/IRExamples_MuleSoft.md |
MuleSoft-referens |
docs/IRExamples_Boomi.md |
Dell Boomi-exempel |
docs/IRExamples_IBMIIB.md |
IBM IIB/ACE-exempel |
docs/IRExamples_TIBCO.md |
TIBCO BusinessWorks-exempel |
docs/IRExamples_Workato.md |
Workato-exempel |
Alternativ: Tillägg för extern parsning
Externa parsertillägg täcker endast migreringsagentens identifieringssteg där agenten parsar dina källfiler. Kunskaper, plattformsidentifiering och AI-baserad planering och konvertering kräver att du direkt bidrar till extensionens GitHub-lagringsplats.
Men om du inte vill bidra direkt till lagringsplatsen skapar du ett separat Visual Studio Code tillägg som registrerar parsers med hjälp av api:et parse plugin:
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-plugin-API
| Metod eller egenskap | Description |
|---|---|
version |
Tilläggsversion (skrivskyddad) |
registerParser(parser, options?) |
Registrera en parser med registret. |
unregisterParser(id) |
Ta bort en registrerad parser. |
getParserRegistry() |
Direktåtkomst till parserregistret. |
hasParser(id) |
Kontrollera om en parser är registrerad. |
getExternalParsers() |
Hämta information om registrerade externa parsers. |