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: Azure Logic Apps (Standard)
Este artigo mostra como implementar um projeto de aplicação lógica Standard no Azure Logic Apps de inquilino único a partir do Visual Studio Code para a sua infraestrutura com ferramentas e processos de DevOps. Com base no facto de preferir o GitHub ou o Azure DevOps para implementação, escolha o caminho e as ferramentas que funcionam melhor para o seu cenário. Pode utilizar os exemplos incluídos que contêm projetos de aplicações lógicas de exemplo e exemplos de implementação do Azure com o GitHub ou o Azure DevOps. Para obter mais informações sobre o DevOps para inquilino único, veja Descrição geral da implementação do DevOps para o Azure Logic Apps de inquilino ú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 aplicação lógica Standard criado com o Visual Studio Code e a extensão Azure Logic Apps (Standard).
Se ainda não tiver configurado o projeto ou a infraestrutura da aplicação lógica, pode utilizar os projetos de exemplo incluídos para implementar uma aplicação e infraestrutura de exemplo, com base nas opções de origem e implementação que prefere utilizar. Para obter mais informações sobre estes projetos de exemplo e os recursos incluídos para executar a aplicação lógica de exemplo, veja Implementar a infraestrutura.
Se quiser implementar no Azure, precisa de um recurso da Aplicação Lógica (Standard) existente criado no Azure. Para criar rapidamente um recurso de aplicação lógica vazio, veja Criar fluxos de trabalho de aplicações lógicas baseadas num único inquilino – Portal.
Implementar recursos de infraestrutura
Se ainda não tiver configurado um projeto ou infraestrutura de aplicação lógica, pode utilizar os seguintes projetos de exemplo para implementar uma aplicação e infraestrutura de exemplo, com base nas opções de origem e implementação que prefere utilizar:
Exemplo do GitHub para o Azure Logic Apps de inquilino único
Este exemplo inclui um projeto de aplicação lógica de exemplo para o Azure Logic Apps de inquilino único e exemplos de implementação e GitHub Actions do Azure.
Exemplo do Azure DevOps para o Azure Logic Apps de inquilino único
Este exemplo inclui um projeto de aplicação lógica de exemplo para o Azure Logic Apps de inquilino único e exemplos de implementação do Azure e pipelines do Azure.
Ambos os exemplos incluem os seguintes recursos que uma aplicação lógica utiliza para executar.
Nome do recurso | Necessário | Descrição |
---|---|---|
Aplicação Lógica (Standard) | Sim | Este recurso do Azure contém os fluxos de trabalho que são executados no Azure Logic Apps de inquilino único. |
Funções Premium ou Serviço de Aplicações plano de alojamento | Sim | Este recurso do Azure especifica os recursos de alojamento a utilizar para executar a sua aplicação lógica, como computação, processamento, armazenamento, redes, etc. Importante: na experiência atual, o recurso da Aplicação Lógica (Standard) requer o plano de alojamento Padrão do Fluxo de Trabalho, que se baseia no plano de alojamento Das Funções Premium. |
Conta de armazenamento do Azure | Sim, para fluxos de trabalho com monitorização de estado e sem estado | Este recurso do Azure armazena os metadados, chaves para controlo de acesso, estado, entradas, saídas, histórico de execuções e outras informações sobre os fluxos de trabalho. |
Application Insights | Opcional | Este recurso do Azure fornece capacidades de monitorização para os seus fluxos de trabalho. |
Ligações de API | Opcional, se não existir nenhuma | Estes recursos do Azure definem quaisquer ligações de API geridas que os seus fluxos de trabalho utilizam para executar operações de conectores geridos, como Office 365, SharePoint, etc. Importante: no projeto da aplicação lógica, o ficheiro connections.json contém metadados, pontos finais e chaves para quaisquer ligações de API geridas e funções do Azure utilizadas pelos fluxos de trabalho. Para utilizar diferentes ligações e funções em cada ambiente, certifique-se de que parametriza o ficheiro connections.json e atualiza os pontos finais. Para obter mais informações, veja Recursos de ligação à API e políticas de acesso. |
Modelo do Azure Resource Manager (ARM) | Opcional | Este recurso do Azure define uma implementação de infraestrutura de linha de base que pode reutilizar ou exportar. |
Recursos de ligação à API e políticas de acesso
No Azure Logic Apps de inquilino único, todos os recursos de ligação geridos ou de API nos seus fluxos de trabalho necessitam de uma política de acesso associada. Esta política precisa da identidade da sua aplicação lógica para fornecer as permissões corretas para aceder à infraestrutura do conector gerido. Os projetos de exemplo incluídos incluem um modelo do ARM que inclui todos os recursos de infraestrutura necessários, incluindo estas políticas de acesso.
O diagrama seguinte mostra as dependências entre o projeto da aplicação lógica e os recursos de infraestrutura:
Implementar recursos de aplicações lógicas (implementação zip)
Depois de enviar o projeto da aplicação lógica para o repositório de origem, pode configurar pipelines de compilação e versão dentro ou fora do Azure que implementam aplicações lógicas na infraestrutura.
Criar o seu projeto
Para configurar um pipeline de compilação com base no tipo de projeto da aplicação lógica, conclua as ações correspondentes na tabela seguinte:
Tipo de projeto | Descrição e passos |
---|---|
Baseado em Nuget | A estrutura do projeto baseado em NuGet baseia-se no .NET Framework. Para criar estes projetos, certifique-se de que segue os passos de compilação do .NET Standard. Para obter mais informações, veja a documentação para Criar um pacote NuGet com o MSBuild. |
Baseado em pacotes | O projeto baseado em pacotes de extensões não é específico da linguagem e não requer passos de compilação específicos de linguagem. Pode utilizar qualquer método para zipar os ficheiros do projeto. Importante: certifique-se de que o ficheiro .zip contém os artefactos de compilação reais, incluindo todas as pastas de fluxo de trabalho, ficheiros de configuração como host.json, connections.json e quaisquer outros ficheiros relacionados. |
Antes da versão para o Azure
As ligações de API geridas no ficheiro connections.json do projeto de aplicação lógica são criadas especificamente para utilização local no Visual Studio Code. Antes de poder lançar os artefactos do projeto do Visual Studio Code para o Azure, tem de atualizar estes artefactos. Para utilizar as ligações de API geridas no Azure, tem de atualizar os respetivos métodos de autenticação para que estejam no formato correto a utilizar no Azure.
Atualizar tipo de autenticação
Para cada ligação de API gerida que utiliza a autenticação, tem de atualizar o objeto de autenticação do formato local no Visual Studio Code para o formato portal do Azure, conforme mostrado pelo primeiro e segundo exemplos de código, respetivamente:
Formato do Visual Studio Code
{
"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 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",
}
}
}
Criar ligações de API conforme necessário
Se estiver a implementar o fluxo de trabalho da aplicação lógica numa região ou subscrição do Azure diferente do ambiente de desenvolvimento local, também tem de se certificar de que cria estas ligações de API geridas antes da implementação. A implementação do modelo do Azure Resource Manager (modelo arm) é a forma mais fácil de criar ligações de API geridas.
O exemplo seguinte mostra uma definição de recurso de ligação da API gerida do SQL num modelo do 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 precisa de utilizar no objeto de propriedades para concluir a definição do recurso de ligação, pode utilizar 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 todas as informações necessárias para concluir a definição de recursos para esse conector específico. O exemplo seguinte mostra uma definição de recurso de exemplo para uma ligação gerida pelo 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, pode capturar e rever o rastreio de rede para quando criar uma ligação com o estruturador de fluxos de trabalho no Azure Logic Apps. Localize a PUT
chamada que é enviada para a API gerida do conector, conforme descrito anteriormente, e reveja o corpo do pedido para obter todas as informações necessárias.
Lançar para o Azure
Para configurar um pipeline de versão que é implementado no Azure, siga os passos associados para o GitHub, o Azure DevOps ou a CLI do Azure.
Nota
Atualmente, o Azure Logic Apps não suporta blocos de implementação do Azure.
Para implementações do GitHub, pode implementar a sua aplicação lógica com GitHub Actions, por exemplo, o GitHub Actions no Funções do Azure. Esta ação requer que transmita as seguintes informações:
- O nome da aplicação lógica a utilizar para implementação
- O ficheiro zip que contém os artefactos de compilação reais, incluindo todas as pastas de fluxo de trabalho, ficheiros de configuração como host.json, connections.json e quaisquer outros ficheiros relacionados.
- O seu perfil de publicação, que é utilizado 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, veja a documentação Entrega contínua com o GitHub Action .
Após o lançamento para o Azure
Cada ligação à API tem políticas de acesso. Após a conclusão da implementação zip, tem de abrir o recurso da aplicação lógica no portal do Azure e criar políticas de acesso para cada ligação à API para configurar permissões para a aplicação lógica implementada. A implementação zip não cria definições de aplicação para si. Assim, após a implementação, tem de criar estas definições de aplicação com base no ficheiro local.settings.json no seu projeto local do Visual Studio Code.
Passos seguintes
Gostaríamos de saber mais sobre as suas experiências com o Azure Logic Apps de inquilino único!
- Para erros ou problemas, crie os seus problemas no GitHub.
- Para perguntas, pedidos, comentários e outros comentários, utilize este formulário de comentários.