Einrichten einer eigenen Infrastruktur für Standardlogik-Apps mit Hybridbereitstellung (Vorschau)
Gilt für: Azure Logic Apps (Standard)
Hinweis
Diese Funktion befindet sich in der Vorschau, verursacht Gebühren für die Nutzung und unterliegt den ergänzenden Nutzungsbedingungen für Microsoft Azure Previews.
Manchmal müssen Sie Ihre eigene Infrastruktur einrichten und verwalten, um bestimmte Anforderungen an die Einhaltung gesetzlicher Vorschriften, Datenschutz oder Netzwerkeinschränkungen zu erfüllen. Azure Logic Apps bietet ein Hybridbereitstellungsmodell, sodass Sie Standardlogik-App-Workflows in Szenarien lokal, mit privater oder mit öffentlicher Cloud bereitstellen und hosten können. Dieses Modell bietet Ihnen die Funktionen zum Hosten von Integrationslösungen in teilweise verbundenen Umgebungen, wenn Sie lokale Verarbeitung, Datenspeicher und Netzwerkzugriff verwenden müssen. Mit der Hybridoption haben Sie die Freiheit und Flexibilität, die beste Umgebung für Ihre Workflows auszuwählen.
Funktionsweise der Hybridbereitstellung
Standardlogik-App-Workflows mit der Hybridbereitstellungsoption werden von einer Azure Logic Apps-Runtime unterstützt, die in einer Azure Container Apps-Erweiterung gehostet wird. In Ihrem Workflow werden alle integrierten Vorgänge lokal mit der Runtime ausgeführt, sodass Sie einen höheren Durchsatz für den Zugriff auf lokale Datenquellen erhalten. Wenn Sie Zugriff auf nicht lokale Datenressourcen benötigen, z. B. cloudbasierte Dienste wie Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn oder ServiceNow, können Sie Vorgänge aus über 1.000 in Azure gehosteten Connectors auswählen, um sie in Ihre Workflows einzuschließen. Weitere Informationen finden Sie unter verwalteten (freigegebenen) Connectors. Obwohl Sie über eine Internetverbindung verfügen müssen, um Ihre Logik-App im Azure-Portal zu verwalten, können Sie mit der halb verbundenen Art dieser Plattform temporäre Probleme mit der Internetverbindung abfangen.
Wenn Sie beispielsweise über ein lokales Szenario verfügen, wird in der folgenden Architekturübersicht gezeigt, wo Standardlogik-App-Workflows gehostet und im Hybridmodell ausgeführt werden. Die teilweise verbundene Umgebung umfasst die folgenden Ressourcen zum Hosten und Arbeiten mit Ihren Standardlogik-Apps, die als Azure Container Apps-Ressourcen bereitgestellt werden:
- Azure Arc-fähige Azure Kubernetes Service (AKS)-Cluster
- Eine SQL-Datenbank zum lokalen Speichern des Workflowausführungsverlaufs, der Eingaben und der Ausgaben für die Verarbeitung
- Eine SMB-Dateifreigabe (Server Message Block) zum lokalen Speichern von Artefakten, die von Ihren Workflows verwendet werden
Für das Hosting können Sie auch Azure Arc-fähige Kubernetes-Cluster auf hyperkonvergierter Azure Stack-Infrastruktur (HCI) oder Azure Arc-fähigen Kubernetes-Clustern auf Windows Server einrichten und verwenden.
Weitere Informationen finden Sie in der folgenden Dokumentation:
- Was ist Azure Kubernetes Service?
- Grundlegende Konzepte für Azure Kubernetes Service (AKS)
- Benutzerdefinierte Speicherorte für Azure Arc-fähige Kubernetes-Cluster
- Was ist Azure Container Apps?
- Azure Container Apps in Azure Arc
In diesem Anleitungshandbuch wird gezeigt, wie Sie die erforderlichen lokalen Ressourcen in Ihrer Infrastruktur einrichten, damit Sie einen Standardlogik-App-Workflow mithilfe des Hybridbereitstellungsmodells erstellen, bereitstellen und hosten können.
Funktionsweise der Abrechnung
Mit der Hybridoption sind Sie für die folgenden Elemente verantwortlich:
- Ihre Azure Arc-fähige Kubernetes-Infrastruktur
- Ihre SQL Server-Lizenz
- Abrechnungsgebühr von 0,18 USD pro vCPU/Stunde zur Unterstützung von Standardlogik-App-Workloads
In diesem Abrechnungsmodell zahlen Sie nur für das, was Sie benötigen, und skalieren Ressourcen für dynamische Workloads, ohne eine Spitzenauslastung kaufen zu müssen. Für Workflows, die Azure-gehostete Connectorvorgänge verwenden, z. B. Microsoft Teams oder Microsoft Office 365, gelten vorhandene Standardpreise (Einzelmandanten) für diese Vorgangsausführungen.
Begrenzungen
Hybridbereitstellung ist derzeit verfügbar und wird nur für die folgenden Azure Arc-fähigen Kubernetes-Cluster unterstützt:
- Kubernetes-Cluster mit Azure Arc-Unterstützung
- Azure Arc-fähige Kubernetes-Cluster auf Azure Stack HCI
- Azure Arc-fähige Kubernetes-Cluster auf Windows Server
Voraussetzungen
Ein Azure-Konto und ein Azure-Abonnement. Falls Sie kein Abonnement besitzen, können Sie sich für ein kostenloses Azure-Konto registrieren.
Grundlegendes Verständnis von AKS-Kernkonzepten
Technische Anforderungen für Azure Container Apps auf Azure Arc-fähigem Kubernetes, einschließlich des Zugriffs auf eine öffentliche oder private Containerregistrierung, z. B. die Azure Container Registry.
Erstellen eines Kubernetes-Clusters
Bevor Sie Ihre Standardlogik-App als lokale Ressource in einem Azure Arc-fähigen Kubernetes-Cluster in einer verbundenen Azure Container Apps-Umgebung bereitstellen können, benötigen Sie zuerst ein Kubernetes-Cluster. Sie verbinden dieses Cluster später mit Azure Arc, sodass Sie über ein Azure Arc-fähiges Kubernetes-Cluster verfügen.
Ihr Kubernetes-Cluster erfordert eine eingehende und ausgehende Verbindung mit der SQL-Datenbank, die Sie später als Speicheranbieter und mit der Dateifreigabe für den Server Message Block erstellen, den Sie später für den Artefaktspeicher erstellen. Diese Ressourcen müssen innerhalb desselben Netzwerks vorhanden sein.
Hinweis
Sie können auch ein Kubernetes-Cluster auf Azure Stack HCI-Infrastruktur oder ein Kubernetes-Cluster auf Windows Server erstellen und die Schritte in diesem Handbuch verwenden, um Ihr Cluster mit Azure Arc zu verbinden und Ihre verbundene Umgebung einzurichten. Weitere Informationen zu Azure Stack HCI und AKS auf Windows Server finden Sie in den folgenden Ressourcen:
- Informationen zu Azure Stack HCI
- Bereitstellungsvoraussetzungen für Azure Stack HCI
- Erstellen von Kubernetes-Clustern auf Azure Stack HCI mit Azure CLI
- Einrichten eines Azure Kubernetes Service-Hosts auf der Azure Stack HCI und Windows Server und Bereitstellen eines Workloadclusters mithilfe von PowerShell
Legen Sie die folgenden Umgebungsvariablen für das Kubernetes-Cluster fest, das Sie erstellen möchten:
SUBSCRIPTION="<Azure-subscription-ID>" AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>" AKS_NAME="<aks-cluster-name>" LOCATION="eastus"
Parameter Erforderlich Wert BESCHREIBUNG SUBSCRIPTION Ja <Azure-subscription-ID> Die ID für Ihr Azure-Abonnement AKS_CLUSTER_GROUP_NAME Ja <aks-cluster-resource-group-name> Der Name für die Azure-Ressourcengruppe, die mit Ihrem Kubernetes-Cluster verwendet werden soll. Dieser Name muss regionsübergreifend eindeutig sein und darf nur Buchstaben, Ziffern, Bindestriche (-), Unterstriche (_), Klammern (()) und Punkte (.) enthalten.
In diesem Beispiel wird Hybrid-RG verwendet.AKS_NAME Ja <aks-cluster-name> Der Name für Ihr Kubernetes-Clusters. LOCATION Ja <Azure-Region> Eine Azure-Region, die Azure-Container-Apps in Azure Arc-fähigen Kubernetes unterstützt.
In diesem Beispiel wird eastus verwendet.Führen Sie die folgenden Befehle entweder mithilfe der Bash-Umgebung in Azure Cloud Shell oder lokal mithilfe von auf Ihrem Computer installierten Azure CLI aus:
Hinweis
Stellen Sie sicher, dass Sie die maximalen Anzahl und min-count-Knotenwerte basierend auf Ihren Lastanforderungen ändern.
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 Erforderlich Wert Beschreibung max count
No <max-nodes-value> Die maximale Anzahl von Knoten, die für Autoskalierung verwendet werden sollen, wenn Sie die enable-cluster-autoscaler
-Option einschließen. Es sind Werte zwischen 1 bis 1000 möglich.min count
No <min-nodes-value> Die Mindestanzahl der Knoten, die für die Autoskalierung verwendet werden sollen, wenn Sie die enable-cluster-autoscaler
-Option einschließen. Es sind Werte zwischen 1 bis 1000 möglich.Weitere Informationen finden Sie in den folgenden Ressourcen:
Eine Verbindung zwischen einem Kubernetes-Cluster und Azure Arc herstellen
Um Ihr Azure Arc-fähiges Kubernetes-Cluster zu erstellen, verbinden Sie Ihr Kubernetes-Cluster mit Azure Arc.
Hinweis
Sie finden die Schritte in diesem Abschnitt und den Weiteren bis zum Erstellen Ihrer verbundenen Umgebung in einem Skript namens EnvironmentSetup.ps1, das Sie im GitHub-Repository namens Azure/logicapps finden können. Sie können dieses Skript ändern und verwenden, um Ihre Anforderungen und Szenarien zu erfüllen.
Das Skript ist nicht signiert, daher führen Sie vor dem Ausführen des Skripts den folgenden Azure PowerShell-Befehl als Administrator aus, um die Ausführungsrichtlinie festzulegen:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Weitere Informationen finden Sie unter Set-ExecutionPolicy.
Installieren Sie die folgenden Azure CLI-Erweiterungen:
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
Weitere Informationen finden Sie in den folgenden Ressourcen:
Registrieren Sie die folgenden erforderlichen Namespaces:
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
Weitere Informationen finden Sie in den folgenden Ressourcen:
Installieren Sie die Kubernetes-Befehlszeilenschnittstelle (CLI) mit dem Namen 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
Weitere Informationen finden Sie in den folgenden Ressourcen:
Installieren Sie den Kubernetes-Paket-Manager mit dem Namen Helm:
choco install kubernetes-helm
Weitere Informationen finden Sie in den folgenden Ressourcen:
Installieren Sie den SMB-Treiber mithilfe der folgenden Helmbefehle:
Fügen Sie das angegebene Diagramm-Repository hinzu, rufen Sie die neuesten Informationen für verfügbare Diagramme ab und installieren Sie das angegebene Diagrammarchiv.
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
Weitere Informationen finden Sie in den folgenden Ressourcen:
Vergewissern Sie sich, dass der SMB-Treiber installiert ist, indem Sie den folgenden kubectl-Befehl ausführen, der smb.csi.k8s.io auflisten sollte:
kubectl get csidriver
Weitere Informationen finden Sie unter kubectl get.
Verbinden Ihres Kubernetes-Cluster mit Azure Arc
Testen Sie ihre Verbindung mit Ihrem Cluster, indem Sie die kubeconfig-Datei abrufen:
az aks get-credentials \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --admin kubectl get ns
Standardmäßig wird die kubeconfig-Datei im Pfad ~/.kube/config gespeichert. Dieser Befehl gilt für unser Kubernetes-Beispielcluster und unterscheidet sich für andere Arten von Kubernetes-Clustern.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Legen Sie basierend auf Ihrer Kubernetes-Clusterbereitstellung die folgende Umgebungsvariable fest, um einen Namen für die Azure-Ressourcengruppe anzugeben, die Ihr Azure Arc-fähiges Cluster und Ihre Ressourcen enthält:
GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
Parameter Erforderlich Wert Beschreibung GROUP_NAME Ja <Azure-Arc-cluster-resource-group-name> Der Name der Azure-Ressourcengruppe, die mit Ihrem Azure Arc-fähigen Cluster und anderen Ressourcen verwendet werden soll, z. B. Ihre Azure Container Apps-Erweiterung, benutzerdefinierter Standort und verbundene Azure Container Apps-Umgebung. Dieser Name muss regionsübergreifend eindeutig sein und darf nur Buchstaben, Ziffern, Bindestriche (-), Unterstriche (_), Klammern (()) und Punkte (.) enthalten.
In diesem Beispiel wird Hybrid-Arc-RG verwendet.Erstellen Sie die Azure-Ressourcengruppe für Ihr Azure Arc-fähiges Cluster und Ihre Ressourcen:
az group create \ --name $GROUP_NAME \ --location $LOCATION
Weitere Informationen finden Sie in den folgenden Ressourcen:
Legen Sie die folgende Umgebungsvariable fest, um einen Namen für Ihr Azure Arc-fähiges Kubernetes-Cluster anzugeben:
CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
Parameter Erforderlich Wert Beschreibung CONNECTED_CLUSTER_NAME Ja <Azure-Arc-cluster-resource-group-name>-cluster Der Name, der für Ihr Azure Arc-fähiges Cluster verwendet werden soll. Dieser Name muss regionsübergreifend eindeutig sein und darf nur Buchstaben, Ziffern, Bindestriche (-), Unterstriche (_), Klammern (()) und Punkte (.) enthalten.
In diesem Beispiel wird Hybrid-Arc-RG-Cluster verwendet.Verbinden Sie Ihr zuvor erstelltes Kubernetes-Cluster mit Azure Arc:
az connectedk8s connect \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME
Weitere Informationen finden Sie in den folgenden Ressourcen:
Überprüfen Sie die Verbindung zwischen Azure Arc und Ihrem Kubernetes-Cluster:
az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME
Wenn die Ausgabe anzeigt, dass der Wert der provisioningState-Eigenschaft nicht auf Erfolgreich festgelegt ist, führen Sie den Befehl nach einer Minute erneut aus.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Azure Log Analytics-Arbeitsbereich erstellen
Sie können einen optionalen, aber empfohlenen Azure Log Analytics-Arbeitsbereich erstellen, der Zugriff auf Protokolle für Apps bietet, die in Ihrem Azure Arc-fähigen Kubernetes-Cluster ausgeführt werden.
Legen Sie die folgende Umgebungsvariable fest, um einen Namen für Ihren Log Analytics-Arbeitsbereich anzugeben:
WORKSPACE_NAME="$GROUP_NAME-workspace"
Parameter Erforderlich Wert Beschreibung WORKSPACE_NAME Ja <Azure-Arc-cluster-resource-group-name>-workspace Der Name, der für Ihren Log Analytics-Arbeitsbereich verwendet werden soll. Dieser Name muss innerhalb Ihrer Ressourcengruppe eindeutig sein.
In diesem Beispiel wird der Hybrid-Arc-RG-Arbeitsbereich verwendet.Erstellen Sie den Log Analytics-Arbeitsbereich:
az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME
Weitere Informationen finden Sie in den folgenden Ressourcen:
Rufen Sie die base64-codierte ID und den freigegebenen Schlüssel für Ihren Log Analytics-Arbeitsbereich ab. Sie benötigen diese Werte für einen späteren Schritt.
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 Erforderlich Wert Beschreibung LOG_ANALYTICS_WORKSPACE_ID Ja Die ID für Ihren Log Analytics-Arbeitsbereich. LOG_ANALYTICS_WORKSPACE_ID_ENC Ja Die base64-codierte ID für Ihren Log Analytics-Arbeitsbereich. LOG_ANALYTICS_KEY Ja Der gemeinsame Schlüssel für Ihren Log Analytics-Arbeitsbereich. LOG_ANALYTICS_ENC Ja Der base64-codierte gemeinsame Schlüssel für Ihren Log Analytics-Arbeitsbereich. Weitere Informationen finden Sie in den folgenden Ressourcen:
Erstellen und Installieren der Azure Container Apps-Erweiterung
Erstellen und installieren Sie nun die Azure Container Apps-Erweiterung mit Ihrem Azure Arc-fähigen Kubernetes-Cluster als lokale Ressource.
Wichtig
Wenn Sie AKS auf Azure Stack HCI bereitstellen möchten, stellen Sie vor dem Erstellen und Installieren der Azure Container Apps-Erweiterung sicher, dass Sie HAProxy oder einen benutzerdefinierten Lastenausgleich einrichten.
Legen Sie die folgenden Umgebungsvariablen auf die folgenden Werte fest:
EXTENSION_NAME="logicapps-aca-extension" NAMESPACE="logicapps-aca-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
Parameter Erforderlich Wert Beschreibung EXTENSION_NAME Ja logicapps-aca-extension Der Name für die Azure Container Apps-Erweiterung. NAMESPACE Ja logicapps-aca-ns Der Clusternamespace, in dem Sie Ressourcen bereitstellen möchten. CONNECTED_ENVIRONMENT_NAME Ja <connected-environment-name> Ein eindeutiger Name, der für die verbundene Azure Container Apps-Umgebung verwendet werden soll. Dieser Name wird Teil des Domänennamens für die Standardlogik-App, die Sie in der verbundenen Azure Container Apps-Umgebung erstellen, bereitstellen und hosten. Erstellen und installieren Sie die Erweiterung mit aktiviertem Log Analytics für Ihr Azure Arc-fähiges Kubernetes-Cluster. Sie können der Erweiterung später keine Log Analytics hinzufügen.
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 Erforderlich Beschreibung Microsoft.CustomLocation.ServiceAccount Ja Das für den benutzerdefinierten Speicherort erstellte Dienstkonto.
Empfehlung: Legen Sie den Wert auf Standard fest.appsNamespace Ja Der Namespace, der zum Erstellen von App-Definitionen und Überarbeitungen verwendet werden soll. Dieser Wert muss mit dem Releasenamespace für die Azure Container Apps-Erweiterung übereinstimmen. clusterName Ja Der Name für die Kubernetes-Umgebung der Azure Container Apps-Erweiterung, die für die Erweiterung erstellt werden soll. keda.enabled Ja Aktivieren Sie Kubernetes Event-Driven Autoscaling (KEDA). Dieser Wert ist erforderlich und muss auf true festgelegt werden. keda.logicAppsScaler.enabled Ja Aktivieren Sie die Azure Logic Apps-Skalierung in KEDA. Dieser Wert ist erforderlich und muss auf true festgelegt werden. keda.logicAppsScaler.replicaCount Ja Die anfängliche Anzahl der zu startenden Logik-App-Skalierungen. Der Standardwert ist auf 1 festgelegt. Dieser Wert skaliert nach oben oder skaliert auf 0, wenn keine Logik-Apps in der Umgebung vorhanden sind. containerAppController.api.functionsServerEnabled Ja Aktivieren Sie den Dienst, der für die Konvertierung von Logik-App-Workflowtriggern in KEDA-skalierte Objekte verantwortlich ist. Dieser Wert ist erforderlich und muss auf true festgelegt werden. envoy.externalServiceAzureILB Ja Bestimmt, ob der Envoy als interner Lastenausgleich oder als öffentlicher Lastenausgleich fungiert.
- wahr: Der Envoy fungiert als interner Lastenausgleich. Auf die Azure Logic Apps-Runtime kann nur innerhalb des privaten Netzwerks zugegriffen werden.
- falsch: Der Envoy fungiert als öffentlicher Lastenausgleich. Auf die Azure Logic Apps-Runtime kann über das öffentliche Netzwerk zugegriffen werden.functionsProxyApiConfig.enabled Ja Aktivieren Sie den Proxydienst, der den API-Zugriff auf die Azure Logic Apps-Runtime über das Azure-Portal erleichtert. Dieser Wert ist erforderlich und muss auf true festgelegt werden. envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Ja, aber nur wenn das zugrunde liegende Cluster Azure Kubernetes Service ist. Der Name für die Ressourcengruppe, in dem das Kubernetes-Cluster vorhanden ist. logProcessor.appLogs.destination No Das Ziel, das für Anwendungsprotokolle verwendet werden soll. Der Wert ist entweder log-analytics oder none, wodurch die Protokollierung deaktiviert wird. logProcessor.appLogs.logAnalyticsConfig.customerId Ja, aber nur, wenn logProcessor.appLogs.destination auf Log-Analytics festgelegt ist. Die base64-codierte ID für Ihren Log Analytics-Arbeitsbereich. Stellen Sie sicher, dass Sie diesen Parameter als geschützte Einstellung konfigurieren. logProcessor.appLogs.logAnalyticsConfig.sharedKey Ja, aber nur, wenn logProcessor.appLogs.destination auf Log-Analytics festgelegt ist. Der base64-codierte gemeinsame Schlüssel für Ihren Log Analytics-Arbeitsbereich. Stellen Sie sicher, dass Sie diesen Parameter als geschützte Einstellung konfigurieren. Weitere Informationen finden Sie in den folgenden Ressourcen:
Speichern Sie den ID-Wert für die Azure Container Apps-Erweiterung, um sie später zu verwenden:
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 Erforderlich Wert Beschreibung EXTENSION_ID Ja <extension-ID> Die ID für die Azure Container Apps-Erweiterung. Weitere Informationen finden Sie in den folgenden Ressourcen:
Warten Sie, bevor Sie fortfahren, bis die Erweiterung vollständig installiert ist. Damit die Terminalsitzung wartet, bis die Installation abgeschlossen ist, führen Sie den folgenden Befehl aus:
az resource wait \ --ids $EXTENSION_ID \ --custom "properties.provisioningState!='Pending'" \ --api-version "2020-07-01-preview"
Weitere Informationen finden Sie in den folgenden Ressourcen:
Erstellen Ihres benutzerdefinierten Speicherorts
Legen Sie die folgenden Umgebungsvariablen auf die angegebenen Werte fest:
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 Erforderlich Wert Beschreibung CUSTOM_LOCATION_NAME Ja my-custom-location Der Name, der für Ihren benutzerdefinierten Speicherort verwendet werden soll. CONNECTED_CLUSTER_ID Ja <Azure-Arc-Cluster-ID> Die ID für das Azure Arc-fähige Kubernetes-Cluster. Weitere Informationen finden Sie in den folgenden Ressourcen:
Erstellen des benutzerdefinierten Standorts:
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
Hinweis
Wenn beim Erstellen eines benutzerdefinierten Speicherorts in Ihrem Cluster Probleme auftreten, müssen Sie möglicherweise das Feature für benutzerdefinierte Speicherorte in Ihrem Cluster aktivieren. Dieser Schritt ist erforderlich, wenn Sie sich mit einem Dienstprinzipal bei Azure CLI angemeldet haben oder wenn Sie sich als Microsoft Entra-Benutzer mit eingeschränkten Berechtigungen für die Clusterressource angemeldet haben.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Überprüfen Sie, ob der benutzerdefinierte Speicherort erfolgreich erstellt wurde:
az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME
Wenn die Ausgabe anzeigt, dass der Wert der provisioningState-Eigenschaft nicht auf Erfolgreich festgelegt ist, führen Sie den Befehl nach einer Minute erneut aus.
Speichern Sie die benutzerdefinierte Standort-ID für die Verwendung in einem späteren Schritt:
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Parameter Erforderlich Wert Beschreibung CUSTOM_LOCATION_ID Ja <my-custom-location-ID> Die ID für Ihren benutzerdefinierten Speicherort. Weitere Informationen finden Sie in den folgenden Ressourcen:
Erstellen der verbundenen Azure Container Apps-Umgebung
Erstellen Sie nun Ihre verbundene Azure Container Apps-Umgebung, damit Ihre Standardlogik-App sie verwenden kann.
az containerapp connected-env create \
--resource-group $GROUP_NAME \
--name $CONNECTED_ENVIRONMENT_NAME \
--custom-location $CUSTOM_LOCATION_ID \
--location $LOCATION
Weitere Informationen finden Sie in den folgenden Ressourcen:
Erstellen eines SQL Server-Speicheranbieters
Standardlogik-App-Workflows im Hybridbereitstellungsmodell verwenden eine SQL-Datenbank als Speicheranbieter für die Daten, die von Workflows und der Azure Logic Apps-Runtime verwendet werden, z. B. Workflowausführungsverlauf, Eingaben, Ausgaben usw.
Ihre SQL-Datenbank erfordert eine eingehende und ausgehende Verbindung mit Ihrem Kubernetes-Cluster, sodass diese Ressourcen im selben Netzwerk vorhanden sein müssen.
Richten Sie eine der folgenden SQL Server-Editionen ein:
- Lokale SQL Server-Infrastruktur
- Azure SQL-Datenbank
- Verwaltete Azure SQL-Datenbank-Instanz
- SQL Server mit Azure Arc-Unterstützung
Weitere Informationen finden Sie unter Einrichten des SQL-Datenbankspeichers für Standardlogik-App-Workflows.
Vergewissern Sie sich, dass sich Ihre SQL-Datenbank im selben Netzwerk wie Ihr Arc-fähiges Kubernetes-Cluster und die SMB-Dateifreigabe befinden.
Suchen und speichern Sie die Verbindungszeichenfolge für die von Ihnen erstellte SQL-Datenbank.
Einrichten der SMB-Dateifreigabe für die Artefaktspeicherung
Um Artefakte wie Karten, Schemas und Assemblys für Ihre Logik-App-Ressource (Container-App) zu speichern, müssen Sie über eine Dateifreigabe verfügen, die das SMB-Protokoll (Server Message Block) verwendet.
Sie benötigen Administratorzugriff, um Ihre SMB-Dateifreigabe einzurichten.
Ihre SMB-Dateifreigabe muss sich im selben Netzwerk wie Ihr Kubernetes-Cluster und ihre SQL-Datenbank befinden.
Ihre SMB-Dateifreigabe erfordert eine eingehende und ausgehende Verbindung mit Ihrem Kubernetes-Cluster. Wenn Sie Azure Virtual Network-Einschränkungen aktiviert haben, stellen Sie sicher, dass sich Ihre Dateifreigabe im selben virtuellen Netzwerk wie Ihr Kubernetes-Cluster oder in einem virtuellen Peer-Netzwerk befindet.
Verwenden Sie nicht genau denselben Dateifreigabepfad für mehrere Logik-Apps.
Sie können separate SMB-Dateifreigaben für jede Logik-App verwenden, oder Sie können unterschiedliche Ordner in derselben SMB-Dateifreigabe verwenden, solange diese Ordner nicht geschachtelt sind. Lassen Sie z. B. keine Logik-App den Stammpfad verwenden und lassen Sie dann eine andere Logik-App einen Unterordner verwenden.
Um Ihre Logik-App mit Visual Studio Code bereitzustellen, stellen Sie sicher, dass der lokale Computer mit Visual Studio Code auf die Dateifreigabe zugreifen kann.
Einrichten der SMB-Dateifreigabe unter Windows
Stellen Sie sicher, dass Ihre SMB-Dateifreigabe im selben virtuellen Netzwerk wie das Cluster vorhanden ist, in dem Sie die Dateifreigabe bereitstellen.
Wechseln Sie in Windows zu dem Ordner, den Sie freigeben möchten, öffnen Sie das Kontextmenü und wählen Sie Eigenschaften aus.
Wählen Sie auf der Registerkarte Freigabe Freigeben aus.
Wählen Sie in dem daraufhin geöffneten Feld eine Person aus, die Zugriff auf die Dateifreigabe haben soll.
Wählen Sie Freigeben aus und kopieren Sie den Link für den Netzwerkpfad.
Wenn Ihr lokaler Computer nicht mit einer Domäne verbunden ist, ersetzen Sie den Computernamen im Netzwerkpfad durch die IP-Adresse.
Speichern Sie die IP-Adresse, um sie später als Hostname zu verwenden.
Einrichten von Azure Files als Ihre SMB-Dateifreigabe
Alternativ können Sie für Testzwecke Azure Files auch als SMB-Dateifreigabe verwenden. Stellen Sie sicher, dass Ihre SMB-Dateifreigabe im selben virtuellen Netzwerk wie das Cluster vorhanden ist, in dem Sie die Dateifreigabe bereitstellen.
Erstellen Sie im Azure-Portal ein Azure-Speicherkonto.
Wählen Sie im Menü „Speicherkonto“ unter Datenspeicher Dateifreigaben aus.
Wählen Sie auf der Symbolleiste der Seite Dateifreigaben + Dateifreigabe aus und geben Sie die erforderlichen Informationen für Ihre SMB-Dateifreigabe ein.
Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.
Wählen Sie im Menü „Dateifreigabe“ Übersicht aus, falls es nicht ausgewählt ist.
Wählen Sie in der Symbolleiste des Bereichs Übersicht die Option Verbinden aus. Wählen Sie im Bereich Verbinden Skript anzeigen aus.
Kopieren Sie die folgenden Werte und speichern Sie sie an einem sicheren Ort für die spätere Verwendung:
- Hostname der Dateifreigabe, z. B. mystorage.file.core.windows.net
- Pfad zur Dateifreigabe
- Benutzername ohne
localhost\
- Kennwort
Wählen Sie auf der Symbolleiste der Seite Übersicht + Verzeichnis hinzufügen aus, und geben Sie einen Namen für das Verzeichnis an. Speichern Sie diesen Namen, um ihn später zu verwenden.
Sie benötigen diese gespeicherten Werte, um Ihre SMB-Dateifreigabeinformationen bereitzustellen, wenn Sie Ihre Logik-App-Ressource bereitstellen.
Weitere Informationen finden Sie unter Erstellen einer SMB-Azure-Dateifreigabe.
SMB-Dateifreigabeverbindung bestätigen
Führen Sie die folgenden Schritte aus, um die Verbindung zwischen Ihrem Arc-fähigen Kubernetes-Cluster und Ihrer SMB-Dateifreigabe zu testen und zu überprüfen, ob die Dateifreigabe ordnungsgemäß eingerichtet ist:
Wenn sich Ihre SMB-Dateifreigabe nicht auf demselben Cluster befindet, stellen Sie sicher, dass der Pingvorgang von Ihrem Arc-fähigen Kubernetes-Cluster auf den virtuellen Computer, auf dem Ihre SMB-Dateifreigabe vorhanden ist, funktioniert. Führen Sie die folgenden Schritte aus, um zu überprüfen, ob der Pingvorgang funktioniert:
Erstellen Sie in Ihrem Arc-fähigen Kubernetes-Cluster einen Test-Pod, der ein Linux-Image ausführt, z. B. BusyBox oder Ubuntu.
Wechseln Sie zum Container in Ihrem Pod, und installieren Sie das iputils-ping-Paket, indem Sie die folgenden Linux-Befehle ausführen:
apt-get update apt-get install iputils-ping
Führen Sie die folgenden Schritte aus, um zu bestätigen, dass Ihre SMB-Dateifreigabe ordnungsgemäß eingerichtet ist:
Erstellen Sie in Ihrem Test Pod mit demselben Linux-Image einen Ordner mit dem Pfad mnt/smb.
Wechseln Sie zum Stamm- oder Startverzeichnis, das den Ordner mnt enthält.
Führen Sie den folgenden Befehl aus:
- mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}
Um zu bestätigen, dass Artefakte ordnungsgemäß hochgeladen werden, stellen Sie eine Verbindung mit dem SMB-Dateifreigabepfad her, und überprüfen Sie, ob Artefaktdateien sich im richtigen Ordner, den Sie während der Bereitstellung angeben, befinden.