Adicionar mapas para transformações em fluxos de trabalho com os Aplicativos Lógicos do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Ações de fluxo de trabalho, como Transformar XML e Liquid, exigem um mapa para executar as tarefas. Por exemplo, a ação Transformar XML requer um mapa para converter XML entre formatos. Um mapa é um documento XML que usa a linguagem XSL Transformation para descrever como converter dados XML em outro formato e tem a extensão de nome de arquivo .xslt. Este mapa consiste em um esquema XML de origem como entrada e um esquema XML de destino como saída. Você pode definir uma transformação básica, como copiar um nome e um endereço de um documento para outro. Ou você pode criar transformações mais complexas usando as operações de mapa prontas para uso. Você pode usar funções internas diferentes para ajudar a manipular e controlar os dados, incluindo manipulações de cadeia de caracteres, atribuições condicionais, expressões aritméticas, formatadores do tempo de data e até mesmo construções em loop.
Por exemplo, suponha que você recebe regularmente pedidos ou faturas B2B de um cliente que usa o formato de data AnoMêsDia (AAAAMMDD). No entanto, sua organização usa o formato de data DiaMêsAno (DDMMAAAA). Você pode definir e usar um mapa para transformar o formato de data AAAAMMDD em MMDDAAAA antes de armazenar os detalhes do pedido ou da fatura no banco de dados de atividade do cliente.
Este guia mostra como adicionar um mapa para o fluxo de trabalho a ser usado. Você pode adicionar mapas à sua conta de integração vinculada ou, se tiver um aplicativo lógico Standard, poderá adicionar mapas diretamente ao recurso de aplicativo lógico.
Pré-requisitos
Uma conta e uma assinatura do Azure. Caso ainda não tenha uma assinatura, inscreva-se em uma conta gratuita do Azure.
O mapa que você deseja adicionar. Para criar mapas, você pode usar qualquer uma das seguintes ferramentas:
Visual Studio Code e a extensão Mapeador de Dados. Para chamar os mapas criados com o Mapeador de Dados do seu fluxo de trabalho, você deve usar a ação Operações do Mapeador de Dados chamada Transformar usando o Mapeador de Dados XSLT, não a ação Operações XML chamada Transformar XML. Para obter mais informações, consulte Criar mapas para transformação de dados com o Visual Studio Code.
Visual Studio 2019 e a Extensão Ferramentas de Enterprise Integration dos Aplicativos Lógicos do Microsoft Azure.
Visual Studio 2015 e a extensão de Ferramentas do Enterprise Integration dos Aplicativos Lógicos do Microsoft Azure para Visual Studio 2015 2.0.
Observação
Não instale a extensão Ferramentas de Enterprise Integration dos Aplicativos Lógicos do Microsoft Azure junto com a extensão BizTalk Server. Ter as duas extensões pode produzir um comportamento inesperado. Verifique se você tem apenas uma dessas extensões instaladas.
Em monitores de alta resolução, você pode ter um problema de exibição com o designer de mapa no Visual Studio. Para resolver esse problema de exibição, reinicie o Visual Studio no modo sem reconhecimento de DPI ou adicione o valor de registro DPIUNAWARE.
Para obter mais informações, examine a seção Criar mapas neste artigo.
Dependendo do trabalho ser no fluxo de trabalho de consumo ou no aplicativo lógico Standard, você precisará de um recurso de conta de integração. Normalmente, esse recurso é necessário ao definir e armazenar artefatos para uso na integração corporativa e nos fluxos de trabalho de B2B.
Importante
Para trabalhar em conjunto, a conta de integração e o recurso de aplicativo lógico devem existir na mesma assinatura do Azure e na região do Azure.
Se você estiver trabalhando em um fluxo de trabalho de aplicativo lógico de Consumo, precisará de uma conta de integração vinculada ao recurso de aplicativo lógico.
Se você estiver trabalhando em um fluxo de trabalho de aplicativo lógico Standard, poderá vincular a conta de integração ao recurso do aplicativo lógico, carregar mapas diretamente para o recurso do aplicativo lógico ou ambos, com base nos seguintes cenários:
Se você já tiver uma conta de integração com os artefatos que precisa ou deseja usar, vincule essa conta a diversos recursos de aplicativo lógico Standard nos quais deseja usar os artefatos. Dessa forma, não será necessário carregar mapas em cada aplicativo lógico individual. Para obter mais informações, examine Vincular o recurso do aplicativo lógico à conta de integração.
O conector interno Liquid permite selecionar um mapa já carregado no recurso de aplicativo lógico ou em uma conta de integração vinculada, mas não em ambos.
Portanto, se você não tiver ou precisar de uma conta de integração, poderá usar a opção de carregamento. Caso contrário, use a opção de vinculação. É possível usar esses artefatos em todos os fluxos de trabalho secundários dentro do mesmo recurso de aplicativo lógico.
Os fluxos de trabalho Standard e de consumo oferecem suporte a mapas XSLT que fazem referência a assemblies externos, o que permite chamar diretamente o código .NET personalizado dos mapas XSLT. Para dar suporte a esse recurso, os fluxos de trabalho de consumo também têm os seguintes requisitos:
Você precisa de um assembly de 64 bits. O serviço de transformação executa um processo de 64 bits, portanto, não há suporte para assemblies de 32 bits. Se você tiver o código-fonte de um assembly de 32 bits, recompile o código em um assembly de 64 bits. Se você não tiver o código-fonte, mas tiver obtido o binário de um provedor de terceiros, obtenha a versão de 64 bits desse provedor. Por exemplo, alguns fornecedores oferecem assemblies em pacotes que têm versões de 32 e 64 bits. Se você tiver a opção, use a versão de 64 bits.
É necessário carregar o assembly e o mapa em uma ordem específica a sua conta de integração. Carregue o assembly primeiro e, em seguida, carregue o mapa que faz referência ao assembly.
Se o assembly ou o mapa tiver 2 MB ou menos, será possível adicioná-lo na sua conta de integração diretamente do portal do Azure.
Se o assembly tiver mais que 2 MB, mas não for maior que o limite de tamanho de assemblies, você precisará de uma conta de Armazenamento do Azure e de um contêiner de blobs para carregar o esquema. Depois, você poderá fornecer esse local de contêiner ao adicionar o assembly à conta de integração. Para esta tarefa, a seguinte tabela descreve os itens de que você precisa:
Item Descrição Conta de Armazenamento do Azure Nessa conta, crie um contêiner de blob do Azure para o assembly. Saiba como criar uma conta de armazenamento. Contêiner de blob Nesse contêiner, você pode carregar seu assembly. Você também precisa da localização da URI do conteúdo desse contêiner ao adicionar o assembly à sua conta de integração. Saiba como criar um contêiner de blob. Gerenciador de Armazenamento do Azure Essa ferramenta ajuda a gerenciar de maneira mais fácil as contas de armazenamento e contêineres de blob. Para usar o Gerenciador de Armazenamento, baixe e instale o Gerenciador de Armazenamento do Azure. Em seguida, conecte o Gerenciador de Armazenamento à sua conta de armazenamento seguindo as etapas em Introdução ao Gerenciador de Armazenamento. Para saber mais, veja Início Rápido: Criar um blob no armazenamento de objetos com o Gerenciador de Armazenamento do Azure.
Ou, no portal do Azure, selecione a conta de armazenamento. No menu da sua conta de armazenamento, selecione Gerenciador de Armazenamento.No momento, para adicionar mapas maiores, use a API REST dos Aplicativos Lógicos do Azure – Mapas. Para os fluxos de trabalho Standard, a API REST dos Aplicativos Lógicos do Azure não está disponível no momento.
Limitações
Os limites se aplicam ao número de artefatos, como mapas, por conta de integração. Para obter mais informações, confira Limites e informações de configuração dos Aplicativos Lógicos do Azure.
Considerando se você está trabalhando em um fluxo de trabalho de aplicativo lógico de Consumo ou Standard, as seguintes limitações se aplicam:
Fluxo de trabalho Standard
Suporte a XSLT 1.0, 2.0 e 3.0.
Não há limite para o tamanho dos arquivo de mapa.
fluxo de trabalho de Consumo
Os Aplicativos Lógicos do Azure alocam memória finita para processar transformações XML. Se você criar fluxos de trabalho de Consumo e as transformações de mapa ou de conteúdo tiverem alto consumo de memória, essas transformações poderão falhar, resultando em erros de memória insuficiente. Para evitar esse cenário, considere estas opções:
Edite seus mapas ou conteúdos para reduzir o consumo de memória.
Crie fluxos de trabalho de aplicativos lógicos padrão, que são executados no Aplicativos Lógicos do Azure de locatário único e oferecem opções dedicadas e flexíveis para recursos de computação e memória.
Criar mapas
Você pode criar mapas usando o Visual Studio Code com a extensão Mapeador de Dados ou o Visual Studio com a extensão Ferramentas de Enterprise Integration dos Aplicativos Lógicos do Microsoft Azure.
Visual Studio Code
Ao criar mapas usando o Visual Studio Code e a extensão Mapeador de Dados, você pode chamar esses mapas do seu fluxo de trabalho, mas apenas com a ação Operações do Mapeador de Dados chamada Transformar usando o Mapeador de Dados XSLT, não a ação Operações XML chamada Transformar XML. Para obter mais informações, consulte Criar mapas para transformação de dados com o Visual Studio Code.
Visual Studio
Ao criar mapas usando o Visual Studio, você precisará criar um projeto de integração com qualquer uma das seguintes ferramentas:
Visual Studio 2019 e a Extensão Ferramentas de Enterprise Integration dos Aplicativos Lógicos do Microsoft Azure
Visual Studio 2015 e a Extensão Ferramentas de Enterprise Integration dos Aplicativos Lógicos do Microsoft Azure para Visual Studio 2015 2.0.
No projeto de integração, é possível criar um arquivo de mapa de integração, que permite mapear visualmente os itens entre dois arquivos de esquema XML. Essas ferramentas oferecem as seguintes funcionalidades de mapa:
Você trabalha com uma representação gráfica do mapa, que mostra todas as relações e os links que cria.
Você pode fazer uma cópia de dados direta entre os esquemas XML que você usa para criar o mapa. O SDK do Enterprise Integration para Visual Studio inclui um mapeador que torna essa tarefa tão simples quanto desenhar uma linha que conecta os elementos no esquema XML de origem com suas contrapartes no esquema XML de destino.
Operações ou funções para vários mapas estão disponíveis, incluindo funções de cadeia de caracteres, funções de data e hora e assim por diante.
Para adicionar uma mensagem XML de exemplo, você pode usar o recurso de teste de mapa. Com um simples gesto, você pode testar o mapa que você criou e ver a saída gerada.
Depois de criar o projeto, você obtém um documento XSLT.
O mapa também deve ter esses atributos e uma seção CDATA
que contém a chamada para o código do assembly:
name
é o nome de assembly personalizado.namespace
é o namespace em seu assembly que inclui o código personalizado.
O exemplo a seguir mostra um mapa que faz referência a um assembly chamado XslUtilitiesLib e chama o método circumference
do assembly.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
<msxsl:assembly name="XsltHelperLib"/>
<msxsl:using namespace="XsltHelpers"/>
<![CDATA[public double circumference(int radius){ XsltHelper helper = new XsltHelper(); return helper.circumference(radius); }]]>
</msxsl:script>
<xsl:template match="data">
<circles>
<xsl:for-each select="circle">
<circle>
<xsl:copy-of select="node()"/>
<circumference>
<xsl:value-of select="user:circumference(radius)"/>
</circumference>
</circle>
</xsl:for-each>
</circles>
</xsl:template>
</xsl:stylesheet>
Adicionar assemblies referenciados
Um recurso de aplicativo de lógica de consumo dá suporte à referência de assemblies externos a partir de mapas, o que permite chamar diretamente o código .NET personalizado a partir de mapas XSLT.
Na caixa de pesquisa do portal do Azure, digite contas de integração e selecione Contas de integração.
Selecione a conta de integração a qual você quer adicionar seu assembly.
No menu da conta de integração, selecione Visão Geral. Em Configurações, selecione Assemblies.
Na barra de ferramentas do painel Assemblies, selecione Adicionar.
Com base no tamanho do arquivo de assembly, siga as etapas para carregar um assembly que tenha até 2 MB ou mais de 2 MB, mas até 8 MB. Para obter os limites das quantidades de assembly nas contas de integração, confira Limites e configuração para Aplicativos Lógicos do Azure.
Observação
Se você alterar o assembly, também deverá atualizar o mapa, mesmo que ele não tenha alterações.
Adicionar assemblies de até 2 MB
Em Adicionar Assembly, insira um nome para o assembly. Mantenha Arquivo pequeno marcado. Ao lado da caixa Assembly, escolha o ícone de pasta. Localize e selecione o assembly que você está carregando.
Na propriedade Nome do Assembly, o nome do arquivo do assembly aparecerá automaticamente depois de selecioná-lo.
Quando terminar, selecione OK.
Depois que o arquivo de assembly terminar de carregar, ele aparecerá na lista Assemblies. No painel Visão geral da conta de integração, em Artefatos, o assembly carregado também é exibido.
Adicionar assemblies com mais de 2 MB
Para adicionar assemblies maiores, você pode carregar seu assembly em um contêiner de blob do Azure na conta de armazenamento do Azure. As etapas para adicionar assemblies diferem dependendo se o contêiner de blobs tem acesso de leitura público. Primeiro, verifique se o contêiner de blobs tem acesso de leitura público seguindo estas etapas: Definir o nível de acesso público do contêiner de blobs
Verificar o nível de acesso do contêiner
Abra o Gerenciador de Armazenamento do Azure. Na janela do Explorer, expanda sua assinatura do Azure, caso ainda não esteja expandida.
Expanda Contas de armazenamento> {sua conta de armazenamento} >Contêineres de Blob. Selecione seu contêiner de blob.
No menu de atalho do seu contêiner de blob, selecione Definir o nível de acesso público.
Caso o contêiner de blob tenha pelo menos o acesso público, clique em Cancelar e siga estas etapas posteriormente na página: upload para contêineres com acesso público
Caso o contêiner de blob não tenha acesso público, clique em Cancelar e siga estas etapas posteriormente na página: upload para contêineres sem acesso público
Carregar nos contêineres com acesso público
Carregue o assembly na sua conta de armazenamento. Na janela do lado direito, selecione Carregar.
Depois de terminar de carregar, selecione o assembly carregado. Na barra de ferramentas, escolha Copiar URL para copiar a URL do assembly.
Retorne ao portal do Azure onde o painel Adicionar assembly está aberto. Digite um nome para o seu assembly. Escolha Arquivo grande (com mais de 2 MB) .
A caixa do URI de conteúdo agora é exibida, em vez da caixa Assembly.
Na caixa URI de conteúdo, cole a URL do seu assembly. Conclua a adição do assembly.
Depois que o arquivo de assembly terminar de carregar, ele aparecerá na lista Assemblies. No painel Visão geral da conta de integração, em Artefatos, o assembly carregado também é exibido.
Carregar nos contêineres sem acesso público
Carregue o assembly na sua conta de armazenamento. Na janela do lado direito, selecione Carregar.
Depois de terminar de carregar, gere uma assinatura de acesso compartilhado (SAS) para o assembly. No menu de atalho do assembly, selecione Obter assinatura de acesso compartilhado.
No painel Assinatura de acesso compartilhado, selecione Gerar URI de assinatura de acesso compartilhado no nível do contêiner>Criar. Depois que a URL de SAS for gerada, ao lado da caixa URL, escolha Copiar.
Retorne ao portal do Azure onde o painel Adicionar assembly está aberto. Digite um nome para o seu assembly. Escolha Arquivo grande (com mais de 2 MB) .
A caixa do URI de conteúdo agora é exibida, em vez da caixa Assembly.
Na caixa URI de conteúdo, cole o URI de SAS gerado anteriormente. Conclua a adição do assembly.
Depois que o arquivo de assembly terminar de carregar, ele aparecerá na lista Assemblies. No painel Visão geral da conta de integração, em Artefatos, o assembly carregado também é exibido.
Adicionar mapas
Se você estiver trabalhando com um fluxo de trabalho de Consumo, adicione o mapa a uma conta de integração vinculada.
Se você estiver trabalhando com um fluxo de trabalho Standard, haverá as seguintes opções:
Adicionar o mapa a uma conta de integração vinculada. Você pode compartilhar o mapa e a conta de integração entre vários recursos de aplicativo lógico Standard e os respectivos fluxos de trabalho filho.
Adicionar o mapa diretamente ao recurso de aplicativo lógico. No entanto, você só pode compartilhar esse mapa entre fluxos de trabalho filho no mesmo recurso de aplicativo lógico.
Adicionar o mapa à conta de integração
No portal do Azure, entre com suas credenciais da conta do Azure.
Na caixa de pesquisa do portal do Azure, insira contas de integração e selecione Contas de integração.
Localize e selecione a conta de integração.
No menu de navegação da conta de integração, em Configurações, selecione Mapas.
Na barra de ferramentas do painel Mapas, selecione Adicionar.
Para fluxos de trabalho de Consumo, com base no tamanho do arquivo de mapa, siga as etapas para carregar um mapa que tenha até 2 MB ou mais de 2 MB.
Adicionar mapas de até 2 MB
No painel Adicionar mapa, insira um nome exclusivo para o mapa.
Em Tipo de mapa, selecione o tipo, por exemplo: Liquid, XSLT, XSLT 2.0 ou XSLT 3.0.
Ao lado da caixa Mapa, escolha o ícone de pasta. Selecione o mapa a ser carregado.
Se você deixou a propriedade Nome vazia, o nome de arquivo do mapa aparece automaticamente nesta propriedade depois de selecionar o arquivo de mapa.
Quando terminar, selecione OK.
Depois que o arquivo de mapa termina de carregar, o mapa aparece na lista Mapas. No página Visão geral da conta de integração, em Artefatos, o mapa carregado também é exibido.
Adicionar mapas com mais de 2 MB
Para adicionar mapas maiores para fluxos de trabalho de Consumo, use a API REST dos Aplicativos Lógicos do Azure – Mapas.
Adicionar mapa ao recurso de aplicativo lógico Standard
As etapas a seguir se aplicam somente se você quiser adicionar um mapa diretamente ao recurso do aplicativo lógico Standard. Do contrário, adicione o mapa à conta de integração.
Portal do Azure
No menu do recurso do aplicativo lógico, em Artefatos, selecione Mapas.
Na barra de ferramentas do painel Mapas, selecione Adicionar.
No painel Adicionar mapa, insira um nome único para seu mapa e inclua o nome da extensão .xslt.
Ao lado da caixa Mapa, escolha o ícone de pasta. Selecione o mapa a ser carregado.
Quando terminar, selecione OK.
Depois que o arquivo de mapa termina de carregar, o mapa aparece na lista Mapas. No página Visão geral da conta de integração, em Artefatos, o mapa carregado também é exibido.
Visual Studio Code
Na estrutura do seu projeto de aplicativo lógico, abra a pasta Artefatos e, em seguida, a pasta Mapas.
Na pasta Mapas, adicione seu mapa.
Editar um mapa
Para atualizar um mapa existente, você precisa carregar um novo arquivo de mapa com as alterações desejadas. No entanto, você pode baixar primeiro o mapa existente para edição.
No portal do Azure, abra a conta de integração, caso ainda não esteja aberta.
No menu da conta de integração, em Configurações, selecione Mapas.
Após a abertura da página Mapas, selecione o mapa. Para baixar e editar o mapa primeiro, na barra de ferramentas do painel Mapas, selecione Baixar e salve o mapa.
Quando tudo estiver pronto para carregar o mapa atualizado, no painel Mapas, selecione o mapa que deseja atualizar. Na barra de ferramentas do painel Mapas, selecione Atualizar.
Localize e selecione o mapa atualizado que deseja carregar.
Depois que o arquivo de mapa termina de carregar, o mapa atualizado aparece na lista Mapas.
Excluir uma chave
No portal do Azure, abra a conta de integração, caso ainda não esteja aberta.
No menu da conta de integração, em Configurações, selecione Mapas.
Após a abertura do painel Mapas, selecione o mapa e clique em Excluir.
Para confirmar que deseja excluir o mapa, clique em Sim.