Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Aplicativos Lógicos do Azure (Standard)
Note
Este recurso de visualização está sujeito aos Termos de Uso Complementares para Visualizações do Microsoft Azure.
Se sua organização usar uma plataforma de integração à qual a extensão do agente de migração Aplicativos Lógicos do Azure no Visual Studio Code atualmente não oferece suporte, como TIBCO BusinessWorks, IBM IIB/ACE, Dell Boomi ou Workato, você pode estender o agente criando e adicionando um analisador personalizado para essa plataforma. A extensão usa uma arquitetura de analisador baseada em registro que dá suporte a analisadores internos e externos, para que você possa adicionar suporte à plataforma sem modificar o pipeline de migração principal.
Este artigo mostra como criar e adicionar um analisador personalizado que transforma os artefatos da plataforma de integração de origem no formato comum de Representação Intermediária (IR) do agente de migração. Este documento JSON descreve artefatos de forma neutra em plataforma e permite que o agente processe seus artefatos em todos os cinco estágios de migração.
Pré-requisitos
Antes de começar, verifique se você tem os seguintes recursos:
| Requirement | Description |
|---|---|
| Node.js 18 ou posterior | Ambiente de runtime javaScript gratuito, de software livre e multiplataforma |
| Visual Studio Code 1.85.0 ou posterior | Experiência de desenvolvimento local |
| Visual Studio Code API de Extensão | API que permite criar extensões para Visual Studio Code |
| extensão do Agente de Migração do Aplicativos Lógicos do Azure | Extensão necessária com agente de migração para Visual Studio Code |
| Extensão Aplicativos Lógicos do Azure (Standard) | Dependência necessária para a extensão do Agente de Migração Aplicativos Lógicos do Azure |
| Familiaridade com TypeScript | Uma linguagem de programação fortemente tipada que se baseia no JavaScript |
| Projeto de integração de origem | O projeto de integração da fonte e os arquivos de artefatos para a plataforma para a qual você precisa de suporte |
Arquitetura do analisador sintático
Para adicionar suporte de plataforma ao agente de migração, use as seguintes abordagens:
| Approach | Recomendado | Description |
|---|---|---|
| Compilador embutido: contribua para o repositório GitHub do extension | Sim | Adicione um analisador e habilidades diretamente ao projeto. Integração completa com todos os cinco estágios de migração. Essa abordagem é recomendada porque os analisadores sintáticos internos vêm junto com a extensão, utilizam o mesmo pipeline de CI/CD e podem acessar todas as APIs internas. |
| Extensão do analisador externo | No | Crie uma extensão Visual Studio Code separada que registre analisadores por meio da API de plug-in. Abrange apenas o estágio de descoberta. |
Todos os analisadores transformam artefatos da plataforma de origem em um formato IR comum como um documento JSON. O agente de migração usa o formato IR nos estágios de planejamento, conversão e validação. O registro do analisador dá suporte a plug-ins internos e externos do analisador:
| Analisadores incorporados | Plugins de parsers externos |
|---|---|
BizTalk (.btproj, .odx) BizTalk ( .btm, .xsd) BizTalk ( .btp) MuleSoft (stub) |
Analisadores de plataformas parceiras Analisadores de comunidade |
Etapa 1: Adicionar um analisador interno
Em
src/parsers/<your-platform>/, crie um novo módulo analisador.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>.tsVerifique se cada analisador implementa a
IParserinterface.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 */ } }; } }Registre o analisador em
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>()); }Dica
Como uma referência completamente funcional, use a implementação do analisador BizTalk em
src/parsers/biztalk/.
Etapa 2: Adicionar habilidades específicas da plataforma
Como arquivos markdown, as habilidades fornecem instruções de IA para cada estágio de migração. Eles informam aos agentes GitHub Copilot como analisar, planejar e converter artefatos para sua plataforma específica.
Para encontrar essas habilidades, procure em resources/skills/ com variantes específicas da plataforma.
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)
Cada SKILL.md arquivo usa o frontmatter YAML seguido pelo conteúdo do Markdown, por exemplo:
---
name: source-to-logic-apps-mapping
description: >-
Component mapping for \<*your-platform*\> components to their equivalents in Azure Logic Apps (Standard).
---
Etapa 3: Mapear sua plataforma para componentes Aplicativos Lógicos do Azure (Standard)
Examine a tabela a seguir para criar os mapeamentos do adaptador:
< sua plataforma> Componente Aplicativos Lógicos do Azure equivalente Nativo? Notes Escutador HTTP Gatilho HTTP Sim Interna Conector de banco de dados Conector do SQL Server Sim Interna Para cada habilidade na tabela a seguir, crie a variante de habilidade necessária
<your-platform>/SKILL.md:Dica
Copie as habilidades para uma plataforma com suporte, como
biztalk/SKILL.md, como ponto de partida e adapte o conteúdo para sua plataforma.Agente do GitHub Copilot Skill Purpose @migration-analyserdetect-logical-groupsRegras para agrupar artefatos em grupos de fluxo lógico @migration-analyseranalyse-source-designRegras para analisar a arquitetura de origem e gerar visualizações @migration-analyserdependency-and-decompilation-analysisRegras para identificar dependências ausentes Todos os agentes source-to-logic-apps-mappingMapeamento componente por componente da origem para o Aplicativos Lógicos do Azure @migration-plannerlogic-apps-planning-rulesRegras para gerar planos de migração @migration-converterconversion-task-plan-rulesRegras para criar tarefas de conversão @migration-converterscaffold-logic-apps-projectRegras para estruturar o scaffolding da estrutura de projeto do aplicativo lógico Standard @migration-converterworkflow-json-generation-rulesRegras para gerar workflow.jsonarquivos@migration-converterconnections-json-generation-rulesRegras para gerar o connections.jsonarquivo@migration-converterdotnet-local-functions-logic-appsRegras para gerar .NET funções locais @migration-converterno-stubs-code-generationRegras para garantir que o código gerado seja concluído @migration-converterruntime-validation-and-testingRegras para validação e teste de runtime @migration-convertercloud-deployment-and-testingRegras para implantação e teste de nuvem
Etapa 4: Registrar sua plataforma
No arquivo
src/types/platforms.ts, adicione sua plataforma à lista de plataformas suportadas.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>'], }, ];No arquivo
src/stages/discovery/PlatformDetector.ts, adicione a lógica de detecção.No arquivo
src/stages/discovery/SourceFolderService.ts, adicione os padrões de arquivo.
Etapa 5 (opcional): adicionar exemplos de IR
Para documentar como os artefatos da plataforma são mapeados para o esquema IR, adicione um arquivo docs/IRExamples_YourPlatform.md. Os exemplos a seguir existem e servem como modelos:
| Exemplo | Description |
|---|---|
docs/IRExamples_BizTalk.md |
Referência do BizTalk |
docs/IRExamples_MuleSoft.md |
Referência do MuleSoft |
docs/IRExamples_Boomi.md |
Exemplo de Dell Boomi |
docs/IRExamples_IBMIIB.md |
Exemplo de IBM IIB/ACE |
docs/IRExamples_TIBCO.md |
Exemplo de TIBCO BusinessWorks |
docs/IRExamples_Workato.md |
Exemplo de Workato |
Alternativa: Extensão do analisador externo
As extensões do analisador externo abrangem apenas o estágio de descoberta do agente de migração em que o agente analisa seus arquivos de origem. Habilidades, detecção de plataforma e planejamento e conversão alimentados por IA exigem que você contribua diretamente para o repositório do GitHub da extensão.
No entanto, se você preferir não contribuir diretamente com o repositório, crie uma extensão Visual Studio Code separada que registre analisadores usando a API do plug-in parse:
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 de plug-in do analisador
| Método ou propriedade | Description |
|---|---|
version |
Versão da extensão (somente leitura) |
registerParser(parser, options?) |
Registre um analisador com o registro. |
unregisterParser(id) |
Remova um analisador registrado. |
getParserRegistry() |
Acesse diretamente o registro do analisador. |
hasParser(id) |
Verifique se um analisador está registrado. |
getExternalParsers() |
Obtenha informações sobre analisadores externos registrados. |
Conteúdo relacionado
- Automação de migração de plataformas de integração para Aplicativos Lógicos do Azure