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 Azure Arc, 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:
- O que é o Azure Arc-enabled Logic Apps?
- Locatário único versus multilocatário nos Aplicativos Lógicos do Azure
- Visão geral do Azure Arc
- Visão geral do Serviço Kubernetes do Azure
- O que é o Kubernetes compatível com o Azure Arc?
- Locais personalizados no Kubernetes habilitado para Azure Arc
- Serviço de Aplicativo, Funções e Aplicativos Lógicos no Azure Arc (Visualização)
- Criar um cluster do Kubernetes compatível com o Azure Arc para executar o Serviço de Aplicações, as Funções e o Logic Apps (Pré-visualizaçã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,
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 obter mais informações, consulte a seguinte documentação:
- Serviço de Aplicativo, Funções e Aplicativos Lógicos no Azure Arc (Visualização)
- Extensões de cluster no Kubernetes habilitado para Azure Arc
- Criar um cluster do Kubernetes compatível com o Azure Arc para executar o Serviço de Aplicações, as Funções e o Logic Apps (Pré-visualização)
- Alterar o comportamento de dimensionamento padrã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 ArcGIS 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:
Crie um registro de aplicativo usando o
az ad sp create
comando.Para rever todos os detalhes, execute o
az ad sp show
comando.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:
Crie um novo registro de aplicativo Microsoft Entra usando o portal do Azure.
Após a conclusão da criação, encontre o novo registro do aplicativo no portal.
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.
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 ou o Visual Studio Code, 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.
Se não tiver esta extensão, consulte o guia de instalação do seu sistema operativo 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 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
Inicie sessão no portal do Azure. Verifique se a sua subscrição está ativa executando o seguinte comando:
az login
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.
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 create
, com 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 | Description |
---|---|
--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 create
, com 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 show
, com 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-zip
, com 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 MyBuildArtifacts.zip estrutura do arquivo:
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 start
, com 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 stop
, com 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 restart
, com 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 delete
, com 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 de uma identidade gerenciada por 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
No arquivo connections.json do seu projeto de aplicativo lógico, localize o
authentication
objeto para a conexão gerenciada. 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')" }
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 | Description |
---|---|
<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.
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 para o recurso do aplicativo lógico.
Em Conexões de API, selecione uma conexão, que está
office365
neste exemplo.No menu da conexão, em Configurações, selecione Adicionar políticas>de acesso.
No painel Adicionar política de acesso, na caixa de pesquisa, localize e selecione o ID do cliente salvo anteriormente.
Quando terminar, selecione Adicionar.
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:
- Notifique o provedor de recursos de que você está criando um aplicativo lógico no Kubernetes.
- 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 | Description |
---|---|---|
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. Observação: esse valor não é o mesmo que o nome do seu local personalizado. |
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:
|
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": "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"
}
}
}
Nota
Por padrão, FUNCTIONS_WORKER_RUNTIME configuração do aplicativo 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 implantados novos e existentes, mesmo para aplicativos que tinham um valor diferente. Essa alteração não deve afetar o tempo de execução 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 seu aplicativo lógico está 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 não funcionarem, como a ação Executar código JavaScript ou o fluxo de trabalho parar de funcionar, verifique se a configuração APP_KIND aplicativo existe e está definida como workflowapp. Para obter mais informações, consulte a configuração do aplicativo APP_KIND.
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 | Description |
---|---|---|
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. Observação: esse valor não é o mesmo que o nome do seu local personalizado. |
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:
|
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 | Description |
---|---|---|
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": "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>"
}
}
}
Nota
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 implantados novos e existentes, mesmo para aplicativos que tinham um valor diferente. Essa alteração não deve afetar o tempo de execução 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 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 | Description |
---|---|---|
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. Observação: esse valor não é o mesmo que o nome do seu local personalizado. |
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 trabalho 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 Arco 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 de 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 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 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:
No portal do Azure, localize e abra seu aplicativo lógico baseado em locatário único.
No menu do aplicativo lógico, em Configurações, 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 do aplicativo e adicione a
K8SE_APP_MAX_INSTANCE_COUNT
configuração com o valor máximo desejado.Edite o valor existente para a
K8SE_APP_MAX_INSTANCE_COUNT
configuração.
Quando terminar, salve 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 scale
, com 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 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 seu aplicativo lógico baseado em locatário único, altere o valor da propriedade Scale out seguindo estas etapas:
No portal do Azure, localize e abra seu aplicativo lógico baseado em locatário único.
No menu do aplicativo lógico, em Configurações, selecione Dimensionamento.
No painel Dimensionar, arraste o controle deslizante de instâncias mínimas para o valor desejado.
Quando terminar, salve 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 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 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 delete
, com os seguintes parâmetros. Certifique-se de usar o --setting-names
parâmetro 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 propriedades do aplicativo lógico
Para exibir as informações e propriedades do aplicativo, execute o comando, az logicapp show
, com 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:
No portal do Azure, localize e abra seu aplicativo lógico implantado.
No menu do aplicativo lógico, selecione Fluxos de trabalho e, em seguida, selecione seu fluxo de trabalho.
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.