Condividi tramite


Configurare un'infrastruttura personalizzata per le app per la logica Standard usando la distribuzione ibrida (anteprima)

Si applica: App per la logica di Azure (Standard)

Nota

Questa funzionalità è in anteprima, comporta addebiti per l'utilizzo ed è soggetta alle Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

A volte è necessario configurare e gestire la propria infrastruttura per soddisfare esigenze specifiche per la conformità alle normative, la privacy dei dati o le restrizioni di rete. App per la logica di Azure offre un modello di distribuzione ibrida in modo da poter distribuire e ospitare flussi di lavoro di app per la logica Standard in scenari locali, cloud privati o cloud pubblici. Questo modello offre le funzionalità per ospitare soluzioni di integrazione in ambienti parzialmente connessi quando è necessario usare l'elaborazione locale, l'archiviazione dei dati e l'accesso alla rete. Con l'opzione ibrida, si ha la libertà e la flessibilità di scegliere l'ambiente migliore per i flussi di lavoro.

Funzionamento della distribuzione ibrida

I flussi di lavoro delle app per la logica standard con l'opzione di distribuzione ibrida sono basati su un runtime di App per la logica di Azure ospitato in un'estensione app contenitore di Azure. Nel flusso di lavoro, tutte le operazioni predefinite vengono eseguite in locale con il runtime in modo da ottenere una velocità effettiva più elevata per l'accesso alle origini dati locali. Se è necessario accedere a risorse dati non locali, ad esempio servizi basati sul cloud come Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn o ServiceNow, è possibile scegliere operazioni da 1.000 connettori ospitati in Azure per includere nei flussi di lavoro. Per altre informazioni, vedere Connettori gestiti (condivisi). Anche se è necessario disporre della connettività Internet per gestire l'app per la logica nel portale di Azure, la natura semi-connessa di questa piattaforma consente di assorbire eventuali problemi di connettività Internet temporanei.

Ad esempio, se si ha uno scenario locale, la panoramica dell'architettura seguente mostra dove sono ospitati ed eseguiti flussi di lavoro dell'app per la logica Standard nel modello ibrido. L'ambiente parzialmente connesso include le risorse seguenti per l'hosting e l'uso delle app per la logica Standard, che vengono distribuite come risorse di App Contenitore di Azure:

  • Cluster di servizio Azure Kubernetes (AKS) abilitati per Azure Arc
  • Un database SQL per archiviare localmente la cronologia di esecuzione del flusso di lavoro, gli input e gli output per l'elaborazione
  • Una condivisione file SMB (Server Message Block) per archiviare localmente gli artefatti usati dai flussi di lavoro

Diagramma con panoramica dell'architettura per la posizione in cui le app per la logica Standard sono ospitate in un ambiente parzialmente connesso.

Per l'hosting, è anche possibile configurare e usare cluster Kubernetes abilitati per Azure Arc in un'infrastruttura hyperconvergente (HCI) di Azure Stack o cluster Kubernetes abilitati per Azure Arc in Windows Server.

Per altre informazioni, consultare la documentazione seguente:

Questa guida pratica illustra come configurare le risorse locali necessarie nell'infrastruttura in modo da poter creare, distribuire e ospitare un flusso di lavoro di app per la logica Standard usando il modello di distribuzione ibrida.

Modalità di funzionamento della fatturazione

Con l'opzione ibrida, si è responsabili degli elementi seguenti:

  • Infrastruttura Kubernetes abilitata per Azure Arc
  • Licenza di SQL Server
  • Addebito di fatturazione di $ 0,18 USD per vCPU/ora per supportare i carichi di lavoro dell'app per la logica Standard

In questo modello di fatturazione si paga solo per le risorse necessarie e ridimensionare i carichi di lavoro dinamici senza dover acquistare per il picco di utilizzo. Per i flussi di lavoro che usano operazioni del connettore ospitate in Azure, ad esempio Microsoft Teams o Microsoft Office 365, i prezzi standard esistenti (a tenant singolo) si applicano a queste esecuzioni di operazioni.

Limiti

  • La distribuzione ibrida è attualmente disponibile e supportata solo per i cluster Kubernetes abilitati per Azure Arc seguenti:

    • Cluster Kubernetes abilitati per Azure Arc
    • Cluster Kubernetes abilitati per Azure Arc in Azure Stack HCI
    • Cluster Kubernetes abilitati per Azure Arc in Windows Server

Prerequisiti

Creare un cluster Kubernetes

Prima di poter distribuire l'app per la logica Standard come risorsa locale in un cluster Kubernetes abilitato per Azure Arc in un ambiente connesso di App Contenitore di Azure, è necessario innanzitutto un cluster Kubernetes. Questo cluster verrà successivamente connesso ad Azure Arc in modo che sia disponibile un cluster Kubernetes abilitato per Azure Arc.

Il cluster Kubernetes richiede la connettività in ingresso e in uscita con il database SQL creato successivamente come provider di archiviazione e con la condivisione file Server Message Block creata successivamente per l'archiviazione degli artefatti. Queste risorse devono esistere all'interno della stessa rete.

Nota

È anche possibile creare un cluster Kubernetes nell'infrastruttura Azure Stack HCI o nel cluster Kubernetes in Windows Server e applicare i passaggi descritti in questa guida per connettere il cluster ad Azure Arc e configurare l'ambiente connesso. Per altre informazioni su Azure Stack HCI e servizio Azure Kubernetes in Windows Server, vedere le risorse seguenti:

  1. Impostare le variabili di ambiente seguenti per il cluster Kubernetes da creare:

    SUBSCRIPTION="<Azure-subscription-ID>"
    AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>"
    AKS_NAME="<aks-cluster-name>"
    LOCATION="eastus"
    
    Parametro Obbligatorio Valore Descrizione
    ABBONAMENTO <Azure-subscription-ID> ID della sottoscrizione di Azure
    AKS_CLUSTER_GROUP_NAME <aks-cluster-resource-group-name> Nome del gruppo di risorse di Azure da usare con il cluster Kubernetes. Questo nome deve essere univoco tra aree e può contenere solo lettere, numeri, trattini (-), trattino basso (_), parentesi (()) e punti (.).

    Questo esempio usa Hybrid-RG.
    AKS_NAME <aks-cluster-name> Nome del cluster Kubernetes.
    LOCATION <Area di Azure> Un'area di Azure che supporta le app contenitore di Azure in Kubernetes abilitato per Azure Arc.

    Questo esempio usa eastus.
  2. Eseguire i comandi seguenti usando l'ambiente Bash in Azure Cloud Shell o in locale usando l'interfaccia della riga di comando di Azure installata nel computer:

    Nota

    Assicurarsi di modificare i valori dei nodi max-count e min-count in base ai requisiti di carico.

    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
    
    Parametro Obbligatorio Valore Descrizione
    max count No <max-nodes-value> Numero massimo di nodi da usare per il ridimensionamento automatico quando si include l'opzione enable-cluster-autoscaler . Questo valore è compreso tra 1 e 1000.
    min count No <min-nodes-value> Numero minimo di nodi da usare per il ridimensionamento automatico quando si include l'opzione enable-cluster-autoscaler . Questo valore è compreso tra 1 e 1000.

    Per ulteriori informazioni, vedi le seguenti risorse:

Connettere il cluster Kubernetes ad Azure Arc

Per creare il cluster Kubernetes abilitato per Azure Arc, connettere il cluster Kubernetes ad Azure Arc.

Nota

È possibile trovare i passaggi descritti in questa sezione e versioni successive per creare l'ambiente connesso in uno script denominato EnvironmentSetup.ps1, disponibile nel repository GitHub denominato Azure/logicapps. È possibile modificare e usare questo script per soddisfare i requisiti e gli scenari.

Lo script non è firmato, quindi prima di eseguire lo script, eseguire il comando di Azure PowerShell seguente come amministratore per impostare i criteri di esecuzione:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Per altre informazioni, vedere Uso del cmdlet Set-ExecutionPolicy.

  1. Installare le estensioni dell'interfaccia della riga di comando di Azure seguenti:

    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 
    

    Per ulteriori informazioni, vedi le seguenti risorse:

  2. Registrare gli spazi dei nomi necessari seguenti:

    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
    

    Per ulteriori informazioni, vedi le seguenti risorse:

  3. Installare l'interfaccia della riga di comando di Kubernetes denominata 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
    

    Per ulteriori informazioni, vedi le seguenti risorse:

  4. Installare la gestione pacchetti Kubernetes denominata Helm:

    choco install kubernetes-helm
    

    Per ulteriori informazioni, vedi le seguenti risorse:

  5. Installare il driver SMB usando i comandi Helm seguenti:

    1. Aggiungere il repository grafico specificato, ottenere le informazioni più recenti per i grafici disponibili e installare l'archivio grafico specificato.

      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 
      

      Per ulteriori informazioni, vedi le seguenti risorse:

    2. Verificare che il driver SMB sia installato eseguendo il comando kubectl seguente, che deve elencare smb.csi.k8s.io:

      kubectl get csidriver
      

      Per altre informazioni, vedere kubectl get.

Connettere il cluster Kubernetes ad Azure Arc

  1. Testare la connessione al cluster ottenendo il file kubeconfig:

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

    Per impostazione predefinita, il file kubeconfig viene salvato nel percorso ~/.kube/config. Questo comando si applica al cluster Kubernetes di esempio e differisce per altri tipi di cluster Kubernetes.

    Per ulteriori informazioni, vedi le seguenti risorse:

  2. In base alla distribuzione del cluster Kubernetes, impostare la variabile di ambiente seguente per specificare un nome da usare per il gruppo di risorse di Azure che contiene il cluster e le risorse abilitate per Azure Arc:

    GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
    
    Parametro Obbligatorio Valore Descrizione
    GROUP_NAME <Azure-Arc-cluster-resource-group-name> Nome del gruppo di risorse di Azure da usare con il cluster abilitato per Azure Arc e altre risorse, ad esempio l'estensione App Contenitore di Azure, la posizione personalizzata e l'ambiente connesso di App Azure Container. Questo nome deve essere univoco tra aree e può contenere solo lettere, numeri, trattini (-), trattino basso (_), parentesi (()) e punti (.).

    Questo esempio usa Hybrid-Arc-RG.
  3. Creare il gruppo di risorse di Azure per il cluster e le risorse abilitate per Azure Arc:

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

    Per ulteriori informazioni, vedi le seguenti risorse:

  4. Impostare la variabile di ambiente seguente per specificare un nome per il cluster Kubernetes abilitato per Azure Arc:

    CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
    
    Parametro Obbligatorio Valore Descrizione
    CONNECTED_CLUSTER_NAME <Azure-Arc-cluster-resource-group-name-cluster> Nome da usare per il cluster abilitato per Azure Arc. Questo nome deve essere univoco tra aree e può contenere solo lettere, numeri, trattini (-), trattino basso (_), parentesi (()) e punti (.).

    Questo esempio usa hybrid-Arc-RG-cluster.
  5. Connettere il cluster Kubernetes creato in precedenza ad Azure Arc:

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

    Per ulteriori informazioni, vedi le seguenti risorse:

  6. Convalidare la connessione tra Azure Arc e il cluster Kubernetes:

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

    Se l'output indica che il valore della proprietà provisioningState non è impostato su Succeeded, eseguire di nuovo il comando dopo un minuto.

    Per ulteriori informazioni, vedi le seguenti risorse:

Creare un'area di lavoro Log Analytics di Azure

È possibile creare un'area di lavoro Facoltativa, ma consigliata, di Azure Log Analytics, che fornisce l'accesso ai log per le app eseguite nel cluster Kubernetes abilitato per Azure Arc.

  1. Impostare la variabile di ambiente seguente per specificare un nome per l'area di lavoro Log Analytics:

    WORKSPACE_NAME="$GROUP_NAME-workspace"
    
    Parametro Obbligatorio Valore Descrizione
    WORKSPACE_NAME <Azure-Arc-cluster-resource-group-name-workspace> Nome da usare per l'area di lavoro Log Analytics. Questo nome deve essere univoco all'interno del gruppo di risorse.

    Questo esempio usa Hybrid-Arc-RG-workspace.
  2. Creare l'area di lavoro Log Analytics:

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

    Per ulteriori informazioni, vedi le seguenti risorse:

  3. Ottenere l'ID con codifica Base64 e la chiave condivisa per l'area di lavoro Log Analytics. Questi valori sono necessari per un passaggio successivo.

    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))
    
    Parametro Obbligatorio Valore Descrizione
    LOG_ANALYTICS_WORKSPACE_ID ID per l'area di lavoro Log Analytics.
    LOG_ANALYTICS_WORKSPACE_ID_ENC ID con codifica Base64 per l'area di lavoro Log Analytics.
    LOG_ANALYTICS_KEY Chiave condivisa per l'area di lavoro Log Analytics.
    LOG_ANALYTICS_ENC Chiave condivisa con codifica Base64 per l'area di lavoro Log Analytics.

    Per ulteriori informazioni, vedi le seguenti risorse:

Creare e installare l'estensione App Azure Container

Creare e installare ora l'estensione App Azure Container con il cluster Kubernetes abilitato per Azure Arc come risorsa locale.

Importante

Se si vuole eseguire la distribuzione nel servizio Azure Kubernetes in Azure Stack HCI, prima di creare e installare l'estensione App contenitore di Azure, assicurarsi di configurare HAProxy o un servizio di bilanciamento del carico personalizzato.

  1. Impostare le variabili di ambiente seguenti sui valori seguenti:

    EXTENSION_NAME="logicapps-aca-extension"
    NAMESPACE="logicapps-aca-ns"
    CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
    
    Parametro Obbligatorio Valore Descrizione
    EXTENSION_NAME logicapps-aca-extension Nome dell'estensione App Azure Container.
    NAMESPACE logicapps-aca-ns Spazio dei nomi del cluster in cui si vuole effettuare il provisioning delle risorse.
    CONNECTED_ENVIRONMENT_NAME <connected-environment-name> Nome univoco da usare per l'ambiente connesso di App Azure Container. Questo nome diventa parte del nome di dominio per l'app per la logica Standard creata, distribuita e ospitata nell'ambiente connesso app contenitore di Azure.
  2. Creare e installare l'estensione con Log Analytics abilitata per il cluster Kubernetes abilitato per Azure Arc. In seguito non è possibile aggiungere Log Analytics all'estensione.

    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}"
    
    Parametro Richiesto Descrizione
    Microsoft.CustomLocation.ServiceAccount Account del servizio creato per il percorso personalizzato.

    Raccomandazione: impostare il valore predefinito.
    appsNamespace Spazio dei nomi da usare per la creazione di definizioni e revisioni delle app. Questo valore deve corrispondere allo spazio dei nomi della versione per l'estensione App Azure Container.
    clusterName Nome dell'estensione Kubernetes dell'estensione App Azure Container da creare per l'estensione.
    keda.enabled Abilitare la scalabilità automatica guidata dagli eventi di Kubernetes (KEDA). Questo valore è obbligatorio e deve essere impostato su true.
    keda.logicAppsScaler.enabled Abilitare il App per la logica di Azure scaler in KEDA. Questo valore è obbligatorio e deve essere impostato su true.
    keda.logicAppsScaler.replicaCount Numero iniziale di scaler dell'app per la logica da avviare. Il valore predefinito è impostato su 1. Questo valore aumenta o riduce le prestazioni fino a 0, se non esistono app per la logica nell'ambiente.
    containerAppController.api.functionsServerEnabled Abilitare il servizio responsabile della conversione dei trigger del flusso di lavoro dell'app per la logica in oggetti con scalabilità KEDA. Questo valore è obbligatorio e deve essere impostato su true.
    envoy.externalServiceAzureILB Determina se l'inviato funge da servizio di bilanciamento del carico interno o da un servizio di bilanciamento del carico pubblico.

    - true: l'inviato funge da servizio di bilanciamento del carico interno. Il runtime App per la logica di Azure è accessibile solo all'interno della rete privata.

    - false: l'envoy funge da servizio di bilanciamento del carico pubblico. Il runtime di App per la logica di Azure è accessibile tramite la rete pubblica.
    functionsProxyApiConfig.enabled Abilitare il servizio proxy che facilita l'accesso api al runtime di App per la logica di Azure dal portale di Azure. Questo valore è obbligatorio e deve essere impostato su true.
    envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Sì, ma solo quando il cluster sottostante è servizio Azure Kubernetes. Nome del gruppo di risorse in cui è presente il cluster Kubernetes.
    logProcessor.appLogs.destination No Destinazione da usare per i log dell'applicazione. Il valore è Log Analytics o nessuno, che disabilita la registrazione.
    logProcessor.appLogs.logAnalyticsConfig.customerId Sì, ma solo quando logProcessor.appLogs.destination è impostato su Log Analytics. ID con codifica Base64 per l'area di lavoro Log Analytics. Assicurarsi di configurare questo parametro come impostazione protetta.
    logProcessor.appLogs.logAnalyticsConfig.sharedKey Sì, ma solo quando logProcessor.appLogs.destination è impostato su Log Analytics. Chiave condivisa con codifica Base64 per l'area di lavoro Log Analytics. Assicurarsi di configurare questo parametro come impostazione protetta.

    Per ulteriori informazioni, vedi le seguenti risorse:

  3. Salvare il valore ID per l'estensione App Azure Container da usare in un secondo momento:

    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)
    
    Parametro Obbligatorio Valore Descrizione
    EXTENSION_ID <extension-ID> ID per l'estensione App Azure Container.

    Per ulteriori informazioni, vedi le seguenti risorse:

  4. Prima di continuare, attendere che l'estensione venga installata completamente. Per fare in modo che la sessione del terminale attenda il completamento dell'installazione, eseguire il comando seguente:

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

    Per ulteriori informazioni, vedi le seguenti risorse:

Creare la posizione personalizzata

  1. Impostare le variabili di ambiente seguenti sui valori specificati:

    CUSTOM_LOCATION_NAME="my-custom-location"
    
    CONNECTED_CLUSTER_ID=$(az connectedk8s show \
       --resource-group $GROUP_NAME \
       --name $CONNECTED_CLUSTER_NAME \
       --query id \
       --output tsv)
    
    Parametro Obbligatorio Valore Descrizione
    CUSTOM_LOCATION_NAME my-custom-location Nome da usare per la posizione personalizzata.
    CONNECTED_CLUSTER_ID <Azure-Arc-cluster-ID> ID per il cluster Kubernetes abilitato per Azure Arc.

    Per ulteriori informazioni, vedi le seguenti risorse:

  2. Creare la posizione personalizzata:

    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 si verificano problemi durante la creazione di una posizione personalizzata nel cluster, potrebbe essere necessario abilitare la funzionalità di posizione personalizzata nel cluster. Questo passaggio è obbligatorio se è stato eseguito l'accesso all'interfaccia della riga di comando di Azure usando un'entità servizio o se è stato eseguito l'accesso come utente di Microsoft Entra con autorizzazioni limitate per la risorsa cluster.

    Per ulteriori informazioni, vedi le seguenti risorse:

  3. Verificare che la posizione personalizzata sia stata creata correttamente:

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

    Se l'output indica che il valore della proprietà provisioningState non è impostato su Succeeded, eseguire di nuovo il comando dopo un minuto.

  4. Salvare l'ID percorso personalizzato da usare in un passaggio successivo:

    CUSTOM_LOCATION_ID=$(az customlocation show \
       --resource-group $GROUP_NAME \
       --name $CUSTOM_LOCATION_NAME \
       --query id \
       --output tsv)
    
    Parametro Obbligatorio Valore Descrizione
    CUSTOM_LOCATION_ID <my-custom-location-ID> ID per la posizione personalizzata.

    Per ulteriori informazioni, vedi le seguenti risorse:

Creare l'ambiente connesso di App contenitore di Azure

A questo punto, creare l'ambiente connesso di App Azure Container per l'uso dell'app per la logica Standard.

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

Per ulteriori informazioni, vedi le seguenti risorse:

Creare un provider di archiviazione di SQL Server

I flussi di lavoro dell'app per la logica standard nel modello di distribuzione ibrida usano un database SQL come provider di archiviazione per i dati usati dai flussi di lavoro e il runtime App per la logica di Azure, ad esempio la cronologia di esecuzione del flusso di lavoro, gli input, gli output e così via.

Il database SQL richiede la connettività in ingresso e in uscita con il cluster Kubernetes, quindi queste risorse devono trovarsi nella stessa rete.

  1. Configurare una delle seguenti edizioni di SQL Server:

    Per altre informazioni, vedere Configurare l'archiviazione del database SQL per i flussi di lavoro dell'app per la logica Standard.

  2. Verificare che il database SQL si trova nella stessa rete del cluster Kubernetes abilitato per Arc e della condivisione file SMB.

  3. Trovare e salvare il stringa di connessione per il database SQL creato.

Configurare la condivisione file SMB per l'archiviazione degli artefatti

Per archiviare elementi come mappe, schemi e assembly per la risorsa dell'app per la logica (app contenitore), è necessario disporre di una condivisione file che usa il protocollo SMB (Server Message Block).

  • È necessario l'accesso amministratore per configurare la condivisione file SMB.

  • La condivisione file SMB deve esistere nella stessa rete del cluster Kubernetes e del database SQL.

  • La condivisione file SMB richiede la connettività in ingresso e in uscita con il cluster Kubernetes. Se sono state abilitate le restrizioni della rete virtuale di Azure, assicurarsi che la condivisione file esista nella stessa rete virtuale del cluster Kubernetes o in una rete virtuale con peering.

  • Non usare lo stesso percorso esatto di condivisione file per più app per la logica.

  • È possibile usare condivisioni file SMB separate per ogni app per la logica oppure è possibile usare cartelle diverse nella stessa condivisione file SMB purché tali cartelle non siano annidate. Ad esempio, non è disponibile un'app per la logica che usa il percorso radice e quindi un'altra app per la logica usa una sottocartella.

  • Per distribuire l'app per la logica usando Visual Studio Code, assicurarsi che il computer locale con Visual Studio Code possa accedere alla condivisione file.

Configurare la condivisione file SMB in Windows

Assicurarsi che la condivisione file SMB esista nella stessa rete virtuale del cluster in cui si monta la condivisione file.

  1. In Windows passare alla cartella che si vuole condividere, aprire il menu di scelta rapida, selezionare Proprietà.

  2. Nella scheda Condivisione selezionare Condividi.

  3. Nella casella visualizzata selezionare una persona a cui si vuole accedere alla condivisione file.

  4. Selezionare Condividi e copiare il collegamento per il percorso di rete.

    Se il computer locale non è connesso a un dominio, sostituire il nome del computer nel percorso di rete con l'indirizzo IP.

  5. Salvare l'indirizzo IP da usare in un secondo momento come nome host.

Configurare File di Azure come condivisione file SMB

In alternativa, a scopo di test, è possibile usare File di Azure come condivisione file SMB. Assicurarsi che la condivisione file SMB esista nella stessa rete virtuale del cluster in cui si monta la condivisione file.

  1. Nella portale di Azure creare un account di archiviazione di Azure.

  2. Dal menu dell'account di archiviazione, in Archiviazione dati selezionare Condivisioni file.

  3. Nella barra degli strumenti della pagina Condivisioni file selezionare + Condivisione file e specificare le informazioni necessarie per la condivisione file SMB.

  4. Al completamento della distribuzione, selezionare Vai alla risorsa.

  5. Nel menu condivisione file selezionare Panoramica, se non selezionata.

  6. Nella barra degli strumenti della pagina Panoramica selezionare Connetti. Nel riquadro Connetti selezionare Mostra script.

  7. Copiare i valori seguenti e salvarli in un luogo sicuro per usarli in un secondo momento:

    • Nome host della condivisione file, ad esempio, mystorage.file.core.windows.net
    • Percorso condivisione file
    • Nome utente senza localhost\
    • Password
  8. Nella barra degli strumenti della pagina Panoramica selezionare + Aggiungi directory e specificare un nome da usare per la directory. Salvare questo nome per usarlo in un secondo momento.

Questi valori salvati sono necessari per fornire le informazioni sulla condivisione file SMB quando si distribuisce la risorsa dell'app per la logica.

Per altre informazioni, vedere Creare una condivisione file di Azure SMB.

Confermare la connessione alla condivisione file SMB

Per testare la connessione tra il cluster Kubernetes abilitato per Arc e la condivisione file SMB e verificare che la condivisione file sia configurata correttamente, seguire questa procedura:

  • Se la condivisione file SMB non si trova nello stesso cluster, verificare che l'operazione ping funzioni dal cluster Kubernetes abilitato per Arc alla macchina virtuale con condivisione file SMB. Per verificare che l'operazione ping funzioni, seguire questa procedura:

    1. Nel cluster Kubernetes abilitato per Arc creare un pod di test che esegue qualsiasi immagine Linux, ad esempio BusyBox o Ubuntu.

    2. Passare al contenitore nel pod e installare il pacchetto iputils-ping eseguendo i comandi Linux seguenti:

      apt-get update
      apt-get install iputils-ping
      
  • Per verificare che la condivisione file SMB sia configurata correttamente, seguire questa procedura:

    1. Nel pod di test con la stessa immagine Linux creare una cartella con il percorso denominato mnt/smb.

    2. Passare alla directory radice o alla home directory che contiene la cartella mnt .

    3. Esegui questo comando:

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

  • Per verificare che gli artefatti vengano caricati correttamente, connettersi al percorso della condivisione file SMB e verificare se i file degli artefatti sono presenti nella cartella corretta specificata durante la distribuzione.

Passaggi successivi

Creare flussi di lavoro di app per la logica Standard per la distribuzione ibrida nell'infrastruttura