Criar e implantar fluxos de trabalho de aplicativos lógicos baseados em locatário único com Aplicativos Lógicos habilitados para Arco do Azure (Visualização)

Nota

Esta funcionalidade está em pré-visualização e está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.

Com os Aplicativos Lógicos habilitados para ArcGIS do Azure e o portal do Azure, você pode criar e implantar fluxos de trabalho de aplicativos lógicos baseados em locatário único em uma infraestrutura do Kubernetes que você opera e gerencia. Seus aplicativos lógicos são executados em um local personalizado mapeado para um cluster Kubernetes habilitado para Azure Arc onde você instalou e habilitou o pacote de extensões de plataforma do Serviço de Aplicativo do Azure.

Por exemplo, esse cluster pode ser o Serviço Kubernetes do Azure, o Kubernetes bare-metal ou outra configuração. O pacote de extensões permite que você execute serviços de plataforma, como Aplicativos Lógicos do Azure, Serviço de Aplicativo do Azure e Azure Functions em seu cluster Kubernetes.

Para obter mais informações, consulte a seguinte documentação:

Pré-requisitos

Esta seção descreve os pré-requisitos comuns em todas as abordagens e ferramentas que você pode usar para criar e implantar seus fluxos de trabalho de aplicativos lógicos. Os pré-requisitos específicos da ferramenta aparecem junto com as etapas correspondentes.

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

  • Um ambiente Kubernetes com um cluster Kubernetes habilitado para Azure Arc e local personalizado onde você pode hospedar e executar Aplicativos Lógicos do Azure, Serviço de Aplicativo do Azure e Azure Functions.

    Importante

    Certifique-se de usar o mesmo local de recurso para seu ambiente Kubernetes, local personalizado e aplicativo lógico.

    Ao criar a extensão de pacote do Serviço de Aplicativo no cluster do Kubernetes, você pode alterar o comportamento de dimensionamento padrão para executar os fluxos de trabalho do aplicativo lógico. Ao criar a extensão usando o comando da CLI do Azure, certifique-se de incluir a definição de configuração, az k8s-extension createkeda.enabled=true:

    az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"

    Para obter mais informações, consulte a seguinte documentação:

  • A sua própria identidade Microsoft Entra

    Se seus fluxos de trabalho precisarem usar conexões hospedadas no Azure, como o Office 365 Outlook ou o Armazenamento do Azure, seu aplicativo lógico deverá usar uma identidade do Microsoft Entra para autenticação. Os Aplicativos Lógicos habilitados para Arco do Azure podem ser executados em qualquer infraestrutura, mas exigem uma identidade que tenha permissões para usar conexões hospedadas no Azure. Para configurar essa identidade, crie um registro de aplicativo no Microsoft Entra ID que seu aplicativo lógico usa como a identidade necessária.

    Nota

    O suporte de identidade gerenciada não está disponível no momento para Aplicativos Lógicos habilitados para Arco do Azure.

    Para criar um registro de aplicativo Microsoft Entra usando a CLI do Azure, siga estas etapas:

    1. Crie um registro de aplicativo usando o az ad sp create comando.

    2. Para rever todos os detalhes, execute o az ad sp show comando.

    3. A partir da saída de ambos os comandos, localize e salve a ID do cliente, a ID do objeto, a ID do locatário e os valores secretos do cliente, que você precisa manter para uso posterior.

    Para criar um registro de aplicativo Microsoft Entra usando o portal do Azure, siga estas etapas:

    1. Crie um novo registro de aplicativo Microsoft Entra usando o portal do Azure.

    2. Após a conclusão da criação, encontre o novo registro do aplicativo no portal.

    3. No menu de registro, selecione Visão geral e salve a ID do cliente, a ID do locatário e os valores secretos do cliente.

    4. Para localizar o ID do objeto, ao lado do campo Aplicativo gerenciado no diretório local, selecione o nome do registro do aplicativo. Na visualização de propriedades, copie a ID do objeto.

Criar e implantar aplicativos lógicos

Com base se você deseja usar a CLI do Azure, o Visual Studio Code ou o portal do Azure, selecione a guia correspondente para revisar os pré-requisitos e etapas específicos.

Antes de começar, você precisa ter os seguintes itens:

  • A extensão mais recente da CLI do Azure instalada no seu computador local.

  • A extensão de visualização dos Aplicativos Lógicos do Azure (Padrão) para a CLI do Azure.

    Embora os Aplicativos Lógicos do Azure de locatário único estejam geralmente disponíveis, a extensão dos Aplicativos Lógicos do Azure ainda está em visualização.

  • Um grupo de recursos do Azure para onde criar seu aplicativo lógico.

    Se você não tiver esse grupo de recursos, siga as etapas para criar o grupo de recursos.

  • Uma conta de armazenamento do Azure para usar com seu aplicativo lógico para retenção de dados e histórico de execução.

    Se você não tiver essa conta de armazenamento, poderá criá-la ao criar seu aplicativo lógico ou seguir as etapas para criar uma conta de armazenamento.

Verifique o ambiente e a versão da CLI

  1. Inicie sessão no portal do Azure. Verifique se a sua subscrição está ativa executando o seguinte comando:

    az login
    
  2. Verifique sua versão da CLI do Azure em um terminal ou janela de comando executando o seguinte comando:

    az --version
    

    Para obter a versão mais recente, consulte as notas de versão mais recentes.

  3. Se não tiver a versão mais recente, atualize a instalação seguindo o guia de instalação do seu sistema operativo ou plataforma.

Instalar a extensão Azure Logic Apps (Standard) para a CLI do Azure

Instale a extensão de visualização de aplicativos lógicos do Azure (padrão) de locatário único para a CLI do Azure executando o seguinte comando:

az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"

Criar grupo de recursos

Se você ainda não tiver um grupo de recursos para seu aplicativo lógico, crie o grupo executando o comando, az group create. A menos que você já tenha definido uma assinatura padrão para sua conta do Azure, certifique-se de usar o parâmetro com seu --subscription nome ou identificador de assinatura. Caso contrário, você não precisa usar o --subscription parâmetro.

Gorjeta

Para definir uma assinatura padrão, execute o seguinte comando e substitua MySubscription pelo nome ou identificador da assinatura.

az account set --subscription MySubscription

Por exemplo, o comando a seguir cria um grupo de recursos nomeado MyResourceGroupName usando a assinatura do Azure nomeada MySubscription no local eastus:

az group create --name MyResourceGroupName 
   --subscription MySubscription 
   --location eastus

Se o seu grupo de recursos for criado com êxito, a saída mostrará o provisioningState como Succeeded:

<...>
   "name": "testResourceGroup",
   "properties": {
      "provisioningState": "Succeeded"
    },
<...>

Criar aplicação lógica

Para criar um aplicativo lógico habilitado para Azure Arc, execute o comando, , az logicapp createcom os seguintes parâmetros necessários. Os locais de recursos para seu aplicativo lógico, local personalizado e ambiente Kubernetes devem ser os mesmos.

Parâmetros Descrição
--name -n Um nome exclusivo para seu aplicativo lógico
--resource-group -g O nome do grupo de recursos onde você deseja criar seu aplicativo lógico. Se você não tiver um para usar, crie um grupo de recursos.
--storage-account -s A conta de armazenamento a ser usada com seu aplicativo lógico. Para contas de armazenamento no mesmo grupo de recursos, use um valor de cadeia de caracteres. Para contas de armazenamento em um grupo de recursos diferente, use uma ID de recurso.
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

Para criar um aplicativo lógico habilitado para Azure Arc usando uma imagem privada do Azure Container Registry (ACR), execute o comando, , az logicapp createcom os seguintes parâmetros necessários:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   --deployment-container-image-name myacr.azurecr.io/myimage:tag
   --docker-registry-server-password MyPassword 
   --docker-registry-server-user MyUsername

Mostrar detalhes do aplicativo lógico

Para mostrar detalhes sobre seu aplicativo lógico habilitado para Azure Arc, execute o comando, , az logicapp showcom os seguintes parâmetros necessários:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Implantar aplicativo lógico

Para implantar seu aplicativo lógico habilitado para Azure Arc usando a implantação zip Kudu do Serviço de Aplicativo do Azure, execute o comando, , az logicapp deployment source config-zipcom os seguintes parâmetros necessários:

Importante

Certifique-se de que seu arquivo zip contém os artefatos do seu projeto no nível raiz. Esses artefatos incluem todas as pastas de fluxo de trabalho, arquivos de configuração como host.json, connections.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, esta lista mostra um exemplo de estrutura de arquivo MyBuildArtifacts.zip:

MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --src MyBuildArtifact.zip

Iniciar aplicação lógica

Para iniciar seu aplicativo lógico habilitado para Azure Arc, execute o comando, , az logicapp startcom os seguintes parâmetros necessários:

az logicapp start --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Parar aplicação lógica

Para parar seu aplicativo lógico habilitado para Azure Arc, execute o comando, , az logicapp stopcom os seguintes parâmetros necessários:

az logicapp stop --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Reiniciar aplicativo lógico

Para reiniciar seu aplicativo lógico habilitado para Azure Arc, execute o comando, , az logicapp restartcom os seguintes parâmetros necessários:

az logicapp restart --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Eliminar a aplicação lógica

Para excluir seu aplicativo lógico habilitado para Azure Arc, execute o comando, , az logicapp deletecom os seguintes parâmetros necessários:

az logicapp delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Configurar a autenticação de conexão

Atualmente, os clusters Kubernetes habilitados para Azure Arc não oferecem suporte ao uso da identidade gerenciada de um aplicativo lógico para autenticar conexões de API gerenciadas. Você cria essas conexões gerenciadas e hospedadas no Azure quando usa conectores gerenciados em seus fluxos de trabalho.

Em vez disso, você precisa criar seu próprio registro de aplicativo no Microsoft Entra ID. Em seguida, você pode usar esse registro de aplicativo como uma identidade para aplicativos lógicos implantados e em execução nos Aplicativos Lógicos habilitados para Arco do Azure. Para obter mais informações, revise os pré-requisitos de nível superior.

No registro do aplicativo, você precisa da ID do cliente, da ID do objeto, da ID do locatário e do segredo do cliente. Se você usar o Visual Studio Code para implantar, terá uma experiência interna para configurar seu aplicativo lógico com uma identidade do Microsoft Entra. Para obter mais informações, consulte Criar e implantar fluxos de trabalho de aplicativos lógicos - Visual Studio Code.

No entanto, se você usar o Visual Studio Code para desenvolvimento, mas usar a CLI do Azure ou pipelines automatizados para implantar, siga estas etapas.

Definir configurações de conexão e aplicativo em seu projeto

  1. No arquivo connections.json do seu projeto de aplicativo lógico, localize o objeto da conexão gerenciadaauthentication. Substitua o conteúdo desse objeto pelas informações de registro do aplicativo, geradas anteriormente nos pré-requisitos de nível superior:

    "authentication": {
       "type": "ActiveDirectoryOAuth",
       "audience": "https://management.core.windows.net/",
       "credentialType": "Secret",
       "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')",
       "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')",
       "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')"
    } 
    
  2. No arquivo local.settings.json do seu projeto de aplicativo lógico, adicione sua ID do cliente, ID do objeto, ID do locatário e segredo do cliente. Após a implantação, essas configurações se tornam as configurações do aplicativo lógico.

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>",
          "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID",
          "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>",
          "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>"
       }
    }
    

Importante

Para cenários ou ambientes de produção, certifique-se de proteger e proteger esses segredos e informações confidenciais, por exemplo, usando um cofre de chaves.

Adicionar políticas de acesso

Nos Aplicativos Lógicos do Azure de locatário único, cada aplicativo lógico tem uma identidade que recebe permissões das políticas de acesso para usar conexões hospedadas e gerenciadas pelo Azure. Você pode configurar essas políticas de acesso usando o portal do Azure ou implantações de infraestrutura.

Modelo ARM

No seu modelo do Azure Resource Manager (modelo ARM), inclua a seguinte definição de recurso para cada conexão de API gerenciada e forneça as seguintes informações:

Parâmetro Descrição
<nome da conexão> O nome da sua conexão de API gerenciada, por exemplo office365
<ID do objeto> A ID do objeto para sua identidade do Microsoft Entra, salva anteriormente do registro do aplicativo
<ID do locatário> A ID do locatário para sua identidade do Microsoft Entra, salva anteriormente do registro do aplicativo
{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

Para obter mais informações, consulte a documentação Microsoft.Web/connections/accesspolicies (modelo ARM).

Portal do Azure

Para esta tarefa, use seu ID de cliente salvo anteriormente como o ID do aplicativo.

  1. No portal do Azure, localize e abra seu aplicativo lógico. No menu do aplicativo lógico, em Fluxos de trabalho, selecione Conexões, que lista todas as conexões nos fluxos de trabalho do aplicativo lógico.

  2. Em Conexões de API, selecione uma conexão, que está office365 neste exemplo.

  3. No menu da conexão, em Configurações, selecione Adicionar políticas>de acesso.

  4. No painel Adicionar política de acesso, na caixa de pesquisa, localize e selecione o ID do cliente salvo anteriormente.

  5. Quando terminar, selecione Adicionar.

  6. Repita estas etapas para cada conexão hospedada pelo Azure em seu aplicativo lógico.

Automatize a implantação do DevOps

Para criar e implantar seus aplicativos lógicos habilitados para Azure Arc, você pode usar os mesmos pipelines e processos que para aplicativos lógicos baseados em locatário único. Para automatizar implantações de infraestrutura usando pipelines para DevOps, faça as seguintes alterações no nível de infraestrutura para implantações que não sejam de contêiner e de contêiner.

Implantação padrão (sem contêiner)

Se você usar zip deploy para implantação de aplicativo lógico, não precisará configurar um registro do Docker para hospedar imagens de contêiner. Embora os aplicativos lógicos no Kubernetes sejam tecnicamente executados em contêineres, os Aplicativos Lógicos habilitados para ArcGIS do Azure gerenciam esses contêineres para você. Para esse cenário, conclua as seguintes tarefas ao configurar sua infraestrutura:

No seu modelo do Azure Resource Manager (modelo ARM), inclua os seguintes valores:

Item Propriedade de JSON Descrição
Localização location Certifique-se de usar o mesmo local de recurso (região do Azure) como seu local personalizado e ambiente Kubernetes. Os locais de recursos para seu aplicativo lógico, local personalizado e ambiente Kubernetes devem ser os mesmos.

Nota: Este valor não é o mesmo que o nome da sua localização personalizada.

Tipo de aplicativo kind O tipo de aplicativo que você está implantando para que a plataforma Azure possa identificar seu aplicativo. Para os Aplicativos Lógicos do Azure, essas informações se parecem com o exemplo a seguir: kubernetes,functionapp,workflowapp,linux
Localização estendida extendedLocation Este objeto requer o "name" local personalizado para seu ambiente Kubernetes e deve ter a "type" configuração como "CustomLocation".
ID do recurso do plano de hospedagem serverFarmId A ID do recurso do plano do Serviço de Aplicativo associado, formatado da seguinte maneira:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

Cadeia de conexão de armazenamento AzureWebJobsStorage A cadeia de conexão para sua conta de armazenamento

Importante: Você precisa fornecer a cadeia de conexão para sua conta de armazenamento em seu modelo ARM. Para cenários ou ambientes de produção, certifique-se de proteger e proteger esses segredos e informações confidenciais, por exemplo, usando um cofre de chaves.

Modelo ARM

O exemplo a seguir descreve um exemplo de definição de recurso de Aplicativos Lógicos habilitados para Azure Arc que você pode usar em seu modelo ARM. Para obter mais informações, consulte a documentação Microsoft.Web/sites template format (JSON).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": "kubernetes,functionapp,workflowapp,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "clientAffinityEnabled": false,
      "name": "[parameters('name')]",
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "Node|12"
      }
   }
}

Implementação em contentor

Se preferir usar ferramentas de contêiner e processos de implantação, você pode conteinerizar seus aplicativos lógicos e implantá-los em Aplicativos Lógicos habilitados para Azure Arc. Para esse cenário, conclua as seguintes tarefas de alto nível ao configurar sua infraestrutura:

  • Configure um registro do Docker para hospedar suas imagens de contêiner.

  • Para contentorizar a sua aplicação lógica, adicione o seguinte Dockerfile à pasta raiz do seu projeto de aplicação lógica e siga os passos para criar e publicar uma imagem no seu registo do Docker, por exemplo, consulte Tutorial: Criar e implementar imagens de contentor na nuvem com as Tarefas de Registo de Contentor do Azure.

    Nota

    Se você usar o SQL como seu provedor de armazenamento, certifique-se de usar uma imagem do Azure Functions versão 3.3.1 ou posterior.

    FROM mcr.microsoft.com/azure-functions/node:3.3.1
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_V2_COMPATIBILITY_MODE=true
    COPY . /home/site/wwwroot
    RUN cd /home/site/wwwroot
    
  • Notifique o provedor de recursos de que você está criando um aplicativo lógico no Kubernetes.

  • Em seu modelo de implantação, aponte para o registro do Docker e a imagem do contêiner onde você planeja implantar. Os Aplicativos Lógicos do Azure de locatário único usam essas informações para obter a imagem do contêiner do seu registro do Docker.

  • Inclua um plano do Serviço de Aplicativo com sua implantação. Para obter mais informações, consulte Incluir plano do Serviço de Aplicativo com implantação.

No seu modelo do Azure Resource Manager (modelo ARM), inclua os seguintes valores:

Item Propriedade de JSON Descrição
Localização location Certifique-se de usar o mesmo local de recurso (região do Azure) como seu local personalizado e ambiente Kubernetes. Os locais de recursos para seu aplicativo lógico, local personalizado e ambiente Kubernetes devem ser os mesmos.

Nota: Este valor não é o mesmo que o nome da sua localização personalizada.

Tipo de aplicativo kind O tipo de aplicativo que você está implantando para que a plataforma Azure possa identificar seu aplicativo. Para os Aplicativos Lógicos do Azure, essas informações se parecem com o exemplo a seguir: kubernetes,functionapp,workflowapp,container
Localização estendida extendedLocation Este objeto requer o "name" local personalizado para seu ambiente Kubernetes e deve ter "type" definido como "CustomLocation".
Nome do contentor linuxFxVersion O nome do contêiner, formatado da seguinte forma: DOCKER\|<container-name>
ID do recurso do plano de hospedagem serverFarmId A ID do recurso do plano do Serviço de Aplicativo associado, formatado da seguinte maneira:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

Cadeia de conexão de armazenamento AzureWebJobsStorage A cadeia de conexão para sua conta de armazenamento

Importante: Ao implantar em um contêiner do Docker, você precisa fornecer a cadeia de conexão para sua conta de armazenamento em seu modelo ARM. Para cenários ou ambientes de produção, certifique-se de proteger e proteger esses segredos e informações confidenciais, por exemplo, usando um cofre de chaves.

Para fazer referência ao registro do Docker e à imagem do contêiner, inclua estes valores no modelo:

Item Propriedade de JSON Descrição
URL do servidor de registro do Docker DOCKER_REGISTRY_SERVER_URL A URL do servidor de registro do Docker
Servidor de registro do Docker DOCKER_REGISTRY_SERVER_USERNAME O nome de usuário para acessar o servidor de registro do Docker
Senha do servidor de registro do Docker DOCKER_REGISTRY_SERVER_PASSWORD A senha para acessar o servidor de registro do Docker

Modelo ARM

O exemplo a seguir descreve um exemplo de definição de recurso de Aplicativos Lógicos habilitados para Azure Arc que você pode usar em seu modelo ARM. Para obter mais informações, consulte a documentação Microsoft.Web/sites template format (modelo ARM).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": " kubernetes,functionapp,workflowapp,container",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "name": "[parameters('name')]",
      "clientAffinityEnabled": false,
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }, 
            {
               "name": "DOCKER_REGISTRY_SERVER_URL",
               "value": "<docker-registry-server-URL>"
            },
            { 
               "name": "DOCKER_REGISTRY_SERVER_USERNAME",
               "value": "<docker-registry-server-username>"
            },
            {
               "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
               "value": "<docker-registry-server-password>"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "DOCKER|<container-name>"
      }
   }
}

Incluir o plano do Serviço de Aplicativo com a implantação

Se você tiver uma implantação padrão ou de contêiner, precisará incluir um plano do Serviço de Aplicativo com sua implantação. Embora esse plano se torne menos relevante com um ambiente Kubernetes, as implantações padrão e de contêiner ainda exigem um plano do Serviço de Aplicativo.

Enquanto outras opções de criação geralmente lidam com o provisionamento do recurso do Azure para este plano, se suas implantações usarem modelos de "infraestrutura como código", você precisará criar explicitamente o recurso do Azure para o plano. O recurso do plano de hospedagem não muda, apenas as sku informações.

No seu modelo do Azure Resource Manager (modelo ARM), inclua os seguintes valores:

Item Propriedade de JSON Descrição
Localização location Certifique-se de usar o mesmo local de recurso (região do Azure) como seu local personalizado e ambiente Kubernetes. Os locais de recursos para seu aplicativo lógico, local personalizado e ambiente Kubernetes devem ser os mesmos.

Nota: Este valor não é o mesmo que o nome da sua localização personalizada.

Variante kind O tipo de plano de serviço de aplicativo que está sendo implantado e que precisa ser kubernetes,linux
Localização estendida extendedLocation Este objeto requer o "name" local personalizado para seu ambiente Kubernetes e deve ter "type" definido como "CustomLocation".
Nome do plano de hospedagem name O nome do plano do Serviço de Aplicativo
Camada de plano sku: tier A camada de plano do Serviço de Aplicativo, que é K1
Nome do plano sku: name O nome do plano do Serviço de Aplicativo, que é Kubernetes

Modelo ARM

O exemplo a seguir descreve uma definição de recurso de plano do Serviço de Aplicativo de exemplo que você pode usar com a implantação do aplicativo. Para obter mais informações, consulte a documentação do formato de modelo Microsoft.Web/serverfarms (modelo ARM).

{
   "type": "Microsoft.Web/serverfarms",
   "apiVersion": "2020-12-01",
   "location": "<location>",
   "name": "<hosting-plan-name>",
   "kind": "kubernetes,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
   },
   "sku": {
      "tier": "Kubernetes",
      "name": "K1", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

Alterar o comportamento de dimensionamento padrão

Os Aplicativos Lógicos habilitados para ArcGIS do Azure gerenciam automaticamente o dimensionamento para seus aplicativos lógicos com base no número de trabalhos na fila de armazenamento de back-end. No entanto, você pode alterar o comportamento de dimensionamento padrão.

Em um aplicativo lógico, a definição de fluxo de trabalho especifica a sequência de ações a serem executadas. Sempre que uma execução de fluxo de trabalho é acionada, o tempo de execução dos Aplicativos Lógicos do Azure cria um trabalho para cada tipo de ação na definição do fluxo de trabalho . Em seguida, o tempo de execução organiza esses trabalhos em um sequenciador de tarefas. Esse sequenciador orquestra a execução dos trabalhos para a definição do fluxo de trabalho, mas o mecanismo de orquestração de tarefas dos Aplicativos Lógicos do Azure subjacente executa cada trabalho.

Para fluxos de trabalho com monitoração de estado, o mecanismo de orquestração de tarefas usa mensagens de fila de armazenamento para agendar trabalhos nos sequenciadores de tarefas. Nos bastidores, os despachantes de trabalho (ou instâncias de trabalhador de despacho) monitoram essas filas de trabalho. O mecanismo de orquestração usa um número mínimo e máximo padrão de instâncias de trabalho para monitorar as filas de trabalho. Para fluxos de trabalho sem monitoração de estado, o mecanismo de orquestração mantém completamente os estados de ação na memória.

Para alterar o comportamento de dimensionamento padrão, especifique diferentes números mínimos e máximos de instâncias de trabalho que monitoram as filas de trabalho.

Pré-requisitos para alterar o dimensionamento

Em seu cluster Kubernetes habilitado para Azure Arc, sua extensão de pacote do Serviço de Aplicativo criada anteriormente deve ter a keda.enabled propriedade definida como true. Para obter mais informações, revise os pré-requisitos de nível superior.

Alterar o limite de dimensionamento

Nos Aplicativos Lógicos habilitados para ArcGIS do Azure, o comprimento da fila de trabalhos dispara um evento de escala e define um limite para a frequência com que o dimensionamento acontece para seu aplicativo lógico. Você pode alterar o comprimento da fila, que tem o valor padrão definido como 20 trabalhos. Para dimensionar com menos frequência, aumente o comprimento da fila. Para dimensionar com mais frequência, diminua o comprimento da fila. Este processo pode exigir alguma tentativa e erro.

Para alterar o comprimento da fila, no arquivo host.json de nível raiz do seu projeto de aplicativo lógico, defina a Runtime.ScaleMonitor.KEDA.TargetQueueLength propriedade, por exemplo:

"extensions": {
   "workflow": {
      "settings": {
         "Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
      }
   }
}

Alterar a taxa de transferência máxima

Em um recurso de aplicativo lógico existente, você pode alterar o número máximo de instâncias de trabalho, que tem o valor padrão definido como 2. Esse valor controla o limite superior de quantas instâncias de trabalho podem monitorar as filas de trabalho.

Para alterar esse máximo, use a CLI do Azure (somente criação de aplicativo lógico) e o portal do Azure.

CLI do Azure

Para criar um novo aplicativo lógico, execute o comando, , az logicapp createcom os seguintes parâmetros:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]

Para configurar sua contagem máxima de instâncias, use o --settings parâmetro:

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --settings "K8SE_APP_MAX_INSTANCE_COUNT=10"

Portal do Azure

Nas configurações do seu aplicativo lógico baseado em locatário único, adicione ou edite o valor da K8SE_APP_MAX_INSTANCE_COUNT configuração seguindo estas etapas:

  1. No portal do Azure, localize e abra seu aplicativo lógico baseado em locatário único.

  2. No menu do aplicativo lógico, em Configurações, selecione Configuração.

  3. No painel Configuração, em Configurações do aplicativo, adicione uma nova configuração de aplicativo ou edite o valor existente, se já tiver sido adicionado.

    1. Selecione Nova configuração do aplicativo e adicione a K8SE_APP_MAX_INSTANCE_COUNT configuração com o valor máximo desejado.

    2. Edite o valor existente para a K8SE_APP_MAX_INSTANCE_COUNT configuração.

  4. Quando tiver terminado, guarde as alterações.

Alterar a taxa de transferência mínima

Em um recurso de aplicativo lógico existente, você pode alterar o número mínimo de instâncias de trabalho, que tem o valor padrão definido como 1. Esse valor controla o limite inferior de quantas instâncias de trabalho podem monitorar as filas de trabalho. Para alta disponibilidade ou desempenho, aumente esse valor.

Para alterar esse mínimo, use a CLI do Azure ou o portal do Azure.

CLI do Azure

Para um recurso de aplicativo lógico existente, execute o comando, , az logicapp scalecom os seguintes parâmetros:

az logicapp scale --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --instance-count 5 

Para criar um novo aplicativo lógico, execute o comando, , az logicapp createcom os seguintes parâmetros:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]

Portal do Azure

Nas configurações do seu aplicativo lógico baseado em locatário único, altere o valor da propriedade Scale out seguindo estas etapas:

  1. No portal do Azure, localize e abra seu aplicativo lógico baseado em locatário único.

  2. No menu do aplicativo lógico, em Configurações, selecione Dimensionamento.

  3. No painel Dimensionar, arraste o controle deslizante de instâncias mínimas para o valor desejado.

  4. Quando tiver terminado, guarde as alterações.

Resolução de problemas

Para obter mais informações sobre seus aplicativos lógicos implantados, tente as seguintes opções:

Aceder às definições e configurações da aplicação

Para acessar as configurações do aplicativo, execute o comando, , az logicapp config appsettingscom os seguintes parâmetros:

az logicapp config appsettings list --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Para definir uma configuração de aplicativo, execute o comando, , az logicapp config appsettings setcom os seguintes parâmetros. Certifique-se de usar o parâmetro com o nome e o --settings valor da sua configuração.

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --settings "MySetting=1"

Para excluir uma configuração de aplicativo, execute o comando, , az logicapp config appsettings deletecom os seguintes parâmetros. Certifique-se de usar o parâmetro com o --setting-names nome da configuração que você deseja excluir.

az logicapp config appsettings delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --setting-names MySetting

Exibir propriedades do aplicativo lógico

Para exibir as informações e propriedades do aplicativo, execute o comando, , az logicapp showcom os seguintes parâmetros:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Monitorar a atividade do fluxo de trabalho

Para exibir a atividade de um fluxo de trabalho em seu aplicativo lógico, siga estas etapas:

  1. No portal do Azure, localize e abra seu aplicativo lógico implantado.

  2. No menu do aplicativo lógico, selecione Fluxos de trabalho e, em seguida, selecione seu fluxo de trabalho.

  3. No menu do fluxo de trabalho, selecione Monitor.

Recolher registos

Para obter dados registrados sobre seu aplicativo lógico, habilite o Application Insights em seu aplicativo lógico, se ainda não estiver habilitado.

Próximos passos