Partilhar via


Configurar sua própria infraestrutura para aplicativos lógicos padrão usando implantação híbrida (Visualização)

Aplica-se a: Aplicativos Lógicos do Azure (Padrão)

Nota

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

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

Como funciona a implantação híbrida

Os fluxos de trabalho de aplicativos lógicos padrão com a opção de implantação híbrida são alimentados por um tempo de execução dos Aplicativos Lógicos do Azure hospedado em uma extensão de Aplicativos de Contêiner do Azure. Em seu fluxo de trabalho, todas as operações internas são executadas localmente com o tempo de execução para que você obtenha uma taxa de transferência mais alta para acesso a fontes de dados locais. Se precisar de acesso a recursos de dados não locais, por exemplo, serviços baseados na nuvem, como Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn ou ServiceNow, você pode escolher operações entre 1.000+ conectores hospedados no Azure para incluir em seus fluxos de trabalho. Para obter mais informações, consulte Conectores gerenciados (compartilhados). Embora você precise ter conectividade com a Internet para gerenciar 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 mostra onde os fluxos de trabalho do aplicativo lógico padrão são hospedados e executados no modelo híbrido. O ambiente parcialmente conectado inclui os seguintes recursos para hospedar e trabalhar com seus aplicativos lógicos Padrão, que são implantados como recursos de Aplicativos de Contêiner do Azure:

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

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

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

Para obter mais informações, veja 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 padrão usando o modelo de implantação híbrida.

Como funciona a faturação

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

  • Sua infraestrutura do Kubernetes habilitada para Azure Arc
  • Sua licença do SQL Server
  • Uma cobrança de US$ 0,18 por vCPU/hora para suportar cargas de trabalho de aplicativos lógicos padrão

Nesse modelo de cobrança, você paga apenas pelo que precisa e dimensiona recursos para cargas de trabalho dinâmicas sem ter que comprar para 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 padrão (locatário único) existentes se aplicam a essas execuções de operação.

Limitações

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

    • Clusters do Kubernetes compatíveis com o Azure Arc
    • Clusters Kubernetes habilitados para Azure Arc no Azure Stack HCI
    • Clusters Kubernetes habilitados para Azure Arc no Windows Server

Pré-requisitos

Criar um cluster do Kubernetes

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

Seu cluster Kubernetes requer conectividade de entrada e saída com o banco de dados SQL que você cria posteriormente como o provedor de armazenamento e com o compartilhamento de arquivos Server Message Block que você cria posteriormente para armazenamento de artefatos. Estes recursos devem existir na mesma rede.

Nota

Você também pode criar um cluster Kubernetes na infraestrutura HCI do Azure Stack ou cluster Kubernetes no Windows Server e aplicar as etapas neste guia para conectar seu cluster ao Azure Arc e configurar seu ambiente conectado. Para obter mais informações sobre o Azure Stack HCI e AKS no Windows Server, consulte 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 Necessário Valor Description
    SUBSCRIÇÃO Sim <Azure-subscription-ID> A ID da sua subscrição do Azure
    AKS_CLUSTER_GROUP_NAME Sim <aks-cluster-resource-group-name> O nome do grupo de recursos do Azure a ser usado com seu cluster do Kubernetes. Esse nome deve ser exclusivo entre regiões e pode conter apenas letras, números, hífenes (-), sublinhados (_), parênteses (()) e pontos (.).

    Este exemplo usa Hybrid-RG.
    AKS_NAME Sim <aks-cluster-name> O nome do cluster do Kubernetes.
    LOCALIZAÇÃO Sim <Azure-region> Uma região do Azure que dá suporte a aplicativos de contêiner do Azure no Kubernetes habilitado para Azure Arc.

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

    Nota

    Certifique-se de alterar os valores dos nós de contagem máxima e contagem mínima com base nos 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 Necessário Valor Description
    max count Não <valor-máx-nós> O número máximo de nós a serem usados para o autoscaler quando você inclui a enable-cluster-autoscaler opção. Este valor varia de 1 a 1000.
    min count Não <valor min-nós> O número mínimo de nós a serem usados para o autoscaler quando você inclui a enable-cluster-autoscaler opção. Este valor varia de 1 a 1000.

    Para obter mais informações, consulte os seguintes recursos:

Conectar o cluster do Kubernetes ao Azure Arc

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

Nota

Você pode encontrar as etapas nesta seção e em diante até a criação de 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 esse 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, consulte 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 obter mais informações, consulte os seguintes recursos:

  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 obter mais informações, consulte os seguintes recursos:

  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 obter mais informações, consulte os seguintes recursos:

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

    choco install kubernetes-helm
    

    Para obter mais informações, consulte os seguintes recursos:

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

    1. Adicione o repositório de gráficos especificado, obtenha as informações mais recentes sobre os gráficos disponíveis e instale o arquivo de gráficos 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 obter mais informações, consulte os seguintes recursos:

    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, consulte kubectl get.

Conectar seu cluster Kubernetes ao Azure Arc

  1. Teste sua conexão com seu 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. Este comando se aplica ao nosso cluster Kubernetes de exemplo e difere para outros tipos de clusters Kubernetes.

    Para obter mais informações, consulte os seguintes recursos:

  2. Com base em sua implantação de 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 seu cluster e recursos habilitados para Azure Arc:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    Parâmetro Necessário Valor Description
    GROUP_NAME Sim <Azure-Arc-cluster-resource-group-name> O nome do grupo de recursos do Azure a ser usado com seu cluster habilitado para Azure Arc e outros recursos, como sua extensão de Aplicativos de Contêiner do Azure, local personalizado e ambiente conectado de Aplicativos de Contêiner do Azure. Esse nome deve ser exclusivo entre regiões e pode conter apenas letras, números, hífenes (-), sublinhados (_), parênteses (()) e pontos (.).

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

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

    Para obter mais informações, consulte os seguintes recursos:

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

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    Parâmetro Necessário Valor Description
    CONNECTED_CLUSTER_NAME Sim <Azure-Arc-cluster-resource-group-name-cluster> O nome a ser usado para seu cluster habilitado para Azure Arc. Esse nome deve ser exclusivo entre regiões e pode conter apenas letras, números, hífenes (-), sublinhados (_), parênteses (()) e pontos (.).

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

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

    Para obter mais informações, consulte os seguintes recursos:

  6. Valide a conexão entre o Azure Arc e seu cluster 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 Succeeded, execute o comando novamente após um minuto.

    Para obter mais informações, consulte os seguintes recursos:

Criar um espaço de trabalho do Azure Log Analytics

Você pode criar um espaço de trabalho opcional, mas recomendado, do Azure Log Analytics, que fornece acesso a logs para aplicativos executados em seu cluster Kubernetes habilitado para Azure Arc.

  1. Defina a seguinte variável de ambiente para fornecer um nome ao seu espaço de trabalho do Log Analytics:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    Parâmetro Necessário Valor Description
    WORKSPACE_NAME Sim <Azure-Arc-cluster-resource-group-name-workspace> O nome a ser usado para seu espaço de trabalho do Log Analytics. Esse nome deve ser exclusivo dentro do seu grupo de recursos.

    Este exemplo usa o espaço de trabalho Hybrid-Arc-RG.
  2. Crie o espaço de trabalho do Log Analytics:

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

    Para obter mais informações, consulte os seguintes recursos:

  3. Obtenha o ID codificado em base64 e a chave compartilhada para seu espaço de trabalho 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 Necessário Valor Description
    LOG_ANALYTICS_WORKSPACE_ID Sim O ID do seu espaço de trabalho do Log Analytics.
    LOG_ANALYTICS_WORKSPACE_ID_ENC Sim O ID codificado em base64 para seu espaço de trabalho do Log Analytics.
    LOG_ANALYTICS_KEY Sim A chave compartilhada para seu espaço de trabalho do Log Analytics.
    LOG_ANALYTICS_ENC Sim A chave compartilhada codificada em base64 para seu espaço de trabalho do Log Analytics.

    Para obter mais informações, consulte os seguintes recursos:

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

Agora, crie e instale a extensão Aplicativos de Contêiner do Azure com seu cluster 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 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 para os seguintes valores:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    Parâmetro Necessário Valor Description
    EXTENSION_NAME Sim logicapps-aca-extensão O nome da extensão Aplicativos de Contêiner do Azure.
    ESPAÇO PARA NOMES Sim logicapps-aca-ns O namespace de cluster onde você deseja provisionar recursos.
    CONNECTED_ENVIRONMENT_NAME Sim <nome-do-ambiente conectado> Um nome exclusivo a ser usado para o ambiente conectado dos Aplicativos de Contêiner do Azure. Esse nome se torna parte do nome de domínio do aplicativo lógico padrão 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 seu cluster Kubernetes habilitado para Azure Arc. Não é possível adicionar posteriormente 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 Necessário Description
    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 aplicativos. Esse valor deve corresponder ao namespace de versão para a extensão Aplicativos de Contêiner do Azure.
    nome_do_cluster Sim O nome do ambiente Kubernetes da extensão Aplicativos de Contêiner do Azure a ser criado para a extensão.
    keda.habilitado Sim Habilite o Kubernetes Event-driven Autoscaling (KEDA). Esse valor é necessário e deve ser definido como true.
    keda.logicAppsScaler.enabled Sim Habilite o dimensionador de Aplicativos Lógicos do Azure no KEDA. Esse valor é necessário e deve ser definido como true.
    keda.logicAppsScaler.replicaCount Sim O número inicial de escaladores de aplicativos lógicos a serem iniciados. O valor padrão definido como 1. Esse valor aumenta ou diminui para 0, se não existirem aplicativos lógicos 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 dimensionados pelo KEDA. Esse valor é necessário e deve ser definido como true.
    envoy.externalServiceAzureILB Sim Determina se o enviado 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 tempo de execução dos Aplicativos Lógicos do Azure é acessível somente na rede privada.

    - false: O enviado atua como um balanceador de carga público. O tempo de execução dos Aplicativos Lógicos do Azure pode ser acessado pela rede pública.
    funçõesProxyApiConfig.enabled Sim Habilite o serviço de proxy que facilita o acesso da API ao tempo de execução dos Aplicativos Lógicos do Azure a partir do portal do Azure. Esse 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 é o Serviço Kubernetes do Azure. O nome do grupo de recursos onde o cluster do Kubernetes existe.
    logProcessor.appLogs.destination Não O destino a ser usado para logs de aplicativos. O valor é log-analytics ou none, o que desativa o log.
    logProcessor.appLogs.logAnalyticsConfig.customerId Sim, mas somente quando logProcessor.appLogs.destination estiver definido como log-analytics. O ID codificado em base64 para seu espaço de trabalho do Log Analytics. Certifique-se de configurar esse parâmetro como uma configuração protegida.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Sim, mas somente quando logProcessor.appLogs.destination estiver definido como log-analytics. A chave compartilhada codificada em base64 para seu espaço de trabalho do Log Analytics. Certifique-se de configurar esse parâmetro como uma configuração protegida.

    Para obter mais informações, consulte os seguintes recursos:

  3. Salve o valor de ID da extensão Aplicativos de Contêiner do Azure para usar mais tarde:

    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 Necessário Valor Description
    EXTENSION_ID Sim <extensão-ID> A ID da extensão Aplicativos de Contêiner do Azure.

    Para obter mais informações, consulte os seguintes recursos:

  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 obter mais informações, consulte os seguintes recursos:

Crie a sua localização personalizada

  1. Defina as seguintes variáveis de ambiente para 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 Necessário Valor Description
    CUSTOM_LOCATION_NAME Sim my-custom-location O nome a ser usado para seu local personalizado.
    CONNECTED_CLUSTER_ID Sim <Azure-Arc-cluster-ID> A ID do cluster Kubernetes habilitado para Azure Arc.

    Para obter mais informações, consulte os seguintes recursos:

  2. Crie o local personalizado:

    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
    

    Nota

    Se tiver problemas ao criar uma localização personalizada no cluster, poderá ter de ativar a funcionalidade de localização personalizada no cluster. Esta etapa é necessária se você entrou na CLI do Azure usando uma entidade de serviço ou se entrou como um usuário do Microsoft Entra com permissões restritas no recurso de cluster.

    Para obter mais informações, consulte os seguintes recursos:

  3. Valide se o local personalizado foi criado com êxito:

    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 Succeeded, execute o comando novamente após um minuto.

  4. Salve o 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 Necessário Valor Description
    CUSTOM_LOCATION_ID Sim <my-custom-location-ID> O ID da sua localização personalizada.

    Para obter mais informações, consulte os seguintes recursos:

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

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

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

Para obter mais informações, consulte os seguintes recursos:

Criar provedor de armazenamento do SQL Server

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

Seu banco de dados SQL requer conectividade de entrada e saída com seu cluster 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, consulte Configurar o armazenamento do banco de dados SQL para fluxos de trabalho de aplicativos lógicos padrão.

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

  3. Localize e salve a cadeia de conexão para o banco de dados SQL que você criou.

Configurar o compartilhamento de arquivos SMB para armazenamento de artefatos

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

  • Você precisa de acesso de administrador para configurar seu compartilhamento de arquivos SMB.

  • Seu compartilhamento de arquivos SMB deve existir na mesma rede que o cluster Kubernetes e o banco de dados SQL.

  • Seu compartilhamento de arquivos SMB requer conectividade de entrada e saída com seu cluster Kubernetes. Se você habilitou as restrições de rede virtual do Azure, verifique se o compartilhamento de arquivos 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 arquivos SMB separados para cada aplicativo lógico ou pode 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 seu aplicativo lógico usando o Visual Studio Code, verifique se o computador local com o Visual Studio Code pode acessar o compartilhamento de arquivos.

Configurar a partilha de ficheiros SMB no Windows

Verifique se o compartilhamento de arquivos SMB existe na mesma rede virtual do cluster onde você monta o compartilhamento de arquivos.

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

  2. Na guia Compartilhamento, selecione Compartilhar.

  3. Na caixa que se abre, selecione uma pessoa a quem pretende ter acesso à partilha de ficheiros.

  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 mais tarde como o nome do host.

Configurar os Arquivos do Azure como seu compartilhamento de arquivos SMB

Como alternativa, para fins de teste, você pode usar os Arquivos do Azure como um compartilhamento de arquivos SMB. Verifique se o compartilhamento de arquivos SMB existe na mesma rede virtual do cluster onde 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 arquivos, selecione + Compartilhamento de arquivos e forneça as informações necessárias para seu compartilhamento de arquivos SMB.

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

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

  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 algum 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 utilizador sem localhost\
    • Palavra-passe
  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. Guarde este nome para utilizar mais tarde.

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

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

Confirmar conexão de compartilhamento de arquivos SMB

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

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

    1. No cluster 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 em seu pod e instale o pacote iputils-ping executando os seguintes comandos do Linux:

      apt-get update
      apt-get install iputils-ping
      
  • Para confirmar se a partilha de ficheiros SMB está corretamente configurada, siga estes passos:

    1. No seu 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 home que contém a pasta mnt .

    3. Execute o seguinte comando:

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

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

Próximos passos

Crie fluxos de trabalho de aplicativos lógicos padrão para implantação híbrida em sua própria infraestrutura