Compartilhar via


Configurar a sua própria infraestrutura para aplicativos lógicos Standard usando a implantação híbrida (versão prévia)

Aplica-se a: Aplicativos Lógicos do Azure (Standard)

Observação

Essa funcionalidade está em versão prévia, incorre em encargos de uso e está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.

Às vezes, você precisa configurar e gerenciar a sua própria infraestrutura para atender a necessidades específicas de conformidade regulatória, privacidade de dados ou restrições de rede. Os Aplicativos Lógicos do Azure oferecem um modelo de implantação híbrida para que você possa implantar e hospedar fluxos de trabalho do aplicativo lógico Standard em cenários locais ou de nuvem privada ou pública. Este modelo oferece os recursos para hospedar soluções de integração em ambientes parcialmente conectados quando você precisa usar o processamento local, o armazenamento de dados e o acesso à rede. Com a opção híbrida, você tem liberdade e flexibilidade para escolher o melhor ambiente para os seus fluxos de trabalho.

Como a implantação híbrida funciona

Os fluxos de trabalho de aplicativo lógico Standard com a opção de implantação híbrida são alimentados por um runtime dos Aplicativos Lógicos do Azure hospedado em uma extensão dos Aplicativos de Contêiner do Azure. Em seu fluxo de trabalho, quaisquer operações internas são executadas localmente com o runtime para que você obtenha maior taxa de transferência para acesso a fontes de dados locais. Se você precisar de acesso a recursos de dados não locais, por exemplo, serviços baseados em nuvem, como Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn ou ServiceNow, é possível escolher operações de mais de 1.000 conectores hospedados no Azure para incluir em seus fluxos de trabalho. Para obter mais informações, confira Conectores gerenciados (compartilhados). Embora você precise ter conectividade com a Internet para gerenciar o seu aplicativo lógico no portal do Azure, a natureza semiconectada dessa plataforma permite que você absorva quaisquer problemas temporários de conectividade com a Internet.

Por exemplo, se você tiver um cenário local, a visão geral da arquitetura a seguir mostrará onde os fluxos de trabalho do aplicativo lógico Standard são hospedados e executados no modelo híbrido. O ambiente parcialmente conectado inclui os seguintes recursos para hospedar e trabalhar com os seus aplicativos lógicos Standard, que são implantados como recursos dos Aplicativos de Contêiner do Azure:

  • Clusters do Serviço de Kubernetes do Azure (AKS) habilitado para Azure Arc
  • Um banco de dados SQL para armazenar localmente o histórico de execução de fluxo de trabalho e entradas e saídas para processamento
  • Um compartilhamento de arquivo SMB para armazenar localmente artefatos usados por seus fluxos de trabalho

Diagrama com a visão geral de arquitetura para onde os aplicativos lógicos Standard são hospedados em um ambiente parcialmente conectado.

Para hospedagem, você também pode configurar e usar clusters do Kubernetes habilitados para Azure Arc na infraestrutura hiperconvergente (HCI) do Azure Stack ou clusters do Kubernetes habilitados para Azure Arc no Windows Server.

Para saber mais, confira a seguinte documentação:

Este guia de instruções mostra como configurar os recursos locais necessários em sua infraestrutura para que você possa criar, implantar e hospedar um fluxo de trabalho de aplicativo lógico Standard usando o modelo de implantação híbrida.

Como funciona a cobrança

Com a opção híbrida, você é responsável pelos seguintes itens:

  • Sua infraestrutura do Kubernetes habilitado para Azure Arc
  • Sua licença do SQL Server
  • Uma cobrança de US$ 0,18 por vCPU/hora para dar suporte a cargas de trabalho do aplicativo lógico Standard

Neste modelo de cobrança, você paga apenas pelo que precisa e dimensiona recursos para cargas de trabalho dinâmicas sem precisar comprar para o pico de uso. Para fluxos de trabalho que usam operações de conector hospedadas no Azure, como o Microsoft Teams ou o Microsoft Office 365, os preços Standard (locatário único) existentes se aplicam a essas execuções de operação.

Limitações

  • A implantação híbrida está disponível no momento e tem suporte apenas para os seguintes clusters do Kubernetes habilitado para Azure Arc:

    • Cluster do Kubernetes habilitados para Azure Arc
    • Clusters do Kubernetes habilitado para Azure Arc no Azure Stack HCI
    • Clusters do Kubernetes habilitado para Azure Arc no Windows Server

Pré-requisitos

Criar um cluster do Kubernetes

Antes de implantar o seu aplicativo lógico Standard como recurso local em um cluster do Kubernetes habilitado para Azure Arc em um ambiente conectado aos Aplicativos de Contêiner do Azure, primeiro você precisa de um cluster do Kubernetes. Posteriormente, você conectará esse cluster ao Azure Arc para ter um cluster do Kubernetes habilitado para Azure Arc.

O cluster do Kubernetes requer conectividade de entrada e saída com o banco de dados SQL que você criará posteriormente como o provedor de armazenamento e com o compartilhamento de arquivos SMB que você criará posteriormente para armazenamento de artefatos. Esses recursos devem existir na mesma rede.

Observação

Você também pode criar um cluster do Kubernetes na infraestrutura do Azure Stack HCI ou no cluster do Kubernetes no Windows Server e aplicar as etapas neste guia para conectar o cluster ao Azure Arc e configurar o seu ambiente conectado. Para obter mais informações sobre o Azure Stack HCI e o AKS no Windows Server, confira os seguintes recursos:

  1. Defina as seguintes variáveis de ambiente para o cluster do Kubernetes que você deseja criar:

    SUBSCRIPTION="<Azure-subscription-ID>"
    AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>"
    AKS_NAME="<aks-cluster-name>"
    LOCATION="eastus"
    
    Parâmetro Obrigatório Valor Descrição
    SUBSCRIPTION Sim <ID da assinatura do Azure> A ID da assinatura do Azure
    AKS_CLUSTER_GROUP_NAME Sim <aks-cluster-resource-group-name> O nome do grupo de recursos do Azure a ser usado com o cluster do Kubernetes. O nome desse recurso precisa ser exclusivo em todas as regiões e pode conter somente letras, números, hífens (-), sublinhados (_), parênteses (()) e pontos (.).

    Este exemplo usa Hybrid-RG.
    AKS_NAME Sim <aks-cluster-name> O nome do cluster do Kubernetes.
    LOCATION Sim <Azure-region> Uma região do Azure que dá suporte aos Aplicativos de Contêiner do Azure no Kubernetes habilitado para Azure Arc.

    Esse exemplo usa eastus.
  2. Execute os seguintes comandos usando o ambiente do Bash no Azure Cloud Shell ou localmente usando a CLI do Azure instalada em seu computador:

    Observação

    Certifique-se de alterar os valores de nó de contagem máxima e de contagem mínima com base em seus requisitos de carga.

    az login
    az account set --subscription $SUBSCRIPTION
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az extension add --name k8s-extension --upgrade --yes
    az group create
       --name $AKS_CLUSTER_GROUP_NAME
       --location $LOCATION
    az aks create \
       --resource-group $AKS_CLUSTER_GROUP_NAME \
       --name $AKS_NAME \
       --enable-aad \
       --generate-ssh-keys \
       --enable-cluster-autoscaler \
       --max-count 6 \
       --min-count 1
    
    Parâmetro Obrigatório Valor Descrição
    max count Não <max-nodes-value> O número máximo de nós a serem usados para o dimensionador automático quando você inclui a opção enable-cluster-autoscaler. Este valor varia de 1 a 1000.
    min count Não <min-nodes-value> O número mínimo de nós a serem usados para o dimensionador automático quando você inclui a opção enable-cluster-autoscaler. Este valor varia de 1 a 1000.

    Para saber mais, consulte os recursos a seguir:

Conectar o cluster do Kubernetes ao Azure Arc

Para criar o cluster do Kubernetes habilitado para Azure Arc, conecte o cluster do Kubernetes ao Azure Arc.

Observação

Você pode encontrar as etapas nesta seção e em diante para criar o seu ambiente conectado em um script chamado EnvironmentSetup.ps1, que você pode encontrar no repositório GitHub chamado Azure/logicapps. Você pode modificar e usar este script para atender aos seus requisitos e cenários.

O script não está assinado, portanto, antes de executar o script, execute o seguinte comando do Azure PowerShell como administrador para definir a política de execução:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Para obter mais informações, confira Set-ExecutionPolicy.

  1. Instale as seguintes extensões da CLI do Azure:

    az extension add --name connectedk8s --upgrade --yes 
    az extension add --name k8s-extension --upgrade --yes 
    az extension add --name customlocation --upgrade --yes 
    az extension add --name containerapp --upgrade --yes 
    

    Para saber mais, consulte os recursos a seguir:

  2. Registre os seguintes namespaces necessários:

    az provider register --namespace Microsoft.ExtendedLocation --wait
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az provider register --namespace Microsoft.App --wait
    az provider register --namespace Microsoft.OperationalInsights --wait
    

    Para saber mais, consulte os recursos a seguir:

  3. Instale a interface de linha de comando (CLI) do Kubernetes chamada kubectl:

    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
    
    choco install kubernetes-cli -y
    

    Para saber mais, consulte os recursos a seguir:

  4. Instale o gerenciador de pacotes do Kubernetes chamado Helm:

    choco install kubernetes-helm
    

    Para saber mais, consulte os recursos a seguir:

  5. Instale o driver SMB usando os seguintes comandos do Helm:

    1. Adicione o repositório de gráfico especificado, obtenha as informações mais recentes dos gráficos disponíveis e instale o arquivo morto do gráfico especificado.

      helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts 
      helm repo update
      helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0 
      

      Para saber mais, consulte os recursos a seguir:

    2. Confirme se o driver SMB está instalado executando o seguinte comando kubectl, que deve listar smb.csi.k8s.io:

      kubectl get csidriver
      

      Para obter mais informações, confira kubectl get.

Conectar o cluster do Kubernetes ao Azure Arc

  1. Teste a sua conexão com o cluster obtendo o arquivo kubeconfig:

    az aks get-credentials \
       --resource-group $AKS_CLUSTER_GROUP_NAME \
       --name $AKS_NAME \
       --admin
    kubectl get ns 
    

    Por padrão, o arquivo kubeconfig é salvo no caminho, ~/.kube/config. Esse comando se aplica ao nosso cluster do Kubernetes de exemplo e difere para outros tipos de clusters do Kubernetes.

    Para saber mais, consulte os recursos a seguir:

  2. Com base na implantação do cluster do Kubernetes, defina a seguinte variável de ambiente para fornecer um nome a ser usado para o grupo de recursos do Azure que contém o seu cluster e recursos habilitados para Azure Arc:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    Parâmetro Obrigatório Valor Descrição
    GROUP_NAME Sim <Azure-Arc-cluster-resource-group-name> O nome do grupo de recursos do Azure a ser usado com o seu cluster habilitado para Azure Arc e outros recursos, como a extensão dos Aplicativos de Contêiner do Azure, o local personalizado e o ambiente conectado dos Aplicativos de Contêiner do Azure. O nome desse recurso precisa ser exclusivo em todas as regiões e pode conter somente letras, números, hífens (-), sublinhados (_), parênteses (()) e pontos (.).

    Este exemplo usa Hybrid-Arc-RG.
  3. Crie o grupo de recursos do Azure para o seu cluster e recursos habilitados para Azure Arc:

    az group create \
       --name $GROUP_NAME \
       --location $LOCATION
    

    Para saber mais, consulte os recursos a seguir:

  4. Defina a seguinte variável de ambiente para fornecer um nome para o cluster do Kubernetes habilitado para Azure Arc:

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    Parâmetro Obrigatório Valor Descrição
    CONNECTED_CLUSTER_NAME Sim <Azure-Arc-cluster-resource-group-name>-cluster O nome a ser usado para o cluster habilitado para Azure Arc. O nome desse recurso precisa ser exclusivo em todas as regiões e pode conter somente letras, números, hífens (-), sublinhados (_), parênteses (()) e pontos (.).

    Este exemplo usa Hybrid-Arc-RG-cluster.
  5. Conecte o cluster do Kubernetes criado anteriormente ao Azure Arc:

    az connectedk8s connect \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME
    

    Para saber mais, consulte os recursos a seguir:

  6. Valide a conexão entre o Azure Arc e o cluster do Kubernetes:

    az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME
    

    Se a saída mostrar que o valor da propriedade provisioningState não está definido como Bem-sucedido, execute o comando novamente após um minuto.

    Para saber mais, consulte os recursos a seguir:

Criar um workspace do Azure Log Analytics

Você pode criar um workspace opcional, mas recomendado, do Azure Log Analytics, que fornece acesso a logs para aplicativos executados no cluster do Kubernetes habilitado para Azure Arc.

  1. Defina a variável de ambiente a seguir para fornecer um nome ao workspace do Log Analytics:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    Parâmetro Obrigatório Valor Descrição
    WORKSPACE_NAME Sim <Azure-Arc-cluster-resource-group-name>-workspace O nome a ser usado para o seu workspace do Log Analytics. Esse nome deve ser exclusivo em seu grupo de recursos.

    Este exemplo usa Hybrid-Arc-RG-workspace.
  2. Crie o workspace do Log Analytics:

    az monitor log-analytics workspace create \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME
    

    Para saber mais, consulte os recursos a seguir:

  3. Obtenha a ID codificada em Base64 e a chave compartilhada do seu workspace do Log Analytics. Você precisa desses valores para uma etapa posterior.

    LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME \
       --query customerId \
       --output tsv)
    
    LOG_ANALYTICS_WORKSPACE_ID_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_WORKSPACE_ID))
    
    LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \
       --resource-group $GROUP_NAME \
       --workspace-name $WORKSPACE_NAME \
       --query primarySharedKey \
       --output tsv)
    
    LOG_ANALYTICS_KEY_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_KEY))
    
    Parâmetro Obrigatório Valor Descrição
    LOG_ANALYTICS_WORKSPACE_ID Sim A ID do workspace do Log Analytics.
    LOG_ANALYTICS_WORKSPACE_ID_ENC Sim A ID codificada em base64 do seu workspace do Log Analytics.
    LOG_ANALYTICS_KEY Sim A chave compartilhada para o seu workspace do Log Analytics.
    LOG_ANALYTICS_ENC Sim A chave compartilhada codificada em Base64 do seu workspace do Log Analytics.

    Para saber mais, consulte os recursos a seguir:

Criar e instalar a extensão dos Aplicativos de Contêiner do Azure

Agora, crie e instale a extensão dos Aplicativos de Contêiner do Azure com o seu cluster do Kubernetes habilitado para Azure Arc como um recurso local.

Importante

Se você quiser implantar no AKS no Azure Stack HCI, antes de criar e instalar a extensão dos Aplicativos de Contêiner do Azure, certifique-se de configurar o HAProxy ou um balanceador de carga personalizado.

  1. Defina as seguintes variáveis de ambiente com os seguintes valores:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    Parâmetro Obrigatório Valor Descrição
    EXTENSION_NAME Sim logicapps-aca-extension O nome da extensão dos Aplicativos de Contêiner do Azure.
    NAMESPACE Sim logicapps-aca-ns O namespace do cluster em que você deseja provisionar recursos.
    CONNECTED_ENVIRONMENT_NAME Sim <connected-environment-name> Um nome exclusivo a ser usado para o ambiente conectado dos Aplicativos de Contêiner do Azure. Este nome se torna parte do nome de domínio do aplicativo lógico Standard que você cria, implanta e hospeda no ambiente conectado dos Aplicativos de Contêiner do Azure.
  2. Crie e instale a extensão com o Log Analytics habilitado para o cluster do Kubernetes habilitado para Azure Arc. Posteriormente, não é possível adicionar o Log Analytics à extensão.

    az k8s-extension create \
       --resource-group $GROUP_NAME \
       --name $EXTENSION_NAME \
       --cluster-type connectedClusters \
       --cluster-name $CONNECTED_CLUSTER_NAME \
       --extension-type 'Microsoft.App.Environment' \
       --release-train stable \
       --auto-upgrade-minor-version true \
       --scope cluster \
       --release-namespace $NAMESPACE \
       --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \
       --configuration-settings "appsNamespace=${NAMESPACE}" \
       --configuration-settings "keda.enabled=true" \
       --configuration-settings "keda.logicAppsScaler.enabled=true" \
       --configuration-settings "keda.logicAppsScaler.replicaCount=1" \
       --configuration-settings "containerAppController.api.functionsServerEnabled=true" \
       --configuration-settings "envoy.externalServiceAzureILB=false" \
       --configuration-settings "functionsProxyApiConfig.enabled=true" \
       --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \
       --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${GROUP_NAME}" \
       --configuration-settings "logProcessor.appLogs.destination=log-analytics" \
       --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \
       --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"
    
    Parâmetro Obrigatório Descrição
    Microsoft.CustomLocation.ServiceAccount Sim A conta de serviço criada para o local personalizado.

    Recomendação: defina o valor como padrão.
    appsNamespace Sim O namespace a ser usado para criar definições e revisões de aplicativo. Esse valor deve corresponder ao namespace de versão para a extensão dos Aplicativos de Contêiner do Azure.
    clusterName Sim O nome do ambiente do Kubernetes da extensão dos Aplicativos de Contêiner do Azure a ser criado para a extensão.
    keda.enabled Sim Habilite o Dimensionamento Automático Controlado por Eventos do Kubernetes (KEDA). Este valor é necessário e deve ser definido como true.
    keda.logicAppsScaler.enabled Sim Habilite o dimensionador de Aplicativos Lógicos do Azure no KEDA. Este valor é necessário e deve ser definido como true.
    keda.logicAppsScaler.replicaCount Sim O número inicial de dimensionadores de aplicativos lógicos a serem iniciados. O valor padrão definido como 1. Esse valor aumentará ou reduzirá verticalmente para 0, se nenhum aplicativo lógico existir no ambiente.
    containerAppController.api.functionsServerEnabled Sim Habilite o serviço responsável pela conversão de gatilhos de fluxo de trabalho do aplicativo lógico em objetos escalados por KEDA. Este valor é necessário e deve ser definido como true.
    envoy.externalServiceAzureILB Sim Determine se o envoy atua como um balanceador de carga interno ou um balanceador de carga público.

    - true: o enviado atua como um balanceador de carga interno. O runtime dos Aplicativos Lógicos do Azure só pode ser acessado na rede privada.

    - false: O envoy atua como um balanceador de carga público. O runtime dos Aplicativos Lógicos do Azure é acessível pela rede pública.
    functionsProxyApiConfig.enabled Sim Habilite o serviço proxy que facilita o acesso à API ao runtime dos Aplicativos Lógicos do Azure no portal do Azure. Este valor é necessário e deve ser definido como true.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Sim, mas somente quando o cluster subjacente for o Serviço de Kubernetes do Azure. O nome do grupo de recursos no qual o cluster do Kubernetes existe.
    logProcessor.appLogs.destination Não O destino a ser usado para logs de aplicativos. O valor é log-analytics ou nenhum, o que desabilita o registro em log.
    logProcessor.appLogs.logAnalyticsConfig.customerId Sim, mas somente quando logProcessor.appLogs.destination é definido como log-analytics. A ID codificada em Base64 do seu workspace do Log Analytics. Defina este parâmetro como uma configuração protegida.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Sim, mas somente quando logProcessor.appLogs.destination é definido como log-analytics. A chave compartilhada codificada em Base64 do seu workspace do Log Analytics. Defina este parâmetro como uma configuração protegida.

    Para saber mais, consulte os recursos a seguir:

  3. Salve o valor da ID da extensão de Aplicativos de Contêiner do Azure para uso posterior:

    EXTENSION_ID=$(az k8s-extension show \
       --cluster-type connectedClusters \
       --cluster-name $CONNECTED_CLUSTER_NAME \
       --resource-group $GROUP_NAME \
       --name $EXTENSION_NAME \
       --query id \
       --output tsv)
    
    Parâmetro Obrigatório Valor Descrição
    EXTENSION_ID Sim <extension-ID> A ID da extensão dos Aplicativos de Contêiner do Azure.

    Para saber mais, consulte os recursos a seguir:

  4. Antes de continuar, aguarde até que a extensão seja totalmente instalada. Para que a sessão do terminal aguarde até que a instalação seja concluída, execute o seguinte comando:

    az resource wait \
       --ids $EXTENSION_ID \
       --custom "properties.provisioningState!='Pending'" \
       --api-version "2020-07-01-preview" 
    

    Para saber mais, consulte os recursos a seguir:

Criar o seu local personalizado

  1. Defina as seguintes variáveis de ambiente com os valores especificados:

    CUSTOM_LOCATION_NAME="my-custom-location"
    
    CONNECTED_CLUSTER_ID=$(az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME \
       --query id \
       --output tsv)
    
    Parâmetro Obrigatório Valor Descrição
    CUSTOM_LOCATION_NAME Sim my-custom-location O nome a ser usado para o seu local personalizado.
    CONNECTED_CLUSTER_ID Sim <Azure-Arc-cluster-ID> A ID do cluster do Kubernetes habilitado para Azure Arc.

    Para saber mais, consulte os recursos a seguir:

  2. Crie a localização personalizada:

    az customlocation create \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --host-resource-id $CONNECTED_CLUSTER_ID \
       --namespace $NAMESPACE \
       --cluster-extension-ids $EXTENSION_ID \
       --location $LOCATION
    

    Observação

    Se você tiver problemas ao criar um local personalizado em seu cluster, talvez seja necessário habilitar o recurso de localização personalizado em seu cluster. Esta etapa será necessária caso você tenha entrado na CLI do Azure usando uma entidade de serviço ou tenha entrado como um usuário do Microsoft Entra com permissões restritas no recurso do cluster.

    Para saber mais, consulte os recursos a seguir:

  3. Valide se o local personalizado foi criado com sucesso:

    az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME
    

    Se a saída mostrar que o valor da propriedade provisioningState não está definido como Bem-sucedido, execute o comando novamente após um minuto.

  4. Salve a ID de local personalizado para uso em uma etapa posterior:

    CUSTOM_LOCATION_ID=$(az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --query id \
       --output tsv)
    
    Parâmetro Obrigatório Valor Descrição
    CUSTOM_LOCATION_ID Sim <my-custom-location-ID> A ID do seu local personalizado.

    Para saber mais, consulte os recursos a seguir:

Criar o ambiente conectado dos Aplicativos de Contêiner do Azure

Agora, crie o seu ambiente conectado dos Aplicativos de Contêiner do Azure para o seu aplicativo lógico Standard usar.

az containerapp connected-env create \
   --resource-group $GROUP_NAME \
   --name $CONNECTED_ENVIRONMENT_NAME \
   --custom-location $CUSTOM_LOCATION_ID \
   --location $LOCATION

Para saber mais, consulte os recursos a seguir:

Criar um provedor de armazenamento do SQL Server

Os fluxos de trabalho de aplicativo lógico Standard no modelo de implantação híbrida usam um banco de dados SQL como provedor de armazenamento para os dados usados pelos fluxos de trabalho e o runtime dos Aplicativos Lógicos do Azure, por exemplo, histórico de execução de fluxo de trabalho, entradas, saídas e assim por diante.

Seu banco de dados SQL requer conectividade de entrada e saída com o cluster do Kubernetes, portanto, esses recursos devem existir na mesma rede.

  1. Configure qualquer uma das seguintes edições do SQL Server:

    Para obter mais informações, confira Configurar o armazenamento do banco de dados SQL para fluxos de trabalho do aplicativo lógico Standard.

  2. Confirme se o banco de dados SQL está na mesma rede que o cluster do Kubernetes habilitado para Arc e o compartilhamento de arquivos SMB.

  3. Localize e salve a cadeia de conexão do banco de dados SQL criado por você.

Configurar o compartilhamento de arquivo SMB para armazenamento de artefatos

Para armazenar artefatos como mapas, esquemas e assemblies para o recurso de aplicativo lógico (aplicativo de contêiner), você precisa ter um compartilhamento de arquivos que use o protocolo SMB.

  • Você precisa de acesso do administrador para configurar o compartilhamento de arquivo SMB.

  • O compartilhamento de arquivo SMB deve existir na mesma rede que o cluster do Kubernetes e o banco de dados SQL.

  • O compartilhamento de arquivo SMB requer conectividade de entrada e saída com o cluster do Kubernetes. Se você habilitou as restrições de rede virtual do Azure, certifique-se de que o compartilhamento de arquivo existe na mesma rede virtual que o cluster do Kubernetes ou em uma rede virtual emparelhada.

  • Não use o mesmo caminho exato de compartilhamento de arquivos para vários aplicativos lógicos.

  • Você pode usar compartilhamentos de arquivo SMB separados para cada aplicativo lógico ou usar pastas diferentes no mesmo compartilhamento de arquivos SMB, desde que essas pastas não estejam aninhadas. Por exemplo, não faça com que um aplicativo lógico use o caminho raiz e, em seguida, faça com que outro aplicativo lógico use uma subpasta.

  • Para implantar o seu aplicativo lógico usando o Visual Studio Code, certifique-se de que o computador local com o Visual Studio Code possa acessar o compartilhamento de arquivo.

Configurar o compartilhamento de arquivo SMB no Windows

Certifique-se de que o compartilhamento de arquivos SMB exista na mesma rede virtual do cluster em que você monta o compartilhamento de arquivos.

  1. No Windows, vá para a pasta que você deseja compartilhar, abra o menu de atalho e selecione Propriedades.

  2. Na guia Compartilhamento, selecione Compartilhar.

  3. Na caixa que é aberta, selecione uma pessoa à qual você deseja conceder acesso ao compartilhamento de arquivo.

  4. Selecione Compartilhar e copie o link para o caminho de rede.

    Se o computador local não estiver conectado a um domínio, substitua o nome do computador no caminho da rede pelo endereço IP.

  5. Salve o endereço IP para usar posteriormente como o nome do host.

Configurar os Arquivos do Azure como o seu compartilhamento de arquivo SMB

Como alternativa, para fins de teste, você pode usar os Arquivos do Azure como um compartilhamento de arquivo SMB. Certifique-se de que o compartilhamento de arquivos SMB exista na mesma rede virtual do cluster em que você monta o compartilhamento de arquivos.

  1. No portal do Azure, crie uma conta de armazenamento do Azure.

  2. No menu da conta de armazenamento, em Armazenamento de dados, selecione Compartilhamentos de arquivos.

  3. Na barra de ferramentas da página Compartilhamentos de arquivo, selecione + Compartilhamento de arquivo e forneça as informações necessárias para o compartilhamento de arquivo SMB.

  4. Após a implantação ser concluída, selecione Ir para o recurso.

  5. No menu de compartilhamento de arquivos, selecione Visão geral, se já não estiver selecionada.

  6. Na barra de ferramentas da página Visão geral, selecione Conectar. No painel Conectar, selecione Mostrar script.

  7. Copie os seguintes valores e salve-os em um lugar seguro para uso posterior:

    • O nome do host do compartilhamento de arquivos, por exemplo, mystorage.file.core.windows.net
    • Caminho de compartilhamento de arquivos
    • Nome de usuário sem localhost\
    • Senha
  8. Na barra de ferramentas da página Visão geral, selecione + Adicionar diretório e forneça um nome a ser usado para o diretório. Salve este nome para usar posteriormente.

Você precisa desses valores salvos para fornecer as suas informações de compartilhamento de arquivo SMB ao implantar o recurso de aplicativo lógico.

Para obter mais informações, confira Criar um compartilhamento de arquivo SMB do Azure.

Confirmar a conexão de compartilhamento de arquivo SMB

Para testar a conexão entre o cluster do Kubernetes habilitado para Arc e o compartilhamento de arquivo SMB e verificar se o compartilhamento de arquivos está configurado corretamente, siga estas etapas:

  • Se o compartilhamento de arquivo SMB não estiver no mesmo cluster, confirme se a operação de ping funciona do cluster do Kubernetes habilitado para Arc para a máquina virtual que tem o compartilhamento de arquivo SMB. Para verificar se a operação de ping funciona, siga estas etapas:

    1. No cluster do Kubernetes habilitado para Arc, crie um pod de teste que execute qualquer imagem do Linux, como BusyBox ou Ubuntu.

    2. Vá para o contêiner no pod e instale o pacote iputils-ping executando os seguintes comandos do Linux:

      apt-get update
      apt-get install iputils-ping
      
  • Para confirmar se o compartilhamento de arquivo SMB está configurado corretamente, siga estas etapas:

    1. No pod de teste com a mesma imagem do Linux, crie uma pasta que tenha o caminho chamado mnt/smb.

    2. Vá para o diretório raiz ou página inicial que contém a pasta mnt.

    3. Execute o comando a seguir:

      - mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}

  • Para confirmar se os artefatos foram carregados corretamente, conecte-se ao caminho de compartilhamento de arquivo SMB e verifique se existem arquivos de artefato na pasta correta especificada durante a implantação.

Próximas etapas

Criar fluxos de trabalho do aplicativo lógico Standard para implantação híbrida em sua própria infraestrutura