Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: App per la logica di Azure (Standard)
Note
Questa funzionalità di anteprima è soggetta alle Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.
Se l'organizzazione usa una piattaforma di integrazione che l'estensione App per la logica di Azure Migration Agent in Visual Studio Code attualmente non supporta, ad esempio TIBCO BusinessWorks, IBM IIB/ACE, Dell Boomi o Workato, è possibile estendere l'agente creando e aggiungendo un parser personalizzato per tale piattaforma. L'estensione usa un'architettura del parser basata sul Registro di sistema che supporta parser predefiniti ed esterni, in modo da poter aggiungere il supporto della piattaforma senza modificare la pipeline di migrazione principale.
Questo articolo illustra come creare e aggiungere un parser personalizzato che trasforma gli artefatti della piattaforma di integrazione di origine nel formato common Intermediate Representation (IR) dell'agente di migrazione. Questo documento JSON descrive gli artefatti in modo indipendente dalla piattaforma e consente all'agente di elaborare gli artefatti in tutte le 5 fasi di migrazione.
Prerequisiti
Prima di iniziare, assicurarsi di disporre delle risorse seguenti:
| Requisito | Descrizione |
|---|---|
| Node.js 18 o versione successiva | Ambiente di runtime JavaScript gratuito, open source e multipiattaforma |
| Visual Studio Code 1.85.0 o versione successiva | Esperienza di sviluppo locale |
| API di estensione Visual Studio Code | API che consente di compilare estensioni per Visual Studio Code |
| Estensione dell'agente di migrazione App per la logica di Azure | Estensione richiesta con l'agente di migrazione per Visual Studio Code |
| Estensione di App per la logica di Azure (Standard) | Dipendenza necessaria per l'estensione dell'agente di migrazione App per la logica di Azure |
| Familiarità con TypeScript | Linguaggio di programmazione fortemente tipizzato basato su JavaScript |
| Progetto di integrazione dell'origine | Il progetto di integrazione sorgente e i file di artefatto per la piattaforma per cui si desidera supporto |
Architettura del parser
Per aggiungere il supporto della piattaforma all'agente di migrazione, usare gli approcci seguenti:
| Avvicinarsi | Recommended | Descrizione |
|---|---|---|
| Parser integrato: contribuire al repository GitHub dell'estensione | Sì | Aggiungere un parser e competenze direttamente al progetto. Integrazione completa con tutte e cinque le fasi della migrazione. Questo approccio è consigliato perché i parser predefiniti vengono forniti con l'estensione, usano la stessa pipeline CI/CD e possono accedere a tutte le API interne. |
| Estensione del parser esterno | No | Creare un'estensione Visual Studio Code separata che registra i parser tramite l'API del plug-in. Copre solo la fase di Discovery. |
Tutti i parser trasformano gli artefatti della piattaforma di origine in un formato IR comune sotto forma di documento JSON. L'agente di migrazione usa il formato IR nelle fasi di pianificazione, conversione e convalida. Il Registro di sistema del parser supporta plug-in di parser predefiniti ed esterni:
| Parser predefiniti | Plug-in del parser esterno |
|---|---|
BizTalk (.btproj, .odx) BizTalk ( .btm, .xsd) BizTalk ( .btp) MuleSoft (stub) |
Parser della piattaforma partner Parser della comunità |
Passaggio 1: Aggiungere un parser predefinito
In
src/parsers/<your-platform>/creare un nuovo modulo parser.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>.tsAssicurarsi che ogni parser implementi l'interfaccia
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 */ } }; } }Registra il tuo 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>()); }Tip
Come riferimento pienamente funzionante, utilizzare l'implementazione del parser BizTalk in
src/parsers/biztalk/.
Passaggio 2: Aggiungere competenze specifiche della piattaforma
Come file Markdown, le competenze forniscono istruzioni di intelligenza artificiale per ogni fase di migrazione. Indicano agli agenti GitHub Copilot come analizzare, pianificare e convertire gli artefatti per la piattaforma specifica.
Per trovare queste competenze, cerca alla voce resources/skills/ con varianti specifiche per piattaforma.
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)
Ogni SKILL.md file usa frontmatter YAML seguito da contenuto Markdown, ad esempio:
---
name: source-to-logic-apps-mapping
description: >-
Component mapping for \<*your-platform*\> components to their equivalents in Azure Logic Apps (Standard).
---
Passaggio 3: Eseguire il mapping della piattaforma ai componenti App per la logica di Azure (Standard)
Esaminare la tabella seguente per creare le mappature degli adattatori:
< your-platform> componente App per la logica di Azure equivalente Nativo? Note Listener di HTTP Attivatore HTTP Sì Predefinito Connettore di database Connettore SQL Server Sì Predefinito Per ogni competenza nella tabella seguente, creare la variante di competenza richiesta
<your-platform>/SKILL.md:Tip
Copiare le competenze per una piattaforma supportata, ad esempio
biztalk/SKILL.md, come punto di partenza e adattarne il contenuto alla propria piattaforma.GitHub agente Copilot Competenza Purpose @migration-analyserdetect-logical-groupsRegole per il raggruppamento di elementi in gruppi di flussi logici @migration-analyseranalyse-source-designRegole per l'analisi dell'architettura di origine e la generazione di visualizzazioni @migration-analyserdependency-and-decompilation-analysisRegole per identificare le dipendenze mancanti Tutti gli agenti source-to-logic-apps-mappingMapping componente per componente dall'origine alle app per la logica Azure @migration-plannerlogic-apps-planning-rulesRegole per la generazione di piani di migrazione @migration-converterconversion-task-plan-rulesRegole per la creazione di attività di conversione @migration-converterscaffold-logic-apps-projectRegole per la generazione della struttura del progetto di app per la logica Standard @migration-converterworkflow-json-generation-rulesRegole per la generazione di workflow.jsonfile@migration-converterconnections-json-generation-rulesRegole per la generazione del connections.jsonfile@migration-converterdotnet-local-functions-logic-appsRegole per la generazione di .NET funzioni locali @migration-converterno-stubs-code-generationRegole per garantire che il codice generato sia completo @migration-converterruntime-validation-and-testingRegole per la convalida e il test di runtime @migration-convertercloud-deployment-and-testingRegole per la distribuzione e il test cloud
Passaggio 4: Registrare la piattaforma
src/types/platforms.tsNel file aggiungere la piattaforma all'elenco delle piattaforme supportate.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>'], }, ];Nel
src/stages/discovery/PlatformDetector.tsfile, aggiungi la logica di rilevamento.Nel file
src/stages/discovery/SourceFolderService.ts, aggiungere i pattern di file.
Passaggio 5 (facoltativo): Aggiungere esempi IR
Per documentare il modo in cui gli artefatti della piattaforma si mappano allo schema IR, aggiungi un file docs/IRExamples_YourPlatform.md. Gli esempi seguenti esistono e fungono da modelli:
| Esempio | Descrizione |
|---|---|
docs/IRExamples_BizTalk.md |
Informazioni di riferimento su BizTalk |
docs/IRExamples_MuleSoft.md |
Riferimento a MuleSoft |
docs/IRExamples_Boomi.md |
Esempio di Dell Boomi |
docs/IRExamples_IBMIIB.md |
Esempio IBM IIB/ACE |
docs/IRExamples_TIBCO.md |
Esempio di TIBCO BusinessWorks |
docs/IRExamples_Workato.md |
Esempio di Workato |
Alternativa: estensione del parser esterno
Le estensioni del parser esterno coprono solo la fase di individuazione dell'agente di migrazione in cui l'agente analizza i file di origine. Le competenze, il rilevamento della piattaforma e la pianificazione e la conversione basate sull'intelligenza artificiale richiedono di contribuire direttamente al repository di GitHub dell'estensione.
Tuttavia, se si preferisce non contribuire direttamente al repository, creare un'estensione Visual Studio Code separata che registra i parser usando l'API del plug-in di analisi:
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,
});
}
}
API del plug-in parser
| Metodo o proprietà | Descrizione |
|---|---|
version |
Versione dell'estensione (sola lettura) |
registerParser(parser, options?) |
Registrare un parser nel registro. |
unregisterParser(id) |
Rimuovere un parser registrato. |
getParserRegistry() |
Accedere direttamente al Registro di sistema del parser. |
hasParser(id) |
Controllare se un parser è registrato. |
getExternalParsers() |
Ottenere informazioni sui parser esterni registrati. |
Contenuti correlati
- automazione della migrazione da piattaforme di integrazione ad App per la logica di Azure