Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Azure Logic Apps (Standard)
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 native del runtime 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 alle 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.400 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 seguenti risorse per ospitare e lavorare con le app logic Standard, che vengono distribuite come risorse di Azure Container Apps:
- 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 conservare localmente gli artefatti usati dai flussi di lavoro.
Per l'hosting, è anche possibile configurare e usare cluster Kubernetes abilitati per Azure Arc su Azure Local o cluster Kubernetes abilitati per Azure Arc su Windows Server.
Il modello di distribuzione ibrida combina funzionalità locali e cloud per offrire soluzioni di integrazione flessibili per diverse esigenze. Ad esempio, la risorsa dell'app per la logica ibrida può modificare in modo efficiente le risorse in base alla modifica dei carichi di lavoro. Questo ridimensionamento dinamico consente di gestire i costi di calcolo aumentando la capacità durante il picco della domanda e riducendo le risorse quando l'utilizzo diminuisce.
Per altre informazioni, consultare la documentazione seguente:
- Che cos'è il servizio Azure Kubernetes?
- Concetti fondamentali per Azure Kubernetes Service (AKS)
- Località personalizzate per i cluster Kubernetes abilitati per Azure Arc
- Che cos'è App contenitore di Azure?
- Azure Container Apps su Azure Arc
- Modello di scalabilità dinamica e architettura per l'autoscalabilità basata su Kubernetes Event-Driven (KEDA)
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.
Limiti
La sezione seguente descrive le limitazioni per l'opzione di distribuzione ibrida:
Limitazione | Descrizione |
---|---|
Registrazione dei dati con un runtime disconnesso | In modalità parzialmente connessa, il runtime di App per la logica di Azure può rimanere disconnesso fino a 24 ore e conservare comunque i log dei dati. Tuttavia, tutti i dati di registrazione oltre questa durata potrebbero essere persi. |
Aree di Azure supportate | La distribuzione ibrida è attualmente disponibile e supportata solo nelle aree di Azure seguenti: - Stati Uniti centrali -Asia orientale - Stati Uniti orientali - Stati Uniti centro-settentrionali -Sud-est asiatico - Svezia centrale - Regno Unito meridionale - Europa occidentale - Stati Uniti occidentali |
Cluster Kubernetes abilitati per Azure Arc supportati | - Cluster Kubernetes abilitati per Azure Arc - Cluster Kubernetes abilitati per Azure Arc su Azure Locale (in precedenza Azure Stack HCI) - Cluster Kubernetes abilitati per Azure Arc in Windows Server |
Funzionalità non supportate disponibili in App per la logica di Azure a tenant singolo (Standard) e nei servizi di Azure correlati | - Slot di distribuzione - Rilevamento dei processi aziendali di Azure - Integrità risorse in Supporto e risoluzione dei problemi nel portale di Azure - Autenticazione dell'identità gestita per le operazioni del connettore. Per altre informazioni, vedere Limitazioni per la creazione di flussi di lavoro di distribuzione ibrida. |
Prerequisiti
Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.
Conoscenza di base dei concetti essenziali del servizio Azure Kubernetes
Requisiti tecnici per l'uso dell'interfaccia della riga di comando di Azure
Requisiti tecnici per le app Azure Container in Kubernetes con abilitazione di Azure Arc, incluso l'accesso a un registro contenitori pubblico o privato, ad esempio il Registro Azure Container.
Fatturazione
Per informazioni sul funzionamento della fatturazione, vedere Standard (distribuzione ibrida).
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 nel cluster Locale di Azure o 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 sul servizio Azure Locale e sul servizio Azure Kubernetes in Windows Server, vedere le risorse seguenti:
- Informazioni sulla distribuzione locale di Azure
- Prerequisiti di distribuzione per Azure Local
- Creare cluster Kubernetes usando l'interfaccia della riga di comando di Azure
- Configurare un host del servizio Azure Kubernetes in Azure Locale e Windows Server e distribuire un cluster del carico di lavoro usando PowerShell
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 Sì < Azure-subscription-ID> ID della sottoscrizione di Azure AKS_CLUSTER_GROUP_NAME Sì < 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 Sì < aks-cluster-name> Nome del cluster Kubernetes. UBICAZIONE Sì < Regione di Azure> Un'area di Azure che supporta Azure Container Apps su Kubernetes abilitato per Azure Arc.
Questo esempio usa eastus.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 provider register --namespace Microsoft.Kubernetes --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 ulteriori informazioni, vedere Set-ExecutionPolicy.
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:
Registrare gli spazi dei nomi necessari seguenti:
az provider register --namespace Microsoft.ExtendedLocation --wait az provider register --namespace Microsoft.Kubernetes --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:
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:
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:
Installare la gestione pacchetti Kubernetes denominata Helm:
choco install kubernetes-helm
Per ulteriori informazioni, vedi le seguenti risorse:
Installare il driver SMB usando i comandi Helm seguenti:
Aggiungere il repository dei grafici specificato, ottenere le informazioni più recenti per i grafici disponibili e installare l'archivio grafici 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:
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
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 Sì < 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 Azure Container Apps, la posizione personalizzata e l'ambiente connesso di Azure Container Apps. 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.Creare il gruppo di risorse di Azure per il cluster e le risorse abilitati per Azure Arc:
az group create \ --name $GROUP_NAME \ --location $LOCATION
Per ulteriori informazioni, vedi le seguenti risorse:
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 Sì < 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.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:
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.
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 Sì < 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.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:
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 Sì ID per l'area di lavoro Log Analytics. LOG_ANALYTICS_WORKSPACE_ID_ENC Sì ID con codifica Base64 per l'area di lavoro Log Analytics. LOG_ANALYTICS_KEY Sì Chiave condivisa per l'area di lavoro Log Analytics. LOG_ANALYTICS_ENC Sì 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
Ora, crea e installa l'estensione Azure Container Apps con il cluster Kubernetes abilitato per Azure Arc come risorsa locale.
Importante
Se si desidera eseguire la distribuzione su AKS su Azure Locale, prima di creare e installare l'estensione per Azure Container Apps, assicurarsi di configurare HAProxy o un bilanciamento del carico personalizzato.
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 Sì logicapps-aca-extension Nome dell'estensione per Azure Container Apps. NAMESPACE Sì logicapps-aca-ns Spazio dei nomi del cluster in cui si vuole effettuare il provisioning delle risorse. CONNECTED_ENVIRONMENT_NAME Sì < 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 che crei, distribuisci e ospiti nell'ambiente connesso di Azure Container Apps. 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 Obbligatorio Descrizione Microsoft.CustomLocation.ServiceAccount Sì Account del servizio creato per il percorso personalizzato.
Raccomandazione: impostare il valore predefinito.appsNamespace Sì 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 contenitore di Azure. clusterName Sì Nome dell'ambiente Kubernetes per l'estensione App contenitore di Azure da creare. keda.enabled Sì Abilitare la scalabilità automatica guidata dagli eventi di Kubernetes (KEDA). Questo valore è obbligatorio e deve essere impostato su true. keda.logicAppsScaler.enabled Sì Abilitare lo scaler di App per la logica di Azure in KEDA. Questo valore è obbligatorio e deve essere impostato su true. keda.logicAppsScaler.replicaCount Sì Numero iniziale di scaler di 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 Sì Abilitare il servizio responsabile della conversione dei trigger dei flussi di lavoro delle app logiche in oggetti scalati con KEDA. Questo valore è obbligatorio e deve essere impostato su true. envoy.externalServiceAzureILB Sì 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 di Azure Logic Apps è 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 Sì Abilitare il servizio proxy che facilita l'accesso alle API al runtime delle Azure Logic Apps 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:
Salvare il valore ID per l'estensione Azure Container Apps 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 Sì < extension-ID> ID per l'estensione Azure Container Apps. Per ulteriori informazioni, vedi le seguenti risorse:
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
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 Sì my-custom-location Nome da usare per la posizione personalizzata. CONNECTED_CLUSTER_ID Sì < Azure-Arc-cluster-ID> ID del cluster Kubernetes abilitato per Azure Arc. Per ulteriori informazioni, vedi le seguenti risorse:
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:
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.
Salvare l'ID posizione 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 Sì < my-custom-location-ID> ID della posizione personalizzata. Per ulteriori informazioni, vedi le seguenti risorse:
Creare l'ambiente connesso per le Azure Container Apps
A questo punto, creare l'ambiente connesso di App contenitore di Azure per l'uso da parte 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:
Aggiornare CoreDNS per un cluster Kubernetes in Locale di Azure
Se il cluster Azure Kubernetes è ospitato in Locale di Azure, è necessario aggiornare manualmente la configurazione CoreDNS per il cluster. Questo passaggio aggiunge una nuova mappa di configurazione allo spazio dei nomi Azure Kubernetes. Rispetto a ciò, Azure Logic Apps completa automaticamente questo passaggio quando il Kubernetes cluster è ospitato in Azure. Tuttavia, per un cluster ospitato altrove, è necessario completare manualmente questo passaggio.
Per altre informazioni, consultare la documentazione seguente:
- CoreDNS per Kubernetes
- Personalizzare CoreDNS per il servizio Azure Kubernetes
- ConfigMaps in Kubernetes
- Spazi dei nomi - Concetti di base per il servizio Azure Kubernetes
Per aggiornare la configurazione di CoreDNS, eseguire il seguente comando CLI di Azure utilizzando le opzioni adatte al proprio scenario.
az containerapp arc setup-core-dns
Parametri | Obbligatorio | Descrizione |
---|---|---|
--distro |
Sì | Distribuzione supportata da usare per l'aggiornamento della configurazione CoreDNS. Valori consentiti: AksAzureLocal |
--kube-config |
NO | Percorso del file (kubeconfig), che contiene i parametri di configurazione per l'accesso ai cluster Kubernetes. |
--kube-context |
NO | Contesto kubeconfig dall'host locale per il cluster. In Kubernetes un contesto definisce come comunicare con un cluster Kubernetes. |
skip-ssl-verification |
NO | Ignorare la verifica SSL per qualsiasi connessione cluster. |
--yes -y |
NO | Non richiedere conferma. |
Per altre informazioni, ad esempio i parametri globali, vedere az containerapp arc setup-core-dns.
Esempi
Configurare la configurazione CoreDNS per Azure Locale:
az containerapp arc setup-core-dns --distro AksAzureLocal
Configurare la configurazione CoreDNS per Azure locale usando un file di configurazione Kubernetes e il contesto Kubernetes:
az containerapp arc setup-core-dns --distro AksAzureLocal --kube-config <kubeconfig-file-path> --kube-context <kubeconfig-context-name>
Creare un provider di archiviazione di SQL Server
I flussi di lavoro standard di Logic App nel modello di distribuzione ibrida utilizzano un database SQL come provider di archiviazione per i dati utilizzati dai flussi di lavoro e dal runtime di Azure Logic Apps, ad esempio la cronologia delle esecuzioni dei flussi 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.
Configurare una delle seguenti edizioni di SQL Server:
- SQL Server locale
- Database SQL di Azure
- Istanza gestita di database SQL di Azure
- SQL Server abilitato da Azure Arc.
Per altre informazioni, vedere Configurare l'archiviazione del database SQL per i flussi di lavoro dell'app per la logica Standard.
Verificare che il database SQL si trovi nella stessa rete del cluster Kubernetes abilitato per Arc e della condivisione file SMB.
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 di 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 si può fare in modo che un'app logica usi il percorso principale e poi un'altra app logica usi 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.
In Windows passare alla cartella che si vuole condividere, aprire il menu di scelta rapida, selezionare Proprietà.
Nella scheda Condivisione selezionare Condividi.
Nella casella visualizzata selezionare una persona a cui si vuole accedere alla condivisione file.
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.
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.
Nella portale di Azure creare un account di archiviazione di Azure.
Dal menu dell'account di archiviazione, in Archiviazione dati selezionare Condivisioni file.
Dalla barra degli strumenti della pagina Condivisioni file, selezionare + Condivisione file e inserire le informazioni richieste per la vostra condivisione file SMB.
Al completamento della distribuzione, selezionare Vai alla risorsa.
Nel menu condivisione file selezionare Panoramica, se non selezionata.
Nella barra degli strumenti della pagina Panoramica selezionare Connetti. Nel riquadro Connetti selezionare Mostra script.
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\
- Parola d'ordine
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 logica.
Per altre informazioni, vedere Creare una condivisione file 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 di ping funzioni dal cluster Kubernetes con Arc abilitato alla macchina virtuale che dispone della condivisione file SMB. Per verificare che l'operazione ping funzioni, seguire questa procedura:
Nel cluster Kubernetes abilitato a Arc, creare un pod di test che esegua qualsiasi immagine Linux, ad esempio BusyBox o Ubuntu.
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:
Nel pod di test con la stessa immagine Linux creare una cartella con il percorso denominato mnt/smb.
Passare alla directory radice o alla home directory che contiene la cartella mnt.
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.
Ottimizzare le prestazioni per le distribuzioni ibride
Per ottimizzare l'efficienza e le prestazioni per un'app per la logica Standard in una distribuzione ibrida, è necessario comprendere come analizzare e valutare aspetti chiave, ad esempio CPU, allocazione di memoria e meccanismi di ridimensionamento, in modo da ottenere informazioni utili sull'ottimizzazione. Altri elementi chiave includono l'infrastruttura Kubernetes sottostante, la configurazione SQL e la configurazione del ridimensionamento, che possono influire significativamente sull'efficienza del flusso di lavoro e sulle prestazioni complessive. Per altre informazioni, vedere Raccomandazioni per l'analisi e l'ottimizzazione delle prestazioni delle distribuzioni ibride.