Configurar a implantação de DevOps para aplicativos lógicos padrão em aplicativos lógicos do Azure de locatário único
Aplica-se a: Aplicativos Lógicos do Azure (Padrão)
Este guia mostra principalmente como configurar a implantação de um projeto de aplicativo lógico padrão no Visual Studio Code para sua infraestrutura usando ferramentas e processos de DevOps. Se seu aplicativo lógico padrão existir no portal do Azure, você poderá baixar os arquivos de artefato do aplicativo lógico para uso com a implantação do DevOps. Com base em se você deseja usar o GitHub ou o Azure DevOps, escolha o caminho e as ferramentas que funcionam melhor para seu cenário de implantação.
Se você não tiver um aplicativo lógico Padrão, ainda poderá seguir este guia usando os projetos de aplicativo lógico padrão de exemplo vinculados, além de exemplos para implantação no Azure por meio do GitHub ou do Azure DevOps. Para obter mais informações, 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.
Visual Studio Code, que é gratuito, a extensão Azure Logic Apps (Standard) para Visual Studio Code e outros pré-requisitos relacionados.
O aplicativo lógico padrão para usar com suas ferramentas e processos de DevOps.
Você pode baixar os arquivos de artefato para seu recurso de aplicativo lógico padrão do portal do Azure ou pode usar um projeto de aplicativo lógico padrão criado com o Visual Studio Code e a extensão Azure Logic Apps (Standard) para Visual Studio Code.
Portal: O arquivo zip baixado contém arquivos de artefato de aplicativo lógico padrão, como workflow.json, connections.json, host.json e local.settings.json. Consulte Baixar arquivos de artefato do aplicativo lógico padrão do portal.
Código do Visual Studio: você precisa de um recurso de aplicativo lógico padrão vazio no portal do Azure para seu destino de implantação. Para criar rapidamente um recurso de aplicativo lógico padrão vazio, consulte Criar fluxos de trabalho de aplicativo lógico baseado em locatário único - Portal.
Se você não tiver um aplicativo lógico ou infraestrutura existente, poderá usar os projetos de aplicativo lógico padrão de exemplo vinculados para implantar um aplicativo lógico e uma infraestrutura de exemplo, com base se você deseja usar o GitHub ou o Azure DevOps. Para obter mais informações sobre os projetos de exemplo incluídos e recursos para executar o aplicativo lógico de exemplo, consulte Implantar recursos de infraestrutura.
Implantar recursos de infraestrutura
Para experimentar a experiência de implantação do DevOps sem a configuração prévia de infraestrutura ou aplicativo lógico padrão, use os seguintes projetos de exemplo para que você possa configurar a implantação para um exemplo de aplicativo lógico padrão e infraestrutura, com base se você deseja usar o GitHub ou o Azure DevOps:
Exemplo de GitHub para Aplicativos Lógicos do Azure de locatário único
Este exemplo inclui um exemplo de projeto de aplicativo lógico padrão, além de exemplos para implantação do Azure e Ações do GitHub.
Exemplo de DevOps do Azure para Aplicativos Lógicos do Azure de locatário único
Este exemplo inclui um exemplo de projeto de aplicativo lógico padrão, além de exemplos para implantação do Azure e Pipelines do Azure.
Ambos os exemplos incluem os seguintes recursos que um aplicativo lógico padrão 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. Importante: em seu projeto de aplicativo lógico, cada fluxo de trabalho tem um arquivo de workflow.json que contém a definição do fluxo de trabalho, que inclui as definições de gatilho e ação. |
Ligações da API | Sim, se existirem conexões de API | 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. |
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 de aplicativo lógico Standard requer o plano de hospedagem Workflow Standard, que se baseia no plano de hospedagem do Azure 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. |
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 de API gerenciado em seu fluxo 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.
Por exemplo, o diagrama a seguir mostra as dependências entre um projeto de aplicativo lógico padrão e recursos de infraestrutura:
Baixar artefatos de aplicativo lógico padrão do portal
Se seu aplicativo lógico padrão estiver no portal do Azure, você poderá baixar um arquivo zip que contém os arquivos de artefato do aplicativo lógico, incluindo workflow.json, connections.json, host.json e local.settings.json.
No portal do Azure, localize e abra seu recurso de aplicativo lógico padrão.
No menu do aplicativo lógico, selecione Visão geral.
Na barra de ferramentas Visão geral, selecione Baixar conteúdo do aplicativo. Na caixa de confirmação exibida, selecione Download.
Quando o prompt aparecer, selecione Salvar como, navegue até a pasta local desejada e selecione Salvar para salvar o arquivo zip.
Extraia o ficheiro zip.
No Visual Studio Code, abra a pasta que contém os arquivos descompactados.
Quando você abre a pasta, o Visual Studio Code cria automaticamente um espaço de trabalho.
Edite o conteúdo da pasta para incluir apenas as pastas e os arquivos necessários para a implantação usando o DevOps.
Quando terminar, salve as alterações.
Criar e implantar aplicativo lógico (zip deploy)
Você pode configurar pipelines de compilação e liberação dentro ou fora do Azure que implantam aplicativos lógicos padrão em sua infraestrutura.
Construa o seu projeto
Envie seu projeto de aplicativo lógico padrão e arquivos de artefato para seu repositório de origem, por exemplo, GitHub ou Azure DevOps.
Configure um pipeline de compilação com base no seu tipo de projeto de aplicativo lógico concluindo as seguintes ações correspondentes:
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. Compacte seus arquivos de projeto usando qualquer método que desejar.
Importante
Certifique-se de que o arquivo zip contenha os artefatos de construção reais do projeto no nível raiz, incluindo todas as pastas de fluxo de trabalho, arquivos de configuração, como host.json, connections.json, local.settings.json e quaisquer outros arquivos relacionados. Não adicione pastas extras nem coloque artefatos em pastas que ainda não existam na estrutura do projeto.
Por exemplo, a lista a seguir mostra um exemplo MyBuildArtifacts.zip estrutura do arquivo:
MyStatefulWorkflow1-Folder MyStatefulWorkflow2-Folder connections.json host.json local.settings.json
Antes de lançar 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 authentication
objeto 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"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 aplicativo lógico padrão em uma região ou assinatura do Azure 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
Para localizar os valores necessários para o properties
objeto para que você possa concluir a definição do recurso de conexão, use 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 connectionParameters
objeto, 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 do conector gerenciado, 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.
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, local.settings.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 Entrega contínua usando a Ação do GitHub.
Após a implantação no 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 padrão 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ê. Após a implantação, você deve criar essas configurações de aplicativo com base no arquivo local.settings.json em seu projeto de aplicativo lógico.
Conteúdos relacionados
Gostaríamos de saber mais sobre suas experiências com os Aplicativos Lógicos do Azure de locatário único!
- Para bugs ou problemas, crie seus problemas no GitHub.
- Para perguntas, solicitações, comentários e outros comentários, use este formulário de feedback.