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
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:
- Che cos'è il servizio Azure Kubernetes?
- Concetti di base per servizio Azure Kubernetes (servizio Azure Kubernetes)
- Percorsi personalizzati per i cluster Kubernetes abilitati per Azure Arc
- Che cos'è App Contenitore di Azure?
- App Azure Container in Azure Arc
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
Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.
Conoscenza di base dei concetti di base 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.
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:
- Informazioni su Azure Stack HCI
- Prerequisiti di distribuzione per Azure Stack HCI
- Creare cluster Kubernetes in Azure Stack HCI usando l'interfaccia della riga di comando di Azure
- Configurare un host servizio Azure Kubernetes in Azure Stack HCI 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. LOCATION Sì <Area di Azure> Un'area di Azure che supporta le app contenitore di Azure in 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 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.
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.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:
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 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:
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
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:
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 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.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:
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
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.
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 App Azure Container. 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 creata, distribuita e ospitata nell'ambiente connesso app contenitore di Azure. 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 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 Azure Container. clusterName Sì Nome dell'estensione Kubernetes dell'estensione App Azure Container da creare per l'estensione. 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 il App per la logica di Azure scaler in KEDA. Questo valore è obbligatorio e deve essere impostato su true. keda.logicAppsScaler.replicaCount Sì 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 Sì 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 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 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 Sì 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:
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 Sì <extension-ID> ID per l'estensione App Azure Container. 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 per il 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 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 Sì <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.
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 trova 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 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.
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.
Nella barra degli strumenti della pagina Condivisioni file selezionare + Condivisione file e specificare le informazioni necessarie per la 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\
- Password
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:
Nel cluster Kubernetes abilitato per Arc creare un pod di test che esegue 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.