Partilhar via


Configurar a implementação do DevOps para fluxos de trabalho de aplicações lógicas Standard no Azure Logic Apps de inquilino único

Aplica-se a: Aplicativos Lógicos do Azure (Padrão)

Este artigo mostra como implantar um projeto de aplicativo lógico padrão em Aplicativos Lógicos do Azure de locatário único do Visual Studio Code para sua infraestrutura usando ferramentas e processos de DevOps. Com base no fato de você preferir o GitHub ou o Azure DevOps para implantação, escolha o caminho e as ferramentas que funcionam melhor para o seu cenário. Você pode usar os exemplos incluídos que contêm exemplos de projetos de aplicativos lógicos, além de exemplos para implantação do Azure usando o GitHub ou o Azure DevOps. Para obter mais informações sobre DevOps para locatário único, consulte Visão geral da implantação do DevOps para Aplicativos Lógicos do Azure de locatário único.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa. Se não tiver uma subscrição do Azure, crie uma conta gratuita.

  • Um projeto de aplicativo lógico padrão criado com o Visual Studio Code e a extensão Azure Logic Apps (Standard).

    Se você ainda não configurou seu projeto ou infraestrutura de aplicativo lógico, poderá usar os projetos de exemplo incluídos para implantar um aplicativo e uma infraestrutura de exemplo, com base nas opções de origem e implantação que preferir usar. Para obter mais informações sobre esses projetos de exemplo e os recursos incluídos para executar o aplicativo lógico de exemplo, consulte Implantar sua infraestrutura.

  • Se quiser implantar no Azure, você precisa de um recurso existente do Aplicativo Lógico (Padrão) criado no Azure. Para criar rapidamente um recurso de aplicativo lógico vazio, consulte Criar fluxos de trabalho de aplicativo lógico baseado em locatário único - Portal.

Implantar recursos de infraestrutura

Se você ainda não configurou um projeto ou infraestrutura de aplicativo lógico, pode usar os seguintes projetos de exemplo para implantar um aplicativo e uma infraestrutura de exemplo, com base nas opções de origem e implantação que preferir usar:

Ambos os exemplos incluem os seguintes recursos que um aplicativo lógico usa para executar.

Nome do recurso Necessário Description
Aplicativo lógico (padrão) Sim Este recurso do Azure contém os fluxos de trabalho executados em Aplicativos Lógicos do Azure de locatário único.
Plano de hospedagem Functions Premium ou App Service Sim Este recurso do Azure especifica os recursos de hospedagem a serem usados para executar seu aplicativo lógico, como computação, processamento, armazenamento, rede e assim por diante.

Importante: Na experiência atual, o recurso Logic App (Standard) requer o plano de hospedagem Workflow Standard, que é baseado no plano de hospedagem Functions Premium.

Conta de armazenamento do Azure Sim, para fluxos de trabalho com e sem monitoração de estado Este recurso do Azure armazena os metadados, chaves para controle de acesso, estado, entradas, saídas, histórico de execução e outras informações sobre seus fluxos de trabalho.
Application Insights Opcional Este recurso do Azure fornece recursos de monitoramento para seus fluxos de trabalho.
Ligações da API Opcional, se não existir Esses recursos do Azure definem quaisquer conexões de API gerenciadas que seus fluxos de trabalho usam para executar operações de conector gerenciado, como Office 365, SharePoint e assim por diante.

Importante: em seu projeto de aplicativo lógico, o arquivo de connections.json contém metadados, pontos de extremidade e chaves para quaisquer conexões de API gerenciadas e funções do Azure que seus fluxos de trabalho usam. Para usar conexões e funções diferentes em cada ambiente, certifique-se de parametrizar o arquivo connections.json e atualizar os pontos de extremidade.

Para obter mais informações, consulte Recursos de conexão de API e políticas de acesso.

Modelo do Azure Resource Manager (ARM) Opcional Este recurso do Azure define uma implantação de infraestrutura de linha de base que você pode reutilizar ou exportar.

Recursos de conexão de API e políticas de acesso

Nos Aplicativos Lógicos do Azure de locatário único, cada recurso de conexão gerenciado ou de API em seus fluxos de trabalho requer uma política de acesso associada. Essa política precisa da identidade do seu aplicativo lógico para fornecer as permissões corretas para acessar a infraestrutura do conector gerenciado. Os projetos de exemplo incluídos incluem um modelo ARM que inclui todos os recursos de infraestrutura necessários, incluindo essas políticas de acesso.

O diagrama a seguir mostra as dependências entre seu projeto de aplicativo lógico e os recursos de infraestrutura:

Diagrama conceitual mostrando dependências de infraestrutura para um projeto de aplicativo lógico no modelo de Aplicativos Lógicos do Azure de locatário único.

Implantar recursos do aplicativo lógico (zip deploy)

Depois de enviar seu projeto de aplicativo lógico para o repositório de origem, você pode configurar pipelines de compilação e liberação dentro ou fora do Azure que implantam aplicativos lógicos na infraestrutura.

Construa o seu projeto

Para configurar um pipeline de compilação com base no tipo de projeto do aplicativo lógico, conclua as ações correspondentes na tabela a seguir:

Tipo de projeto Descrição e passos
Baseado em Nuget A estrutura do projeto baseado em NuGet é baseada no .NET Framework. Para criar esses projetos, certifique-se de seguir as etapas de compilação para o .NET Standard. Para obter mais informações, consulte a documentação para Criar um pacote NuGet usando o MSBuild.
Baseado em pacote O projeto baseado em pacote de extensão não é específico do idioma e não requer nenhuma etapa de compilação específica do idioma. Você pode usar qualquer método para compactar seus arquivos de projeto.

Importante: Certifique-se de que seu arquivo .zip contém os artefatos de compilação reais, incluindo todas as pastas de fluxo de trabalho, arquivos de configuração, como host.json, connections.json e quaisquer outros arquivos relacionados.

Antes do lançamento para o Azure

As conexões de API gerenciadas dentro do arquivo connections.json do projeto de aplicativo lógico são criadas especificamente para uso local no Visual Studio Code. Antes de liberar seus artefatos de projeto do Visual Studio Code para o Azure, você precisa atualizar esses artefatos. Para usar as conexões de API gerenciadas no Azure, você precisa atualizar seus métodos de autenticação para que eles estejam no formato correto para usar no Azure.

Atualizar tipo de autenticação

Para cada conexão de API gerenciada que usa autenticação, você precisa atualizar o objeto de autenticação do formato local no Visual Studio Code para o formato de portal do Azure, conforme mostrado pelo primeiro e segundo exemplos de código, respectivamente:

Formato de código do Visual Studio

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "Raw",
         "scheme": "Key",
         "parameter": "@appsetting('sql-connectionKey')"
      }
   }
}

Formato do portal do Azure

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "ManagedServiceIdentity",
      }
   }
}

Crie conexões de API conforme necessário

Se você estiver implantando seu fluxo de trabalho de aplicativo lógico em uma região do Azure ou assinatura diferente do seu ambiente de desenvolvimento local, também deverá criar essas conexões de API gerenciadas antes da implantação. A implantação do modelo do Azure Resource Manager (modelo ARM) é a maneira mais fácil de criar conexões de API gerenciadas.

O exemplo a seguir mostra uma definição de recurso de conexão de API gerenciada SQL em um modelo ARM:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Para localizar os valores que você precisa usar no objeto de propriedades para concluir a definição de recurso de conexão, você pode usar a seguinte API para um conector específico:

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

Na resposta, localize o objeto connectionParameters , que contém as informações necessárias para concluir a definição de recurso para esse conector específico. O exemplo a seguir mostra uma definição de recurso de exemplo para uma conexão gerenciada SQL:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Como alternativa, você pode capturar e revisar o rastreamento de rede para quando criar uma conexão usando o designer de fluxo de trabalho nos Aplicativos Lógicos do Azure. Encontre a PUT chamada enviada para a API gerenciada do conector, conforme descrito anteriormente, e examine o corpo da solicitação para obter todas as informações necessárias.

Definição de recursos de gateway de dados local

Se sua conexão usa um recurso de gateway de dados local, essa definição de recurso existe separadamente da definição de recurso do conector. Para exibir a definição de recursos do gateway de dados, consulte Automatizar a implantação de Aplicativos Lógicos do Azure usando modelos do Azure Resource Manager e Microsoft.Web connectionGateways.

Lançamento para o Azure

Para configurar um pipeline de versão que implanta no Azure, siga as etapas associadas para GitHub, Azure DevOps ou CLI do Azure.

Nota

Atualmente, os Aplicativos Lógicos do Azure não oferecem suporte a slots de implantação do Azure.

Para implantações do GitHub, você pode implantar seu aplicativo lógico usando as Ações do GitHub, por exemplo, as Ações do GitHub no Azure Functions. Esta ação requer que você passe pelas seguintes informações:

  • O nome do aplicativo lógico a ser usado para implantação
  • O arquivo zip que contém seus artefatos de compilação reais, incluindo todas as pastas de fluxo de trabalho, arquivos de configuração, como host.json, connections.json e quaisquer outros arquivos relacionados.
  • Seu perfil de publicação, que é usado para autenticação
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Para obter mais informações, consulte a Entrega contínua usando a documentação da Ação do GitHub.

Após o lançamento para o Azure

Cada conexão de API tem políticas de acesso. Após a conclusão da implantação zip, você deve abrir seu recurso de aplicativo lógico no portal do Azure e criar políticas de acesso para cada conexão de API para configurar permissões para o aplicativo lógico implantado. A implantação zip não cria configurações de aplicativo para você. Portanto, após a implantação, você deve criar essas configurações de aplicativo com base no arquivo local.settings.json em seu projeto local do Visual Studio Code.

Próximos passos

Gostaríamos de saber mais sobre suas experiências com os Aplicativos Lógicos do Azure de locatário único!