Uw eigen infrastructuur instellen voor standaardlogica-apps met behulp van hybride implementatie (preview)
Van toepassing op: Azure Logic Apps (Standard)
Notitie
Deze mogelijkheid is in preview, brengt kosten in rekening voor gebruik en is onderhevig aan de aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews.
Soms moet u uw eigen infrastructuur instellen en beheren om te voldoen aan specifieke vereisten voor naleving van regelgeving, gegevensprivacy of netwerkbeperkingen. Azure Logic Apps biedt een hybride implementatiemodel , zodat u standaardwerkstromen voor logische apps kunt implementeren en hosten in on-premises, privécloud- of openbare cloudscenario's. Dit model biedt u de mogelijkheden voor het hosten van integratieoplossingen in gedeeltelijk verbonden omgevingen wanneer u lokale verwerking, gegevensopslag en netwerktoegang moet gebruiken. Met de hybride optie hebt u de vrijheid en flexibiliteit om de beste omgeving voor uw werkstromen te kiezen.
Hoe hybride implementatie werkt
Standaardwerkstromen voor logische apps met de optie hybride implementatie worden mogelijk gemaakt door een Azure Logic Apps-runtime die wordt gehost in een Azure Container Apps-extensie. In uw werkstroom worden ingebouwde bewerkingen lokaal uitgevoerd met de runtime, zodat u een hogere doorvoer krijgt voor toegang tot lokale gegevensbronnen. Als u toegang nodig hebt tot niet-lokale gegevensresources, bijvoorbeeld cloudservices zoals Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn of ServiceNow, kunt u bewerkingen kiezen uit meer dan 1000 connectors die worden gehost in Azure om deze op te nemen in uw werkstromen. Zie Beheerde (gedeelde) connectors voor meer informatie. Hoewel u een internetverbinding nodig hebt om uw logische app te beheren in Azure Portal, kunt u met de semi-verbonden aard van dit platform tijdelijke problemen met de internetverbinding oplossen.
Als u bijvoorbeeld een on-premises scenario hebt, ziet u in het volgende architectuuroverzicht waar werkstromen van de logische standaard-app worden gehost en uitgevoerd in het hybride model. De gedeeltelijk verbonden omgeving bevat de volgende resources voor het hosten en werken met uw Standaard logische apps, die als Azure Container Apps-resources worden geïmplementeerd:
- AKS-clusters (Azure Kubernetes Service) met Azure Arc
- Een SQL-database om de uitvoeringsgeschiedenis, invoer en uitvoer van de werkstroom lokaal op te slaan voor verwerking
- Een SMB-bestandsshare (Server Message Block) voor het lokaal opslaan van artefacten die worden gebruikt door uw werkstromen
Voor hosting kunt u ook Kubernetes-clusters met Azure Arc instellen en gebruiken op Azure Stack-hypergeconvergeerde infrastructuur (HCI) of Kubernetes-clusters met Azure Arc op Windows Server.
Voor meer informatie raadpleegt u de volgende documentatie:
- Wat is Azure Kubernetes Service?
- Kernconcepten voor Azure Kubernetes Service (AKS)
- Aangepaste locaties voor Kubernetes-clusters met Azure Arc
- Wat is Azure Container Apps?
- Azure Container Apps in Azure Arc
Deze handleiding laat zien hoe u de benodigde on-premises resources in uw infrastructuur instelt, zodat u een standaardwerkstroom voor logische apps kunt maken, implementeren en hosten met behulp van het hybride implementatiemodel.
Werking van facturering
Met de hybride optie bent u verantwoordelijk voor de volgende items:
- Uw Kubernetes-infrastructuur met Azure Arc
- Uw SQL Server-licentie
- Een factureringskosten van $ 0,18 USD per vCPU/uur ter ondersteuning van standard-workloads voor logische apps
In dit factureringsmodel betaalt u alleen voor wat u nodig hebt en schaalt u resources voor dynamische workloads zonder dat u hoeft te kopen voor piekgebruik. Voor werkstromen die gebruikmaken van door Azure gehoste connectorbewerkingen, zoals Microsoft Teams of Microsoft Office 365, zijn bestaande standard-prijzen (één tenant) van toepassing op deze bewerkingen.
Beperkingen
Hybride implementatie is momenteel beschikbaar en wordt alleen ondersteund voor de volgende Kubernetes-clusters met Azure Arc:
- Kubernetes-clusters met Azure Arc
- Kubernetes-clusters met Azure Arc in Azure Stack HCI
- Kubernetes-clusters met Azure Arc op Windows Server
Vereisten
Een Azure-account en -abonnement. Als u nog geen abonnement hebt, meld u dan aan voor een gratis Azure-account.
Basiskennis over basisconcepten van AKS
Technische vereisten voor Azure Container Apps in Kubernetes met Azure Arc, inclusief toegang tot een openbaar of privécontainerregister, zoals Azure Container Registry.
Een Kubernetes-cluster maken
Voordat u uw standaard logische app als on-premises resource kunt implementeren in een Kubernetes-cluster met Azure Arc in een met Azure Container Apps verbonden omgeving, hebt u eerst een Kubernetes-cluster nodig. U verbindt dit cluster later met Azure Arc, zodat u een Kubernetes-cluster met Azure Arc hebt.
Uw Kubernetes-cluster vereist binnenkomende en uitgaande connectiviteit met de SQL-database die u later maakt als opslagprovider en met de Server Message Block-bestandsshare die u later maakt voor artefactenopslag. Deze resources moeten zich in hetzelfde netwerk bevinden.
Notitie
U kunt ook een Kubernetes-cluster maken in de Azure Stack HCI-infrastructuur of het Kubernetes-cluster op Windows Server en de stappen in deze handleiding toepassen om uw cluster te verbinden met Azure Arc en uw verbonden omgeving in te stellen. Zie de volgende bronnen voor meer informatie over Azure Stack HCI en AKS op Windows Server:
Stel de volgende omgevingsvariabelen in voor het Kubernetes-cluster dat u wilt maken:
SUBSCRIPTION="<Azure-subscription-ID>" AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>" AKS_NAME="<aks-cluster-name>" LOCATION="eastus"
Parameter Vereist Weergegeven als Beschrijving ABONNEMENT Ja <Azure-subscription-ID> De id voor uw Azure-abonnement AKS_CLUSTER_GROUP_NAME Ja <aks-cluster-resource-group-name> De naam voor de Azure-resourcegroep die moet worden gebruikt met uw Kubernetes-cluster. Deze naam moet uniek zijn in verschillende regio's en mag alleen letters, cijfers, afbreekstreepjes (-_), onderstrepingstekens (_), haakjes (()) en punten (.) bevatten.
In dit voorbeeld wordt Hybrid-RG gebruikt.AKS_NAME Ja <aks-cluster-name> De naam voor uw Kubernetes-cluster. PLAATS Ja <Azure-regio> Een Azure-regio die Ondersteuning biedt voor Azure-container-apps in Kubernetes met Azure Arc.
In dit voorbeeld wordt eastus gebruikt.Voer de volgende opdrachten uit met behulp van de Bash-omgeving in Azure Cloud Shell of lokaal met behulp van Azure CLI die op uw computer is geïnstalleerd:
Notitie
Zorg ervoor dat u de waarden van het knooppunt max-count en min-count wijzigt op basis van uw belastingsvereisten.
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
Parameter Vereist Weergegeven als Beschrijving max count
Nee <max-nodes-value> Het maximum aantal knooppunten dat moet worden gebruikt voor de automatische schaalaanpassing wanneer u de enable-cluster-autoscaler
optie opneemt. Deze waarde varieert van 1 tot 1000.min count
Nee <min-knooppunten-waarde> Het minimale aantal knooppunten dat moet worden gebruikt voor de automatische schaalaanpassing wanneer u de enable-cluster-autoscaler
optie opneemt. Deze waarde varieert van 1 tot 1000.Voor meer informatie raadpleegt u de volgende bronnen:
Kubernetes-cluster verbinden met Azure Arc
Als u uw Kubernetes-cluster met Azure Arc wilt maken, verbindt u uw Kubernetes-cluster met Azure Arc.
Notitie
U vindt de stappen in deze sectie en verder met het maken van uw verbonden omgeving in een script met de naam EnvironmentSetup.ps1, dat u kunt vinden in de GitHub-opslagplaats met de naam Azure/logicapps. U kunt dit script wijzigen en gebruiken om te voldoen aan uw vereisten en scenario's.
Het script is niet ondertekend, dus voordat u het script uitvoert, voert u de volgende Azure PowerShell-opdracht uit als beheerder om het uitvoeringsbeleid in te stellen:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Zie Set-ExecutionPolicy voor meer informatie.
Installeer de volgende Azure CLI-extensies:
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
Voor meer informatie raadpleegt u de volgende bronnen:
Registreer de volgende vereiste naamruimten:
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
Voor meer informatie raadpleegt u de volgende bronnen:
Installeer de Kubernetes-opdrachtregelinterface (CLI) met de naam 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
Voor meer informatie raadpleegt u de volgende bronnen:
Installeer De Kubernetes-pakketbeheerder met de naam Helm:
choco install kubernetes-helm
Voor meer informatie raadpleegt u de volgende bronnen:
Installeer het SMB-stuurprogramma met behulp van de volgende Helm-opdrachten:
Voeg de opgegeven grafiekopslagplaats toe, haal de meest recente informatie voor beschikbare grafieken op en installeer het opgegeven grafiekarchief.
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
Voor meer informatie raadpleegt u de volgende bronnen:
Controleer of het SMB-stuurprogramma is geïnstalleerd door de volgende kubectl-opdracht uit te voeren, waarin smb.csi.k8s.io moet worden vermeld:
kubectl get csidriver
Zie kubectl get voor meer informatie.
Uw Kubernetes-cluster verbinden met Azure Arc
Test de verbinding met uw cluster door het kubeconfig-bestand op te halen:
az aks get-credentials \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --admin kubectl get ns
Standaard wordt het kubeconfig-bestand opgeslagen in het pad ~ /.kube/config. Deze opdracht is van toepassing op ons Kubernetes-voorbeeldcluster en verschilt voor andere soorten Kubernetes-clusters.
Voor meer informatie raadpleegt u de volgende bronnen:
Stel op basis van uw Kubernetes-clusterimplementatie de volgende omgevingsvariabele in om een naam op te geven voor de Azure-resourcegroep die uw Cluster en resources met Azure Arc bevat:
GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
Parameter Vereist Weergegeven als Beschrijving GROUP_NAME Ja <Azure-Arc-cluster-resource-group-name> De naam voor de Azure-resourcegroep die moet worden gebruikt met uw azure Arc-cluster en andere resources, zoals uw Azure Container Apps-extensie, aangepaste locatie en verbonden Azure Container Apps-omgeving. Deze naam moet uniek zijn in verschillende regio's en mag alleen letters, cijfers, afbreekstreepjes (-_), onderstrepingstekens (_), haakjes (()) en punten (.) bevatten.
In dit voorbeeld wordt Hybrid-Arc-RG gebruikt.Maak de Azure-resourcegroep voor uw Azure Arc-cluster en -resources:
az group create \ --name $GROUP_NAME \ --location $LOCATION
Voor meer informatie raadpleegt u de volgende bronnen:
Stel de volgende omgevingsvariabele in om een naam op te geven voor uw Kubernetes-cluster met Azure Arc:
CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
Parameter Vereist Weergegeven als Beschrijving CONNECTED_CLUSTER_NAME Ja <Azure-Arc-cluster-resource-group-name-cluster> De naam die moet worden gebruikt voor uw Azure Arc-cluster. Deze naam moet uniek zijn in verschillende regio's en mag alleen letters, cijfers, afbreekstreepjes (-_), onderstrepingstekens (_), haakjes (()) en punten (.) bevatten.
In dit voorbeeld wordt gebruikgemaakt van Hybrid-Arc-RG-cluster.Verbind uw eerder gemaakte Kubernetes-cluster met Azure Arc:
az connectedk8s connect \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME
Voor meer informatie raadpleegt u de volgende bronnen:
Valideer de verbinding tussen Azure Arc en uw Kubernetes-cluster:
az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME
Als in de uitvoer wordt aangegeven dat de eigenschapswaarde provisioningState niet is ingesteld op Geslaagd, voert u de opdracht na één minuut opnieuw uit.
Voor meer informatie raadpleegt u de volgende bronnen:
Een Azure Log Analytics-werkruimte maken
U kunt een optionele, maar aanbevolen Azure Log Analytics-werkruimte maken, die toegang biedt tot logboeken voor apps die worden uitgevoerd in uw Kubernetes-cluster met Azure Arc.
Stel de volgende omgevingsvariabele in om een naam op te geven voor uw Log Analytics-werkruimte:
WORKSPACE_NAME="$GROUP_NAME-workspace"
Parameter Vereist Weergegeven als Beschrijving WORKSPACE_NAME Ja <Azure-Arc-cluster-resource-group-name-workspace> De naam die moet worden gebruikt voor uw Log Analytics-werkruimte. Deze naam moet uniek zijn binnen uw resourcegroep.
In dit voorbeeld wordt Hybrid-Arc-RG-workspace gebruikt.Maak de Log Analytics-werkruimte:
az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME
Voor meer informatie raadpleegt u de volgende bronnen:
Haal de base64-gecodeerde id en gedeelde sleutel voor uw Log Analytics-werkruimte op. U hebt deze waarden nodig voor een latere stap.
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))
Parameter Vereist Weergegeven als Beschrijving LOG_ANALYTICS_WORKSPACE_ID Ja De id voor uw Log Analytics-werkruimte. LOG_ANALYTICS_WORKSPACE_ID_ENC Ja De base64-gecodeerde id voor uw Log Analytics-werkruimte. LOG_ANALYTICS_KEY Ja De gedeelde sleutel voor uw Log Analytics-werkruimte. LOG_ANALYTICS_ENC Ja De met Base64 gecodeerde gedeelde sleutel voor uw Log Analytics-werkruimte. Voor meer informatie raadpleegt u de volgende bronnen:
De Azure Container Apps-extensie maken en installeren
Maak en installeer nu de Azure Container Apps-extensie met uw Kubernetes-cluster met Azure Arc als een on-premises resource.
Belangrijk
Als u wilt implementeren in AKS in Azure Stack HCI, moet u voordat u de Azure Container Apps-extensie maakt en installeert, ervoor zorgen dat u HAProxy of een aangepaste load balancer instelt.
Stel de volgende omgevingsvariabelen in op de volgende waarden:
EXTENSION_NAME="logicapps-aca-extension" NAMESPACE="logicapps-aca-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
Parameter Vereist Weergegeven als Beschrijving EXTENSION_NAME Ja logicapps-aca-extension De naam voor de Azure Container Apps-extensie. NAMESPACE Ja logicapps-aca-ns De clusternaamruimte waarin u resources wilt inrichten. CONNECTED_ENVIRONMENT_NAME Ja <naam verbonden omgeving> Een unieke naam die moet worden gebruikt voor de met Azure Container Apps verbonden omgeving. Deze naam wordt onderdeel van de domeinnaam voor de standaard logische app die u maakt, implementeert en host in de met Azure Container Apps verbonden omgeving. Maak en installeer de extensie waarvoor Log Analytics is ingeschakeld voor uw Kubernetes-cluster met Azure Arc. U kunt Log Analytics later niet meer toevoegen aan de extensie.
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}"
Parameter Vereist Beschrijving Microsoft.CustomLocation.ServiceAccount Ja Het serviceaccount dat is gemaakt voor de aangepaste locatie.
Aanbeveling: Stel de waarde in op de standaardwaarde.appsNamespace Ja De naamruimte die moet worden gebruikt voor het maken van app-definities en revisies. Deze waarde moet overeenkomen met de releasenaamruimte voor de Azure Container Apps-extensie. clusterName Ja De naam voor de Kubernetes-omgeving van de Azure Container Apps-extensie die moet worden gemaakt voor de extensie. keda.enabled Ja Schakel Kubernetes Gebeurtenisgestuurde Automatische schaalaanpassing (KEDA) in. Deze waarde is vereist en moet worden ingesteld op waar. keda.logicAppsScaler.enabled Ja Schakel de Azure Logic Apps-schaalfunctie in KEDA in. Deze waarde is vereist en moet worden ingesteld op waar. keda.logicAppsScaler.replicaCount Ja Het eerste aantal logische app-scalers dat moet worden gestart. De standaardwaarde is ingesteld op 1. Met deze waarde wordt omhoog geschaald of omlaag geschaald naar 0, als er geen logische apps in de omgeving bestaan. containerAppController.api.functionsServerEnabled Ja Schakel de service in die verantwoordelijk is voor het converteren van werkstroomtriggers voor logische apps naar op KEDA geschaalde objecten. Deze waarde is vereist en moet worden ingesteld op waar. envoy.externalServiceAzureILB Ja Bepaalt of de envoy fungeert als een interne load balancer of een openbare load balancer.
- waar: De envoy fungeert als een interne load balancer. De Azure Logic Apps-runtime is alleen toegankelijk binnen een particulier netwerk.
- false: De envoy fungeert als een openbare load balancer. De Azure Logic Apps-runtime is toegankelijk via het openbare netwerk.functionsProxyApiConfig.enabled Ja Schakel de proxyservice in die API-toegang tot de Azure Logic Apps-runtime mogelijk maakt vanuit Azure Portal. Deze waarde is vereist en moet worden ingesteld op waar. envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Ja, maar alleen wanneer het onderliggende cluster Azure Kubernetes Service is. De naam voor de resourcegroep waarin het Kubernetes-cluster bestaat. logProcessor.appLogs.destination Nee Het doel dat moet worden gebruikt voor toepassingslogboeken. De waarde is log-analytics of geen, waardoor logboekregistratie wordt uitgeschakeld. logProcessor.appLogs.logAnalyticsConfig.customerId Ja, maar alleen wanneer logProcessor.appLogs.destination is ingesteld op log-analytics. De base64-gecodeerde id voor uw Log Analytics-werkruimte. Zorg ervoor dat u deze parameter configureert als een beveiligde instelling. logProcessor.appLogs.logAnalyticsConfig.sharedKey Ja, maar alleen wanneer logProcessor.appLogs.destination is ingesteld op log-analytics. De met Base64 gecodeerde gedeelde sleutel voor uw Log Analytics-werkruimte. Zorg ervoor dat u deze parameter configureert als een beveiligde instelling. Voor meer informatie raadpleegt u de volgende bronnen:
Sla de id-waarde voor de Azure Container Apps-extensie op voor later gebruik:
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)
Parameter Vereist Weergegeven als Beschrijving EXTENSION_ID Ja <extensie-id> De id voor de Azure Container Apps-extensie. Voor meer informatie raadpleegt u de volgende bronnen:
Wacht totdat u doorgaat totdat de extensie volledig is geïnstalleerd. Voer de volgende opdracht uit om de terminalsessie te laten wachten totdat de installatie is voltooid:
az resource wait \ --ids $EXTENSION_ID \ --custom "properties.provisioningState!='Pending'" \ --api-version "2020-07-01-preview"
Voor meer informatie raadpleegt u de volgende bronnen:
Uw aangepaste locatie maken
Stel de volgende omgevingsvariabelen in op de opgegeven waarden:
CUSTOM_LOCATION_NAME="my-custom-location" CONNECTED_CLUSTER_ID=$(az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME \ --query id \ --output tsv)
Parameter Vereist Weergegeven als Beschrijving CUSTOM_LOCATION_NAME Ja mijn-aangepaste locatie De naam die moet worden gebruikt voor uw aangepaste locatie. CONNECTED_CLUSTER_ID Ja <Azure-Arc-cluster-ID> De id voor het Kubernetes-cluster met Azure Arc. Voor meer informatie raadpleegt u de volgende bronnen:
Maak de aangepaste locatie:
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
Notitie
Als u problemen ondervindt met het maken van een aangepaste locatie in uw cluster, moet u mogelijk de functie aangepaste locatie inschakelen op uw cluster. Deze stap is vereist als u bent aangemeld bij Azure CLI met behulp van een service-principal of als u zich hebt aangemeld als Microsoft Entra-gebruiker met beperkte machtigingen voor de clusterresource.
Voor meer informatie raadpleegt u de volgende bronnen:
Controleer of de aangepaste locatie is gemaakt:
az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME
Als in de uitvoer wordt aangegeven dat de eigenschapswaarde provisioningState niet is ingesteld op Geslaagd, voert u de opdracht na één minuut opnieuw uit.
Sla de aangepaste locatie-id op voor gebruik in een latere stap:
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Parameter Vereist Weergegeven als Beschrijving CUSTOM_LOCATION_ID Ja <my-custom-location-ID> De id voor uw aangepaste locatie. Voor meer informatie raadpleegt u de volgende bronnen:
De met Azure Container Apps verbonden omgeving maken
Maak nu uw met Azure Container Apps verbonden omgeving voor uw standaard logische app die u kunt gebruiken.
az containerapp connected-env create \
--resource-group $GROUP_NAME \
--name $CONNECTED_ENVIRONMENT_NAME \
--custom-location $CUSTOM_LOCATION_ID \
--location $LOCATION
Voor meer informatie raadpleegt u de volgende bronnen:
SQL Server-opslagprovider maken
Standaardwerkstromen voor logische apps in het hybride implementatiemodel maken gebruik van een SQL-database als opslagprovider voor de gegevens die worden gebruikt door werkstromen en de Azure Logic Apps-runtime, bijvoorbeeld de uitvoeringsgeschiedenis van de werkstroom, invoer, uitvoer enzovoort.
Uw SQL-database vereist binnenkomende en uitgaande connectiviteit met uw Kubernetes-cluster, zodat deze resources in hetzelfde netwerk moeten bestaan.
Stel een van de volgende SQL Server-edities in:
- SQL Server on-premises
- Azure SQL-database
- Azure SQL Managed Instance
- SQL Server ingeschakeld door Azure Arc
Zie Sql Database Storage instellen voor werkstromen voor logische standaard-apps voor meer informatie.
Controleer of uw SQL-database zich in hetzelfde netwerk bevindt als uw Kubernetes-cluster met Arc en SMB-bestandsshare.
Zoek en sla de verbindingsreeks op voor de SQL-database die u hebt gemaakt.
SMB-bestandsshare instellen voor artefactopslag
Als u artefacten zoals kaarten, schema's en assembly's wilt opslaan voor uw logische app-resource (container-app), moet u een bestandsshare hebben die gebruikmaakt van het SMB-protocol (Server Message Block).
U hebt beheerderstoegang nodig om uw SMB-bestandsshare in te stellen.
Uw SMB-bestandsshare moet bestaan in hetzelfde netwerk als uw Kubernetes-cluster en SQL-database.
Uw SMB-bestandsshare vereist binnenkomende en uitgaande connectiviteit met uw Kubernetes-cluster. Als u beperkingen voor virtuele Azure-netwerken hebt ingeschakeld, moet u ervoor zorgen dat uw bestandsshare bestaat in hetzelfde virtuele netwerk als uw Kubernetes-cluster of in een virtueel peernetwerk.
Gebruik niet hetzelfde exacte bestandssharepad voor meerdere logische apps.
U kunt afzonderlijke SMB-bestandsshares gebruiken voor elke logische app of u kunt verschillende mappen in dezelfde SMB-bestandsshare gebruiken zolang deze mappen niet zijn genest. Als u bijvoorbeeld geen logische app hebt, gebruikt u het hoofdpad en gebruikt u vervolgens een andere logische app een submap.
Als u uw logische app wilt implementeren met Visual Studio Code, moet u ervoor zorgen dat de lokale computer met Visual Studio Code toegang heeft tot de bestandsshare.
Uw SMB-bestandsshare instellen in Windows
Zorg ervoor dat uw SMB-bestandsshare bestaat in hetzelfde virtuele netwerk als het cluster waar u de bestandsshare koppelt.
Ga in Windows naar de map die u wilt delen, open het snelmenu en selecteer Eigenschappen.
Selecteer Delen op het tabblad Delen.
Selecteer in het vak dat wordt geopend een persoon die u toegang wilt geven tot de bestandsshare.
Selecteer Delen en kopieer de koppeling voor het netwerkpad.
Als uw lokale computer niet is verbonden met een domein, vervangt u de computernaam in het netwerkpad door het IP-adres.
Sla het IP-adres op dat u later wilt gebruiken als hostnaam.
Azure Files instellen als uw SMB-bestandsshare
Voor testdoeleinden kunt u Azure Files ook gebruiken als een SMB-bestandsshare. Zorg ervoor dat uw SMB-bestandsshare bestaat in hetzelfde virtuele netwerk als het cluster waar u de bestandsshare koppelt.
Maak in Azure Portal een Azure-opslagaccount.
Selecteer bestandsshares in het menu van het opslagaccount onder Gegevensopslag.
Selecteer + Bestandsshare in de paginawerkbalk bestandsshare en geef de vereiste informatie op voor uw SMB-bestandsshare.
Nadat de implementatie is voltooid, selecteert u Ga naar de resource.
Selecteer Overzicht in het menu bestandsshare, indien niet geselecteerd.
Selecteer Verbinding maken op de werkbalk Overzichtspagina. Selecteer In het deelvenster Verbinding maken het script weergeven.
Kopieer de volgende waarden en sla ze ergens veilig op voor later gebruik:
- De hostnaam van de bestandsshare, bijvoorbeeld mystorage.file.core.windows.net
- Bestandssharepad
- Gebruikersnaam zonder
localhost\
- Wachtwoord
Selecteer + Map toevoegen op de werkbalk Overzichtspagina en geef een naam op die u voor de map wilt gebruiken. Sla deze naam op om later te gebruiken.
U hebt deze opgeslagen waarden nodig om uw SMB-bestandssharegegevens op te geven wanneer u uw logische app-resource implementeert.
Zie Een SMB Azure-bestandsshare maken voor meer informatie.
Verbinding met SMB-bestandsshare bevestigen
Als u de verbinding tussen uw Kubernetes-cluster met Arc en uw SMB-bestandsshare wilt testen en wilt controleren of uw bestandsshare juist is ingesteld, voert u de volgende stappen uit:
Als uw SMB-bestandsshare zich niet in hetzelfde cluster bevindt, controleert u of de pingbewerking werkt vanuit uw Kubernetes-cluster met Arc naar de virtuele machine met uw SMB-bestandsshare. Voer de volgende stappen uit om te controleren of de pingbewerking werkt:
Voer de volgende stappen uit om te controleren of uw SMB-bestandsshare juist is ingesteld:
Maak in uw testpod met dezelfde Linux-installatiekopieën een map met het pad met de naam mnt/smb.
Ga naar de hoofdmap of de basismap die de map mnt bevat.
Voer de volgende opdracht uit:
- mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}
Als u wilt controleren of artefacten correct worden geüpload, maakt u verbinding met het SMB-bestandssharepad en controleert u of artefactbestanden aanwezig zijn in de juiste map die u tijdens de implementatie opgeeft.
Volgende stappen
Standaardwerkstromen voor logische apps maken voor hybride implementatie in uw eigen infrastructuur