Configurar a implantação do DevOps para fluxos de trabalho de aplicativos lógicos Standard nos Aplicativos Lógicos do Azure com locatário único
Aplica-se a: Aplicativos Lógicos do Azure (Standard)
Este painel mostra principalmente como configurar a implantação para um projeto de aplicativo lógico Standard no Visual Studio Code para sua infraestrutura usando ferramentas e processos do DevOps. Se o seu aplicativo lógico Standard existir no portal do Azure, você poderá baixar os arquivos de artefato do seu aplicativo lógico para usar 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 o seu cenário de implantação.
Se você não tiver um aplicativo lógico Standard, ainda poderá seguir esse guia usando os projetos de aplicativo lógico Standard de amostra vinculados mais exemplos para implantação no Azure por meio do GitHub ou do Azure DevOps. Para obter mais informações, revise 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 assinatura ativa. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.
O aplicativo lógico Standard para usar com suas ferramentas e processos do DevOps.
Você pode baixar os arquivos de artefato do recurso de aplicativo lógico Standard do portal do Azure ou usar um projeto de aplicativo lógico Standard criado com Visual Studio Code e a extensão Aplicativos Lógicos do Azure (Standard) para Visual Studio Code.
Portal: O arquivo zip baixado contém arquivos de artefato do aplicativo lógico Standard, como workflow.json, connections.json, host.json e local.settings.json. Confira Baixar arquivos de artefato do aplicativo lógico Standard do portal.
Visual Studio Code: Você precisa de um recurso de aplicativo lógico Standard vazio no portal do Azure para seu destino de implantação. Para criar rapidamente um recurso de aplicativo lógico Standard vazio, revise Criar fluxos de trabalho de aplicativo lógico com base 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 Standard de amostra vinculados para implantar um exemplo de aplicativo lógico e infraestrutura, com base em se você deseja usar o GitHub ou o Azure DevOps. Para obter mais informações sobre os projetos de amostra incluídos e recursos para executar o aplicativo lógico de exemplo, revise Implantar recursos de infraestrutura.
Implantar recursos de infraestrutura
Para experimentar a experiência de implantação do DevOps sem configuração prévia de aplicativo lógico Standard ou infraestrutura, use os seguintes projetos de amostra para que você possa configurar a implantação para um exemplo de aplicativo lógico Standard e infraestrutura, com base em se você deseja usar o GitHub ou o Azure DevOps:
Amostra do GitHub para Aplicativos Lógicos do Azure de locatário único
Esta amostra inclui um projeto de aplicativo lógico Standard de exemplo mais exemplos para implantação no Azure e GitHub Actions.
Amostra do Azure DevOps para Aplicativos Lógicos do Azure de locatário único
Essa amostra inclui um projeto de aplicativo lógico Standard de exemplo mais exemplos para implantação no Azure e Azure Pipelines.
Ambas as amostras incluem os seguintes recursos que um aplicativo lógico Standard usa para executar:
Nome do recurso | Necessária | Descrição |
---|---|---|
Aplicativo lógico Padrão | Sim | Esse recurso do Azure contém os fluxos de trabalho executados nos Aplicativos Lógicos do Azure de locatário único. Importante: No seu projeto de aplicativo lógico, cada fluxo de trabalho tem um arquivo workflow.json que contém a definição do fluxo de trabalho, que inclui as definições de gatilho e ação. |
Conexões de 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 connections.jsno 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 diferentes conexões e funções em cada ambiente, certifique-se de parametrizar esse 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 do Functions Premium ou do Serviço de Aplicativo | Sim | Esse 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 Fluxo de Trabalho Standard, que se baseia no plano de hospedagem Premium do Azure Functions. |
Conta de armazenamento do Azure | Sim, para fluxos de trabalho com e sem estado | Este recurso do Azure armazena os metadados, as chaves para controle de acesso, o estado, as entradas, as saídas, o histórico de execução e outras informações sobre os fluxos de trabalho. |
Application Insights | Opcional | Esse recurso do Azure fornece recursos de monitoramento para seus fluxos de trabalho. |
Modelo do ARM (Azure Resource Manager) | Opcional | Esse recurso do Azure define uma implantação de infraestrutura da 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 no seu fluxo de trabalho requer uma política de acesso associada. Essa política precisa da identidade do aplicativo lógico para fornecer as permissões corretas para acessar a infraestrutura do conector gerenciado. Os exemplos de projetos incluídos incluem um modelo do 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 Standard e recursos de infraestrutura:
Baixar artefatos do aplicativo lógico Standard do portal
Se o seu aplicativo lógico Standard estiver no portal do Azure, você poderá baixar um arquivo zip que contém os arquivos de artefato do seu aplicativo lógico, incluindo workflow.json, connections.json, host.json e local.settings.json.
No portal do Azure, localize e abra o recurso de aplicativo lógico Standard.
No menu do aplicativo lógico, selecione Visão geral.
Na barra de ferramentas Visão geral, selecione Download do conteúdo do aplicativo. Na caixa de confirmação que aparece, selecione Download.
Quando a solicitação aparecer, selecione Salvar como, procure a pasta local que você deseja e selecione Salvar para salvar o arquivo zip.
Extraia os arquivos compactados.
No Visual Studio Code, abra a pasta que contém os arquivos descompactados.
Quando você abrir a pasta, o Visual Studio Code criará automaticamente um espaço de trabalho.
Edite o conteúdo da pasta para incluir apenas as pastas e arquivos necessários para implantação usando o DevOps.
Quando terminar, salve suas alterações.
Criar e implantar aplicativo lógico (implantar zip)
Você pode configurar pipelines de build e liberação dentro ou fora do Azure que implantam aplicativos lógicos Standard em sua infraestrutura.
Compilar o projeto
Transmita seu projeto de aplicativo lógico Standard e arquivos de artefato para seu repositório de origem, por exemplo, GitHub ou Azure DevOps.
Configurar um pipeline de build com base no tipo de projeto de aplicativo lógico concluindo as seguintes ações correspondentes:
Tipo de projeto Descrição e etapas Baseado em NuGet A estrutura de projeto baseada em NuGet é baseada na .NET Framework. Para criar esses projetos, siga as etapas de compilação para .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 a um idioma, e não requer nenhuma etapa de build específica a um idioma. Compacte seus arquivos de projeto usando qualquer método que você desejar.
Importante
Certifique-se de que seu arquivo zip contenha os artefatos de build reais do seu 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 nenhuma pasta extra nem inclua artefatos em pastas que ainda não existem na estrutura do projeto.
Por exemplo, a lista a seguir mostra um exemplo de estrutura de arquivo MyBuildArtifacts.zip:
MyStatefulWorkflow1-Folder MyStatefulWorkflow2-Folder connections.json host.json local.settings.json
Antes de liberar para o Azure
As conexões de API gerenciadas dentro do arquivo Connections. JSON do seu projeto de aplicativo lógico são criadas especificamente para uso local em Visual Studio Code. Antes de poder liberar seu projeto de artiffacts 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 uso no Azure.
Atualizar tipo de Autenticação
Para cada conexão de API gerenciada que usa autenticação, você deve atualizar o authentication
objeto do formato local no Visual Studio Code para o formato do portal do Azure, conforme mostrado pelos primeiros e segundos exemplos de código, respectivamente:
Formato do Visual Studio Code
{
"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",
}
}
}
}
Criar conexões de API conforme necessário
Se você estiver implantando seu aplicativo lógico Standard em uma região do Azure ou assinatura diferente do seu ambiente de desenvolvimento local, também deve garantir que essas conexões de API gerenciadas sejam criadas antes da implantação. A implantação de modelo do Azure Resource Manager (modelo do 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 por SQL em um modelo do 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 encontrar os valores necessários para o objeto properties
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, encontre o objeto connectionParameters
, que contém as informações necessárias para concluir a definição do recurso para esse conector específico. O exemplo a seguir mostra uma definição de recurso de exemplo para uma conexão gerenciada do 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 examinar o rastreamento de rede para quando você cria uma conexão usando o designer de fluxo de trabalho no Aplicativos Lógicos do Azure. Encontre a chamada PUT
que é enviada para a API do conector gerenciado conforme descrito anteriormente e revise o corpo da solicitação para todas as informações necessárias.
Definição de recurso de gateway de dados local
Se sua conexão usar um recurso de gateway de dados local, essa definição de recurso existirá separadamente da definição de recurso do conector. Para exibir a definição de recurso 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.
Liberar para o Azure
Para configurar um pipeline de lançamento implantado no Azure, siga as etapas associada para GitHub, Azure DevOps ou CLI do Azure.
Para implantações do GitHub, você pode implantar seu aplicativo lógico usando GitHub Actions, por exemplo, o GitHub Actions no Azure Functions. Essa ação requer que você passe as seguintes informações:
- O nome do aplicativo lógico a ser usado para a implantação
- O arquivo zip que contém seus artefatos de build 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, revise Entrega contínua usando o GitHub Actions.
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 do zip, você deve abrir seu recurso de aplicativo lógico Standard no portal do Azure e criar políticas de acesso para cada conexão de API para configurar as permissões para o aplicativo lógico implantado. A implantação de 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 no seu projeto de aplicativo lógico.
Conteúdo relacionado
Gostaríamos de conhecer suas experiências com os Aplicativos Lógicos do Azure de locatário único!
- Para bugs ou problemas, crie uma publicação no GitHub.
- Para perguntas, solicitações, opiniões e outros tipos de comentários, use este formulário de comentários.