Criar e implantar fluxos de trabalho de aplicativo lógico com base em locatário único com os Aplicativos Lógicos habilitados para Azure Arc (versão prévia)
Observação
Esse recurso está em versão prévia e está sujeito aos Termos de uso suplementares para versões prévias do Microsoft Azure.
Com Aplicativos Lógicos habilitados para Azure Arc, você pode criar e implantar fluxos de trabalho de aplicativos lógicos baseados em locatário único em uma infraestrutura Kubernetes que você opera e gerencia. As suas aplicações lógicas são executadas num local personalizado que é mapeado para um cluster Kubernetes habilitado pelo Azure Arc onde instalou e habilitou o pacote de extensões da plataforma Serviço de Aplicativo do Azure.
Por exemplo, esse cluster pode ser o Serviço de Kubernetes do Azure, Kubernetes bare-metal ou alguma outra configuração. O pacote de extensões permite que você execute serviços de plataforma, como os Aplicativos Lógicos do Azure, o Serviço de Aplicativo do Azure e o Azure Functions no seu cluster do Kubernetes.
Para mais informações, consulta a seguinte documentação:
- O que são Aplicativos Lógicos habilitados para Azure Arc?
- Locatário único versus multilocatário nos Aplicativos Lógicos do Azure
- Visão geral do Azure Arc
- Visão geral do Serviço de Kubernetes do Azure
- O que é o Kubernetes habilitado para Azure Arc?
- Localizações personalizadas no Kubernetes habilitados para Azure Arc
- Serviço de Aplicativo, Functions e Aplicativos Lógicos no Azure Arc (versão prévia)
- Configurar um cluster do Kubernetes habilitado para o Azure Arc para executar o Serviço de Aplicativo, o Functions e os Aplicativos Lógicos (versão prévia)
Pré-requisitos
Esta seção descreve os pré-requisitos comuns a todas as abordagens e ferramentas que você pode usar para criar e implantar fluxos de trabalho de aplicativo lógico. Os pré-requisitos específicos de uma ferramenta aparecem juntamente com suas etapas correspondentes.
Uma conta do Azure com uma assinatura ativa. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.
Um ambiente do Kubernetes com um cluster do Kubernetes habilitado para Azure Arc e um local personalizado onde você pode hospedar e executar os Aplicativos Lógicos do Azure, o Serviço de Aplicativo do Azure e o Azure Functions.
Importante
Verifique se você está usando a mesma localização de recurso para o seu ambiente do Kubernetes, a localização personalizada e o aplicativo lógico.
Ao criar a extensão do pacote do Serviço de Aplicativo no cluster do Kubernetes, é possível alterar o comportamento de dimensionamento padrão para executar fluxos de trabalho do aplicativo lógico. Ao criar a extensão usando o comando CLI do Azure,
az k8s-extension create
, certifique-se de incluir a definição de configuração,keda.enabled=true
:az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"
Para mais informações, consulte a seguinte documentação:
- Serviço de Aplicativo, Functions e Aplicativos Lógicos no Azure Arc (versão prévia)
- Extensões de cluster no Kubernetes habilitado para Azure Arc
- Configurar um cluster do Kubernetes habilitado para o Azure Arc para executar o Serviço de Aplicativo, o Functions e os Aplicativos Lógicos (versão prévia)
- Alterar o comportamento de dimensionamento padrão
Sua própria identidade do Microsoft Entra
Se os fluxos de trabalho precisarem usar conexões hospedadas no Azure, como o Office 365 Outlook ou o Armazenamento do Microsoft Azure, seu aplicativo lógico deverá usar uma identidade do Microsoft Entra para autenticação. Os Aplicativos Lógicos habilitados para Azure Arc podem ser executados em qualquer infraestrutura, mas requerem 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.
Observação
Atualmente, o suporte à identidade gerenciada está indisponível para os Aplicativos Lógicos habilitados para Azure Arc.
Para criar um registro de aplicativo do Microsoft Entra usando a CLI do Azure, siga estas etapas:
Crie um registro de aplicativo usando o comando
az ad sp create
.Para revisar todos os detalhes, execute o comando
az ad sp show
.Na saída de ambos os comandos, encontre e salve a ID do cliente, a ID do objeto, a ID do locatário e os valores de segredo do cliente, que você precisará guardar para uso posterior.
Para criar um registro de aplicativo do Microsoft Entra usando o portal do Azure, siga estas etapas:
Crie um registro de aplicativo do Microsoft Entra usando o portal do Azure.
Após a criação, encontre o novo registro de aplicativo no portal.
No menu de registro, selecione Visão Gerale salve a ID do cliente, a ID do locatário e os valores de segredo do cliente.
Para encontrar a ID do objeto, ao lado do campo Aplicativo gerenciado no diretório local, selecione o nome do registro do aplicativo. Na exibição de propriedades, copie a ID do objeto.
Definir e implantar aplicativos lógicos
Com base se pretende utilizar o CLI do Azure ou o Visual Studio Code, selecione o separador correspondente para rever os pré-requisitos e passos específicos.
Antes de começar, você precisa ter os seguintes itens:
A extensão da CLI do Azure mais recente instalada no computador local.
Se você não tiver essa extensão, examine o Guia de instalação do seu sistema operacional ou plataforma.
Se você não tiver certeza de que tem a versão mais recente, siga as etapas para verificar seu ambiente e a versão da CLI.
A versão prévia da extensão de Aplicativos Lógicos do Azure (Standard) para a CLI do Azure.
Embora os Aplicativos Lógicos do Azure de locatário único estejam em disponibilidade geral, a extensão de Aplicativos Lógicos do Azure ainda está em versão prévia.
Um grupo de recursos do Azure no qual 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 de 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.
Verificar o ambiente e a versão da CLI
Entre no portal do Azure. Verifique se sua assinatura está ativa executando o seguinte comando:
az login
Verifique sua versão da CLI do Azure em uma janela de terminal ou de comando usando o seguinte comando:
az --version
Para obter a última versão, confira as notas sobre a versão mais recente.
Caso não tenha a última versão, atualize a instalação seguindo o guia de instalação para seu sistema operacional ou sua plataforma.
Instalar a extensão de Aplicativos Lógicos do Azure (Standard) para a CLI do Azure
Instale a versão prévia da extensão de Aplicativos Lógicos do Azure (Standard) 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
Caso ainda não tenha 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, use o parâmetro --subscription
com o nome ou o identificador da sua assinatura. Caso contrário, você não precisa usar o parâmetro --subscription
.
Dica
Para definir uma assinatura padrão, execute o comando a seguir e substitua MySubscription
pelo seu nome de assinatura ou identificador.
az account set --subscription MySubscription
Por exemplo, o seguinte comando cria um grupo de recursos chamado MyResourceGroupName
usando a assinatura do Azure denominada MySubscription
na localização eastus
:
az group create --name MyResourceGroupName
--subscription MySubscription
--location eastus
A saída mostrará o provisioningState
como Succeeded
se o grupo de recursos tiver sido criado com êxito:
<...>
"name": "testResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
<...>
Criar aplicativo lógico
Para criar um aplicativo lógico habilitado para Azure Arc, execute o comando az logicapp create
com os parâmetros obrigatórios a seguir. Os locais de recurso do seu aplicativo lógico, do local personalizado e do ambiente do Kubernetes devem ser todos iguais.
Parâmetros | Descrição |
---|---|
--name -n |
Um nome exclusivo para o seu aplicativo lógico |
--resource-group -g |
O nome do grupo de recursos em que você deseja criar o aplicativo lógico. Caso ainda não tenha 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 ACR (Registro de Contêiner do Azure), execute o comando az logicapp create
com os seguintes parâmetros obrigató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
Exibir detalhes do aplicativo lógico
Para mostrar detalhes sobre seu aplicativo lógico habilitado para Azure Arc, execute o comando az logicapp show
com os seguintes parâmetros obrigatórios:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Implantar o aplicativo lógico
Para implantar seu aplicativo lógico habilitado para Azure Arc usando a implantação zip do Kudu do Serviço de Aplicativo do Azure, execute o comando az logicapp deployment source config-zip
com os seguintes parâmetros obrigatórios:
Importante
Verifique se o 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 todos os outros arquivos relacionados. Não adicione nenhuma pasta extra nem inclua artefatos em pastas que ainda não existem na estrutura do projeto. 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 aplicativo lógico
Para iniciar seu aplicativo lógico habilitado para Azure Arc, execute o comando az logicapp start
com os seguintes parâmetros obrigatórios:
az logicapp start --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Parar aplicativo lógico
Para interromper o aplicativo lógico habilitado para Azure Arc, execute o comando az logicapp stop
com os seguintes parâmetros obrigatórios:
az logicapp stop --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Reiniciar aplicativo lógico
Para reiniciar o aplicativo lógico habilitado para Azure Arc, execute o comando az logicapp restart
com os seguintes parâmetros obrigatórios:
az logicapp restart --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Excluir aplicativo lógico
Para excluir o aplicativo lógico habilitado para Azure Arc, execute o comando az logicapp delete
com os seguintes parâmetros obrigatórios:
az logicapp delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Configurar autenticações de conexão
Atualmente, os clusters Kubernetes ativados pelo Azure Arc não suportam a utilização de uma identidade gerida por aplicações lógicas para autenticar ligações API geridas. Você cria essas conexões hospedadas e gerenciadas no Azure quando usa conectores gerenciados nos 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 Azure Arc. Para mais informações, consulte 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 for usar o Visual Studio Code para implantação, você terá uma experiência interna para configurar o aplicativo lógico com uma identidade do Microsoft Entra. Para mais informações, consulte Criar e implantar fluxos de trabalho de um aplicativo lógico - Visual Studio Code .
No entanto, se você for usar o Visual Studio Code para desenvolvimento, mas usar o CLI do Azure ou pipelines automatizados na implantação, siga estas etapas.
Definir configurações de conexão e aplicativo em seu projeto
No arquivo connections.json do seu projeto de aplicativo lógico, encontre o objeto
authentication
para a conexão gerenciada. Substitua o conteúdo desse objeto pelas informações de registro do aplicativo, que você gerou 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')" }
No arquivo local.settings.js do projeto do seu aplicativo lógico, adicione a ID do cliente, a ID do objeto, a ID do locatário e o segredo do cliente. Após a implantação, essas configurações se tornam suas configurações de 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
Em cenários de produção, proteja e garanta a segurança desses segredos e informações confidenciais, por exemplo, usando um cofre de chaves.
Adicionar políticas de acesso
Nos Aplicativos Lógicos do Azure com base em locatário único, cada aplicativo lógico tem uma identidade que recebe permissões das políticas de acesso para usar conexões gerenciadas e hospedadas no Azure. Você pode configurar essas políticas de acesso usando o portal do Azure ou implantações de infraestrutura.
Modelo de ARM
No modelo do ARM (modelo do Azure Resource Manager), inclua a definição de recurso a seguir para cada conexão da API gerenciada e forneça as seguintes informações:
Parâmetro | Descrição |
---|---|
<connection-name> | O nome da conexão de API gerenciada, por exemplo office365 |
<object-ID> | A ID de objeto da identidade do Microsoft Entra, salva anteriormente durante o registro do aplicativo |
<tenant-ID> | A ID de locatário da identidade do Microsoft Entra, salva anteriormente durante o 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 mais informações, consulte a documentação Microsoft.Web/Connections/accesspolicies (modelo ARM).
Portal do Azure
Para essa tarefa, use a ID do cliente salva anteriormente como a ID do aplicativo.
No portal do Azure, encontre e abra seu aplicativo lógico. No menu da sua aplicação lógica, em Fluxos de trabalho, selecione Conexões, que lista todas as ligações nos fluxos de trabalho do seu recurso de aplicação lógica.
Em Conexões de API, selecione uma conexão, que neste exemplo é
office365
.No menu de conexão, em Configurações, selecione Políticas de acesso>Adicionar.
No painel Adicionar política de acesso, na caixa de pesquisa, localize e selecione a ID do cliente salva anteriormente.
Quando terminar, selecione Adicionar.
Repita essas etapas para cada conexão hospedada no Azure em seu aplicativo lógico.
Automatizar a implantação do DevOps
Para criar e implantar aplicativos lógicos habilitados para Azure Arc, você pode usar os mesmos pipelines e processos dos aplicativos lógicos com base em locatário único. Para automatizar implantações de infraestrutura usando pipelines para DevOps, faça as seguintes alterações no nível da infraestrutura para implantações que não sejam de contêiner e de contêiner.
Implantação padrão (não contêiner)
Se você for usar a implantação de zip na implantação de aplicativo lógico, não será necessário configurar um registro do Docker para hospedar imagens de contêiner. Embora os aplicativos lógicos no Kubernetes tecnicamente sejam executados em contêineres, os Aplicativos Lógicos habilitados para Azure Arc gerenciam esses contêineres para você. Para esse cenário, conclua as seguintes tarefas ao configurar sua infraestrutura:
- Notifique o fornecedor de recursos de que está a criar uma aplicação lógica em Kubernetes.
- Inclua um Plano do Serviço de Aplicativo na sua implantação. Para mais informações, consulte Incluir Plano do Serviço de Aplicativo com implantação.
No modelo do ARM (modelo do Azure Resource Manager) inclua os seguintes valores:
Item | Propriedade JSON | Descrição |
---|---|---|
Location | location |
Verifique se está usando o mesmo local de recurso (região do Azure) que o seu local personalizado e o ambiente do Kubernetes. Os locais de recurso do seu aplicativo lógico, do local personalizado e do ambiente do Kubernetes devem ser todos iguais. Observação: Esse valor não é igual ao nome do seu local personalizado. |
Tipo de aplicativo | kind |
O tipo de aplicativo que você está implantando, para que a plataforma do Azure possa identificar seu aplicativo. No caso dos Aplicativos Lógicos do Azure, essas informações se parecem com o exemplo a seguir: kubernetes,functionapp,workflowapp,linux |
Local estendido | extendedLocation |
Esse objeto requer o "name" do seu local personalizado para o ambiente do Kubernetes e precisa ter o "type" definido como "CustomLocation" . |
ID do recurso do plano de hospedagem | serverFarmId |
O ID do recurso do Plano do Serviço de Aplicativo associado, formatado como segue:
|
Cadeia de conexão de armazenamento | AzureWebJobsStorage |
A cadeia de conexão para a sua conta de armazenamento Importante: você precisa fornecer a cadeia de conexão para a sua conta de armazenamento do modelo do ARM. Em cenários de produção, proteja e garanta a segurança desses segredos e informações confidenciais, por exemplo, usando um cofre de chaves. |
Modelo de ARM
O exemplo a seguir descreve uma amostra de um recurso dos Aplicativos Lógicos habilitados para Azure Arc que você pode usar em seu modelo do ARM. Para mais informações, consulte a documentação de formato de modelo (JSON) do Microsoft.Web/sites.
{
"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": "dotnet"
},
{
"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"
}
}
}
Observação
Por padrão, a configuração do aplicativo FUNCTIONS_WORKER_RUNTIME para seu aplicativo lógico é dotnet
.
Anteriormente, node
era o valor padrão. No entanto, dotnet
é agora o valor padrão para todos os aplicativos lógicos habilitados para Arc novos e existentes implantados, mesmo para aplicativos que tinham um valor diferente. Essa alteração não deve afetar o runtime do fluxo de trabalho e tudo deve funcionar da mesma maneira que antes. Para obter mais informações, consulte a configuração do aplicativo FUNCTIONS_WORKER_RUNTIME .
A configuração de aplicativo APP_KIND para o seu aplicativo lógico é definida como workflowApp, mas em alguns cenários essa configuração de aplicativo está ausente, por exemplo, devido a modelos do Azure Resource Manager ou outros cenários em que a configuração pode não estar incluída. Se determinadas ações, como a ação Executar Código JavaScript, não funcionarem ou o fluxo de trabalho parar de funcionar, verifique se a configuração de aplicativo APP_KIND existe e está definida como workflowapp. Para obter mais informações, confira a configuração de aplicativo APP_KIND.
Implantação de contêiner
Se preferir usar ferramentas de contêiner e processos de implantação, poderá colocar os aplicativos lógicos em contêineres e implantá-los nos Aplicativos Lógicos habilitados para Azure Arc. Para esse cenário, conclua as seguintes tarefas de nível superior ao configurar sua infraestrutura:
Configure um registro do Docker para hospedar suas imagens de contêiner.
Para colocar seu aplicativo lógico em contêineres, adicione o Dockerfile a seguir à pasta raiz do projeto de aplicativo lógico e siga as etapas para criar e publicar uma imagem no registro do Docker. Por exemplo, revise o Tutorial: Criar e implantar imagens de contêiner na nuvem com Tarefas do Registro de Contêiner do Azure.
Observação
Se você usa o SQL como seu provedor de armazenamento, use 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 fornecedor de recursos de que está a criar uma aplicação lógica em Kubernetes.
No modelo de implantação, aponte para a imagem de contêiner e registro do Docker onde você planeja implantar. Os Aplicativos Lógicos do Azure com base em locatário único usam essas informações para obter a imagem de contêiner do registro do Docker.
Inclua um Plano do Serviço de Aplicativo na sua implantação. Para mais informações, consulte Incluir Plano do Serviço de Aplicativo com implantação.
No modelo do ARM (modelo do Azure Resource Manager) inclua os seguintes valores:
Item | Propriedade JSON | Descrição |
---|---|---|
Location | location |
Verifique se está usando o mesmo local de recurso (região do Azure) que o seu local personalizado e o ambiente do Kubernetes. Os locais de recurso do seu aplicativo lógico, do local personalizado e do ambiente do Kubernetes devem ser todos iguais. Observação: Esse valor não é igual ao nome do seu local personalizado. |
Tipo de aplicativo | kind |
O tipo de aplicativo que você está implantando, para que a plataforma do Azure possa identificar seu aplicativo. No caso dos Aplicativos Lógicos do Azure, essas informações se parecem com o exemplo a seguir: kubernetes,functionapp,workflowapp,container |
Local estendido | extendedLocation |
Esse objeto requer o "name" do seu local personalizado para o ambiente do Kubernetes e precisa ter o "type" definido como "CustomLocation" . |
Nome do contêiner | linuxFxVersion |
O nome do seu contêiner, formatado da seguinte maneira: DOCKER\|<container-name> |
ID do recurso do plano de hospedagem | serverFarmId |
O ID do recurso do Plano do Serviço de Aplicativo associado, formatado como segue:
|
Cadeia de conexão de armazenamento | AzureWebJobsStorage |
A cadeia de conexão para a 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 no modelo do ARM. Em cenários ou ambientes de produção, proteja e garanta a segurança desses segredos e informações confidenciais, por exemplo, usando um cofre de chaves. |
Para referenciar o Registro do Docker e a imagem de contêiner, inclua estes valores em seu modelo:
Item | Propriedade 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 de ARM
O exemplo a seguir descreve uma amostra de um recurso dos Aplicativos Lógicos habilitados para Azure Arc que você pode usar em seu modelo do ARM. Para mais informações, consulte a documentação de formato de modelo (modelo do ARM) do Microsoft.Web/sites.
{
"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": "dotnet"
},
{
"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>"
}
}
}
Observação
Anteriormente, o valor padrão da configuração FUNCTIONS_WORKER_RUNTIME era node
.
Agora, dotnet
é o valor padrão para todos os aplicativos lógicos Standard novos e existentes implantados, mesmo para aplicativos que tinham um valor diferente. Essa alteração não deve afetar o runtime do fluxo de trabalho e tudo deve funcionar da mesma maneira que antes. Para obter mais informações, consulte a configuração do aplicativo FUNCTIONS_WORKER_RUNTIME.
Incluir Plano do Serviço de Aplicativo na implantação
Tanto no caso de uma implantação, quanto para uma implantação de contêiner, será preciso incluir um plano do Serviço de Aplicativo com a implantação. Embora esse plano se torne menos relevante em um ambiente do 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 esse plano, se as suas implantações usarem modelos do tipo "infraestrutura como código", você precisará criar explicitamente o recurso do Azure para o plano. O recurso de plano de hospedagem não muda, apenas as informações do sku
.
No modelo do ARM (modelo do Azure Resource Manager) inclua os seguintes valores:
Item | Propriedade JSON | Descrição |
---|---|---|
Location | location |
Verifique se está usando o mesmo local de recurso (região do Azure) que o seu local personalizado e o ambiente do Kubernetes. Os locais de recurso do seu aplicativo lógico, do local personalizado e do ambiente do Kubernetes devem ser todos iguais. Observação: Esse valor não é igual ao nome do seu local personalizado. |
Tipo | kind |
O tipo de plano do serviço de aplicativo que está sendo implantado que precisa ser kubernetes,linux |
Local estendido | extendedLocation |
Esse objeto requer o "name" do seu local personalizado para o ambiente do Kubernetes e precisa ter o "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 do 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 de ARM
O exemplo a seguir descreve uma amostra da definição de recurso do plano do serviço de aplicativo que você pode usar com a implantação do aplicativo. Para mais informações, consulte a documentação de formato de modelo (modelo do ARM) do Microsoft.Web/sites.
{
"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 Azure Arc gerenciam automaticamente o escala de 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 é disparada, 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. Em seguida, o runtime organiza esses trabalhos em um sequenciador de trabalho. Esse sequenciador orquestra a execução dos trabalhos para a definição de fluxo de trabalho, mas o mecanismo de orquestração de trabalhos subjacentes dos Aplicativos Lógicos do Azure executa cada trabalho.
Para fluxos de trabalho com estado, o mecanismo de orquestração de trabalhos usa mensagens de fila de armazenamento para agendar trabalhos nos sequenciadores de trabalho. Nos bastidores, os dispatchers de trabalho (ou as instâncias de trabalho do Dispatcher) 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 estado, o mecanismo de orquestração mantém os estados de ação completamente na memória.
Para alterar o comportamento de dimensionamento padrão, você deve especificar números mínimos e máximos diferentes das instâncias de trabalho que monitoram as filas de trabalho.
Pré-requisitos para alterar o dimensionamento
Em seu cluster do Kubernetes habilitado para Azure Arc, a extensão do pacote do Serviço de Aplicativo criada anteriormente precisa ter a propriedade keda.enabled
definida como true
. Para mais informações, consulte os pré-requisitos de nível superior.
Alterar o limite de dimensionamento
Nos Aplicativos Lógicos habilitados para Azure Arc, o comprimento da fila de trabalho dispara um evento de escala e define um limite para a frequência do dimensionamento do aplicativo lógico. Você pode alterar o comprimento da fila, que tem o valor padrão definido como 20
trabalhos. Para dimensionar com menor frequência, aumente o comprimento da fila. Para dimensionar com maior frequência, diminua o comprimento da fila. Esse processo pode exigir o uso de tentativa e erro.
Para alterar o comprimento da fila, no arquivo de nível raiz host.jsondo projeto do aplicativo lógico, configure a propriedade Runtime.ScaleMonitor.KEDA.TargetQueueLength
, por exemplo:
"extensions": {
"workflow": {
"settings": {
"Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
}
}
}
Alterar o valor máximo da taxa de transferência
Em um recurso de aplicativo lógico preexistente, 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 máximo de instâncias de trabalho que podem monitorar as filas de trabalho.
Para alterar esse máximo, use o CLI do Azure (somente para criação de aplicativos lógicos) e o portal do Azure.
CLI do Azure
Para criar um aplicativo lógico, execute o comando, az logicapp create
, com 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 a contagem máxima de instâncias, use o parâmetro --settings
:
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 aplicativo lógico baseado em locatário único, adicione ou edite o valor de configuração K8SE_APP_MAX_INSTANCE_COUNT
seguindo essas etapas:
No portal do Azure, encontre e abra o seu aplicativo lógico com base em locatário único.
No menu do aplicativo lógico, acesse Configurações e selecione Configuração.
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.
Selecione Nova configuração de aplicativo e adicione a configuração
K8SE_APP_MAX_INSTANCE_COUNT
com o valor máximo que desejar.Edite o valor existente da configuração
K8SE_APP_MAX_INSTANCE_COUNT
.
Quando terminar, salve suas alterações.
Alterar o valor mínimo da taxa de transferência
Em um recurso de aplicativo lógico preexistente, 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 mínimo de instâncias de trabalho que podem monitorar as filas de trabalho. Para garantir alta disponibilidade ou desempenho, aumente esse valor.
Para alterar o mínimo, use o CLI do Azure ou o portal do Azure.
CLI do Azure
Para um recurso de aplicação lógica existente, execute o comando, az logicapp scale
, com os seguintes parâmetros:
az logicapp scale --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--instance-count 5
Para criar um aplicativo lógico, execute o comando, az logicapp create
, com 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 aplicativo lógico baseado em locatário único, altere o valor da propriedade Escalabilidade seguindo essas etapas:
No portal do Azure, encontre e abra o aplicativo lógico com base em locatário único.
No menu do aplicativo lógico, em Configurações, selecione Escalar horizontalmente.
No painel Escalar horizontalmente, arraste o controle deslizante de mínimo de instâncias para o valor desejado.
Quando terminar, salve suas alterações.
Solução de problemas
Para obter mais informações sobre os aplicativos lógicos implantados, experimente as seguintes opções:
Acessar definições e configuração de aplicativos
Para acessar as configurações do aplicativo, execute o comando, az logicapp config appsettings
, com 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 set
, com os parâmetros a seguir. Certifique-se de usar o parâmetro --settings
com o nome e o 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 delete
, com os parâmetros a seguir. Use o parâmetro --setting-names
com o nome da configuração que você deseja excluir.
az logicapp config appsettings delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--setting-names MySetting
Exibir as propriedades do aplicativo lógico
Para visualizar as informações e propriedades do seu aplicativo, execute o comando az logicapp show
, com os seguintes parâmetros:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Monitorar atividade de fluxo de trabalho
Para exibir a atividade de um fluxo de trabalho em seu aplicativo lógico, siga estas etapas:
No portal do Azure, localize o aplicativo lógico implantado e abra-o.
No menu do aplicativo lógico, selecione fluxos de trabalho e escolha o fluxo de trabalho.
No menu de fluxo de trabalho, selecione Monitorar.
Coletar logs
Para obter dados registrados sobre o aplicativo lógico, habilite o Application Insights no aplicativo lógico, caso ele ainda não esteja habilitado.