Erstellen und Bereitstellen von Logik-App-Workflows auf Basis eines einzelnen Mandanten mit Logic Apps mit Azure Arc-Unterstützung (Vorschau)
Hinweis
Diese Funktion befindet sich in der Vorschauphase und unterliegt den Zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauversionen.
Mit Logic Apps mit Azure Arc-Unterstützung können Sie Logic App-Workflows auf Basis eines einzelnen Mandanten in einer Kubernetes-Infrastruktur erstellen und bereitstellen, die Sie betreiben und verwalten. Ihre Logik-Apps werden an einem benutzerdefinierten Speicherort ausgeführt, der einem Kubernetes-Cluster mit Azure Arc-Unterstützung zugeordnet ist, in dem Sie das Azure App Service-Plattformerweiterungspaket installiert und aktiviert haben.
Dieser Cluster kann z. B. Azure Kubernetes Service, Bare-Metal-Kubernetes oder eine andere Einrichtung sein. Mit dem Erweiterungspaket können Sie Plattformdienste wie Azure Logic Apps, Azure App Service und Azure Functions in Ihrem Kubernetes-Cluster ausführen.
Weitere Informationen finden Sie in der folgenden Dokumentation:
- Was ist Logic Apps mit Azure Arc-Unterstützung?
- Einzelmandant im Vergleich zu mehreren Mandanten in Azure Logic Apps
- Übersicht über Azure Arc
- Übersicht über Azure Kubernetes Service
- Was ist Kubernetes mit Azure Arc-Unterstützung?
- Benutzerdefinierte Standorte in Kubernetes-Clustern mit Azure Arc-Unterstützung
- App Service, Funktionen und Logic Apps in Azure Arc (Vorschau)
- Einrichten eines Kubernetes-Clusters mit Azure Arc-Unterstützung zum Ausführen von App Service, Funktionen und Logic Apps (Vorschau)
Voraussetzungen
In diesem Abschnitt werden die allgemeinen Voraussetzungen für alle Ansätze und Tools beschrieben, mit denen Sie Ihre Logik-App-Workflows erstellen und bereitstellen können. Toolspezifische Voraussetzungen werden zusammen mit den entsprechenden Schritten angezeigt.
Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.
Eine Kubernetes-Umgebung mit einem Kubernetes-Cluster mit Azure Arc-Unterstützung und einem benutzerdefinierten Standort, an dem Sie Azure Logic Apps, Azure App Service und Azure Functions hosten und ausführen können.
Wichtig
Stellen Sie sicher, dass Sie für Ihre Kubernetes-Umgebung, Ihren benutzerdefinierten Speicherort und Ihre Logik-App denselben Ressourcenspeicherort verwenden.
Wenn Sie die App Service-Bundleerweiterung in Ihrem Kubernetes-Cluster erstellen, können Sie außerdem das Standardskalierungsverhalten ändern, das für die Ausführung Ihrer Logik-App-Workflows gilt. Wenn Sie die Erweiterung mithilfe des Azure CLI-Befehls
az k8s-extension create
erstellen, stellen Sie sicher, dass Sie die Konfigurationseinstellungkeda.enabled=true
einschließen:az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"
Weitere Informationen finden Sie in der folgenden Dokumentation:
Ihre eigene Microsoft Entra-Identität
Wenn Ihre Workflows von Azure gehostete Verbindungen wie Office 365 Outlook oder Azure Storage verwenden müssen, muss Ihre Logik-App eine Microsoft Entra-Identität für die Authentifizierung verwenden. Logic Apps mit Azure Arc-Unterstützung können in jeder Infrastruktur ausgeführt werden, erfordern jedoch eine Identität, die über die Berechtigung verfügt, von Azure gehostete Verbindungen zu verwenden. Um diese Identität einzurichten, erstellen Sie eine App-Registrierung in Microsoft Entra ID, die Ihre Logik-App als erforderliche Identität verwendet.
Hinweis
Die Unterstützung verwalteter Identitäten ist für Logic Apps mit Azure Arc-Unterstützung derzeit nicht verfügbar.
Führen Sie die folgenden Schritte aus, um eine Microsoft Entra-App-Registrierung mithilfe der Azure CLI zu erstellen:
Erstellen Sie mit dem
az ad sp create
-Befehl eine App-Registrierung.Führen Sie den
az ad sp show
-Befehl aus, um alle Details zu überprüfen.Suchen und speichern Sie in der Ausgabe beider Befehle die Werte für Client-ID, Objekt-ID, Mandanten-ID und geheimer Clientschlüssel, die Sie zur späteren Verwendung beibehalten müssen.
Führen Sie die folgenden Schritte aus, um eine Microsoft Entra-App-Registrierung mithilfe des Azure-Portals zu erstellen:
Erstellen Sie mithilfe des Azure-Portals eine neue Microsoft Entra-App-Registrierung.
Suchen Sie nach Abschluss der Erstellung die neue App-Registrierung im Portal.
Wählen Sie im Registrierungsmenü Übersicht aus, und speichern Sie die Werte für Client-ID, Mandanten-ID und geheimer Clientschlüssel.
Um die Objekt-ID zu ermitteln, wählen Sie neben dem Feld Verwaltete Anwendung im lokalen Verzeichnis den Namen für Ihre App-Registrierung aus. Kopieren Sie in der Eigenschaftenansicht die Objekt-ID.
Erstellen und Bereitstellen von Logik-Apps
Wählen Sie abhängig davon, ob Sie die Azure CLI oder Visual Studio Code verwenden möchten, die entsprechende Registerkarte aus, um die spezifischen Voraussetzungen und Schritte zu überprüfen.
Bevor Sie beginnen, benötigen Sie Folgendes:
Die aktuelle Azure CLI-Erweiterung muss auf Ihrem Computer installiert sein.
Wenn Sie nicht über diese Erweiterung verfügen, lesen Sie den Installationsleitfaden für Ihr Betriebssystem oder Ihre Plattform.
Wenn Sie nicht sicher sind, ob Sie über die neueste Version verfügen, führen Sie die Schritte zum Überprüfen Ihrer Umgebung und CLI-Version aus.
Die Azure Logic Apps-Erweiterung (Standard) für die Azure CLI (Vorschauversion).
Azure Logic Apps in der Einzelmandantenversion ist allgemein verfügbar, die Azure Logic Apps-Erweiterung befindet sich allerdings weiterhin in der Vorschau.
Eine Azure-Ressourcengruppe für die Erstellung Ihrer Logik-App.
Wenn Sie nicht über eine solche Ressourcengruppe verfügen, führen Sie die Schritte zum Erstellen der Ressourcengruppe aus.
Ein Azure-Speicherkonto, das mit Ihrer Logik-App für die Aufbewahrung von Daten und des Ausführungsverlaufs verwendet werden soll.
Wenn Sie nicht über ein solches Speicherkonto verfügen, können Sie während der Erstellung der Logik-App eines erstellen. Alternativ dazu können Sie die Schritte zum Erstellen eines Speicherkontos ausführen.
Überprüfen der Umgebung und CLI-Version
Melden Sie sich beim Azure-Portal an. Überprüfen Sie, ob Ihr Abonnement aktiv ist, indem Sie den folgenden Befehl ausführen:
az login
Überprüfen Sie Ihre Version der Azure-Befehlszeilenschnittstelle in einem Terminal oder Befehlsfenster, indem Sie den folgenden Befehl ausführen:
az --version
Die neueste Version finden Sie unter Versionshinweise für die Azure CLI.
Sollten Sie nicht über die neueste Version verfügen, aktualisieren Sie Ihre Installation wie unter Installieren der Azure CLI beschrieben.
Installieren der Azure Logic Apps-Erweiterung (Standard) für die Azure CLI
Installieren Sie die Vorschau der Einzelmandantenerweiterung für Azure Logic Apps (Standard) für die Azure CLI, indem Sie den folgenden Befehl ausführen:
az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"
Ressourcengruppe erstellen
Sollten Sie noch nicht über eine Ressourcengruppe für Ihre Logik-App verfügen, erstellen Sie die Gruppe mithilfe des Befehls az group create
. Wenn Sie nicht bereits ein Standardabonnement für Ihr Azure-Konto festgelegt haben, stellen Sie sicher, dass Sie den Parameter --subscription
mit Ihrem Abonnementnamen oder -bezeichner verwenden. Andernfalls müssen Sie den Parameter --subscription
nicht verwenden.
Tipp
Führen Sie zum Festlegen eines Standardabonnements den folgenden Befehl aus, und ersetzen Sie MySubscription
durch Ihren Abonnementnamen oder -bezeichner.
az account set --subscription MySubscription
Der folgende Befehl erstellt beispielsweise eine Ressourcengruppe mit dem Namen MyResourceGroupName
unter Verwendung des Azure-Abonnements mit dem Namen MySubscription
am Speicherort eastus
:
az group create --name MyResourceGroupName
--subscription MySubscription
--location eastus
Wenn Ihre Ressourcengruppe erfolgreich erstellt wurde, wird provisioningState
als Succeeded
angezeigt:
<...>
"name": "testResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
<...>
Erstellen einer Logik-App
Führen Sie zum Erstellen einer Logik-App mit Azure Arc-Unterstützung den Befehl az logicapp create
mit den folgenden erforderlichen Parametern aus. Die Ressourcenstandorte für Ihre Logik-App, den benutzerdefinierten Standort und die Kubernetes-Umgebung müssen identisch sein.
Parameter | Beschreibung |
---|---|
--name -n |
Ein eindeutiger Name für Ihre Logik-App. |
--resource-group -g |
Der Name der Ressourcengruppe, in der Sie Ihre Logik-App erstellen möchten. Erstellen Sie eine Ressourcengruppe, falls noch keine vorhanden ist. |
--storage-account -s |
Das Speicherkonto, das mit Ihrer Logik-App verwendet werden soll. Für Speicherkonten in derselben Ressourcengruppe verwenden Sie einen Zeichenfolgenwert. Für Speicherkonten in einer anderen Ressourcengruppe verwenden Sie eine Ressourcen-ID. |
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
Um eine Logik-App mit Azure Arc-Unterstützung über ein privates ACR-Image (Azure Container Registry) zu erstellen, führen Sie den Befehl az logicapp create
mit den folgenden erforderlichen Parametern aus:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
--deployment-container-image-name myacr.azurecr.io/myimage:tag
--docker-registry-server-password MyPassword
--docker-registry-server-user MyUsername
Anzeigen von Logik-App-Details
Um Details zu Ihrer Logik-App mit Azure Arc-Unterstützung anzuzeigen, führen Sie den Befehl az logicapp show
mit den folgenden erforderlichen Parametern aus:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Bereitstellen einer Logik-App
Um Ihre Logik-App mit Azure Arc-Unterstützung über die Kudu-ZIP-Bereitstellung von Azure App Service bereitzustellen, führen Sie den Befehl az logicapp deployment source config-zip
mit den folgenden erforderlichen Parametern aus:
Wichtig
Stellen Sie sicher, dass Ihre ZIP-Datei die Artefakte Ihres Projekts auf Stammebene enthält. Zu diesen Artefakten zählen alle Workflowordner, Konfigurationsdateien wie „host.json“ und „connections.json“ sowie alle anderen zugehörigen Dateien. Fügen Sie keine zusätzlichen Ordner hinzu, und platzieren Sie keine Artefakte in Ordnern, die noch nicht in Ihrer Projektstruktur vorhanden sind. Diese Liste zeigt ein Beispiel für die MyBuildArtifacts.zip-Dateistruktur:
MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--src MyBuildArtifact.zip
Starten einer Logik-App
Führen Sie zum Starten Ihrer Logik-App mit Azure Arc-Unterstützung den Befehl az logicapp start
mit den folgenden erforderlichen Parametern aus:
az logicapp start --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Beenden einer Logik-App
Führen Sie zum Beenden Ihrer Logik-App mit Azure Arc-Unterstützung den Befehl az logicapp stop
mit den folgenden erforderlichen Parametern aus:
az logicapp stop --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Neustarten einer Logik-App
Führen Sie zum erneuten Starten Ihrer Logik-App mit Azure Arc-Unterstützung den Befehl az logicapp restart
mit den folgenden erforderlichen Parametern aus:
az logicapp restart --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Löschen der Logik-App
Führen Sie zum Löschen Ihrer Logik-App mit Azure Arc-Unterstützung den Befehl az logicapp delete
mit den folgenden erforderlichen Parametern aus:
az logicapp delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Einrichten der Verbindungsauthentifizierung
Derzeit unterstützen Kubernetes-Cluster mit Azure Arc-Unterstützung nicht die Verwendung der verwalteten Identität einer Logik-App zur Authentifizierung von verwalteten API-Verbindungen. Sie erstellen diese in Azure gehosteten und verwalteten Verbindungen, wenn Sie verwaltete Connectors in Ihren Workflows verwenden.
Stattdessen müssen Sie ihre eigene App-Registrierung in Microsoft Entra ID erstellen. Sie können diese App-Registrierung dann als Identität für Logik-Apps verwenden, die in Logic Apps mit Azure Arc-Unterstützung bereitgestellt und ausgeführt werden. Weitere Informationen finden Sie in den allgemeinen Voraussetzungen.
Bei ihrer App-Registrierung benötigen Sie die Client-ID, die Objekt-ID, die Mandanten-ID und den geheimen Clientschlüssel. Wenn Sie Visual Studio Code für die Bereitstellung verwenden, verfügen Sie über eine integrierte Benutzeroberfläche zum Einrichten Ihrer Logik-App mit einer Microsoft Entra-Identität. Weitere Informationen finden Sie unter Erstellen und Bereitstellen von Logik-App-Workflows – Visual Studio Code.
Wenn Sie jedoch Visual Studio Code für die Entwicklung verwenden, aber die Azure-Befehlszeilenschnittstelle oder automatisierte Pipelines für die Bereitstellung verwenden, führen Sie diese Schritte aus.
Konfigurieren von Verbindungs- und App-Einstellungen in Ihrem Projekt
Suchen Sie in der Datei connections.json Ihres Logik-App-Projekts das
authentication
-Objekt für die verwaltete Verbindung. Ersetzen Sie den Inhalt dieses Objekts durch Ihre App-Registrierungsinformationen, die Sie zuvor in den allgemeinen Voraussetzungen generiert haben:"authentication": { "type": "ActiveDirectoryOAuth", "audience": "https://management.core.windows.net/", "credentialType": "Secret", "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')", "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')", "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')" }
Fügen Sie in der Datei local.settings.json Ihres Logik-App-Projekts Ihre Client-ID, Objekt-ID, Mandanten-ID und den geheimen Clientschlüssel hinzu. Nach der Bereitstellung werden diese Einstellungen zu Ihren Logik-App-Einstellungen.
{ "IsEncrypted": false, "Values": { <...> "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>", "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID", "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>", "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>" } }
Wichtig
Achten Sie bei Produktionsszenarien oder -umgebungen darauf, dass Sie solche Geheimnisse und sensiblen Informationen schützen und sichern, z. B. durch die Verwendung eines Schlüsseltresors.
Hinzufügen von Zugriffsrichtlinien
In Azure Logic Apps mit einzelnem Mandanten verfügt jede Logik-App über eine Identität, der durch Zugriffsrichtlinien die Berechtigung erteilt wird, in Azure gehostete und verwaltete Verbindungen zu verwenden. Sie können diese Zugriffsrichtlinien mithilfe des Azure-Portals oder von Infrastrukturbereitstellungen einrichten.
ARM-Vorlage
Fügen Sie in Ihrer ARM-Vorlage (Azure Resource Manager) die folgende Ressourcendefinition für jede verwaltete API-Verbindung ein, und stellen Sie die folgenden Informationen bereit:
Parameter | BESCHREIBUNG |
---|---|
<connection-name> | Der Name Ihrer verwalteten API-Verbindung, z. B. office365 . |
<object-ID> | Die Objekt-ID für Ihre Microsoft Entra-Identität, die zuvor bei der Registrierung Ihrer App gespeichert wurde. |
<Mandanten-ID> | Die Mandanten-ID für Ihre Microsoft Entra-Identität, die zuvor bei der Registrierung Ihrer App gespeichert wurde |
{
"type": "Microsoft.Web/connections/accessPolicies",
"apiVersion": "2016-06-01",
"name": "[concat('<connection-name>'),'/','<object-ID>')]",
"location": "<location>",
"dependsOn": [
"[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
],
"properties": {
"principal": {
"type": "ActiveDirectory",
"identity": {
"objectId": "<object-ID>",
"tenantId": "<tenant-ID>"
}
}
}
}
Weitere Informationen finden Sie in der Dokumentation zu Microsoft.Web/connections/accesspolicies (ARM-Vorlage).
Azure-Portal
Verwenden Sie für diese Aufgabe Ihre zuvor gespeicherte Client-ID als Anwendungs-ID.
Suchen Sie im Azure-Portal nach Ihrer Logik-App, und öffnen Sie sie. Wählen Sie im Menü Ihrer Logik-App unter Workflows die Option Verbindungen aus, die alle Verbindungen in den Workflows für Ihre Logik-App-Ressource auflistet.
Wählen Sie unter API-Verbindungen eine Verbindung aus (in diesem Beispiel
office365
).Wählen Sie im Menü der Verbindung unter Einstellungen die Option Zugriffsrichtlinien>Hinzufügen aus.
Suchen Sie im Bereich Zugriffsrichtlinie hinzufügen im Suchfeld nach Ihrer zuvor gespeicherten Client-ID, und wählen Sie sie aus.
Wenn Sie fertig sind, wählen Sie Hinzufügen aus.
Wiederholen Sie diese Schritte für jede in Azure gehostete Verbindung in Ihrer Logik-App.
Automatisieren der DevOps-Bereitstellung
Zum Erstellen und Bereitstellen Ihrer Logik-Apps mit Azure Arc-Unterstützung können Sie dieselben Pipelines und Prozesse wie für Logik-Apps verwenden, die auf einem einzelnen Mandanten basieren. Um Infrastrukturbereitstellungen mithilfe von Pipelines für DevOps zu automatisieren, nehmen Sie die folgenden Änderungen auf der Infrastrukturebene sowohl für Nicht-Container- als auch für Containerbereitstellungen vor.
Standardbereitstellung (Nicht-Container)
Wenn Sie „zip deploy“ für die Bereitstellung von Logik-Apps verwenden, müssen Sie keine Docker-Registrierung für das Hosting von Containerimages einrichten. Obwohl Logik-Apps in Kubernetes technisch gesehen in Containern ausgeführt werden, verwaltet Logic Apps mit Azure Arc-Unterstützung diese Container für Sie. Führen Sie für dieses Szenario die folgenden Aufgaben durch, wenn Sie Ihre Infrastruktur einrichten:
- Benachrichtigen Sie den Ressourcenanbieter, dass Sie eine Logik-App in Kubernetes erstellen.
- Schließen Sie einen App Service-Plan in Ihre Bereitstellung ein. Weitere Informationen hierzu finden Sie unter Einschließen eines App Service-Plans in die Bereitstellung.
Fügen Sie in Ihre ARM-Vorlage (Azure Resource Manager) die folgenden Werte ein:
Element | JSON-Eigenschaft | BESCHREIBUNG |
---|---|---|
Standort | location |
Stellen Sie sicher, dass Sie denselben Ressourcenstandort (Azure-Region) wie für Ihren benutzerdefinierten Standort und Ihre Kubernetes-Umgebung verwenden. Die Ressourcenstandorte für Ihre Logik-App, den benutzerdefinierten Standort und die Kubernetes-Umgebung müssen identisch sein. Hinweis: Dieser Wert ist nicht identisch mit dem Namen Ihres benutzerdefinierten Standorts. |
App-Art | kind |
Der Typ der App, die Sie bereitstellen, damit die Azure-Plattform Ihre App identifizieren kann. Für Azure Logic Apps sehen diese Informationen wie im folgenden Beispiel aus: kubernetes,functionapp,workflowapp,linux |
Erweiterter Standort | extendedLocation |
Für dieses Objekt muss das Element "name" Ihres benutzerdefinierten Standorts für Ihre Kubernetes-Umgebung vorhanden sein, und "type" muss auf "CustomLocation" festgelegt sein. |
Ressourcen-ID des Hostingplans | serverFarmId |
Die Ressourcen-ID des zugeordneten App Service-Plans, die wie folgt formatiert ist:
|
Speicherverbindungszeichenfolge | AzureWebJobsStorage |
Die Verbindungszeichenfolge für Ihr Speicherkonto. Wichtig: Sie müssen die Verbindungszeichenfolge für Ihr Speicherkonto in Ihrer ARM-Vorlage angeben. Achten Sie bei Produktionsszenarien oder -umgebungen darauf, dass Sie solche Geheimnisse und sensiblen Informationen schützen und sichern, z. B. durch die Verwendung eines Schlüsseltresors. |
ARM-Vorlage
Das folgende Beispiel beschreibt eine beispielhafte Logic Apps-Ressourcendefinition mit Azure Arc-Unterstützung, die Sie in Ihrer ARM-Vorlage verwenden können. Weitere Informationen finden Sie in der Dokumentation zu Microsoft.Web/sites – Vorlagenformat (JSON).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": "kubernetes,functionapp,workflowapp,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"clientAffinityEnabled": false,
"name": "[parameters('name')]",
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "Node|12"
}
}
}
Hinweis
Standardmäßig ist die FUNCTIONS_WORKER_RUNTIME-App-Einstellung für Ihre Logik-App dotnet
.
Bisher war der Standardwert node
. Der Standardwert für alle neuen und vorhandenen bereitgestellten Arc-fähigen Logik-Apps ist jetzt jedoch dotnet
, auch für Apps, die einen anderen Wert hatten. Diese Änderung sollte sich nicht auf die Runtime Ihres Workflows auswirken, und alles sollte wie zuvor funktionieren. Weitere Informationen finden Sie unter der FUNCTIONS_WORKER_RUNTIME-App-Einstellung.
Die App-Einstellung APP_KIND für Ihre Logik-App ist auf workflowapp festgelegt. In einigen Szenarien fehlt diese App-Einstellung jedoch, z. B. aufgrund von Azure Resource Manager-Vorlagen oder anderen Szenarien, in denen die Einstellung möglicherweise nicht enthalten ist. Wenn bestimmte Aktionen nicht funktionieren, z. B. die Aktion JavaScript-Code ausführen, oder der Workflow nicht mehr funktioniert, überprüfen Sie, ob die App-Einstellung APP_KIND vorhanden und auf workflowapp festgelegt ist. Weitere Informationen finden Sie unter APP_KIND-App-Einstellung.
Containerbereitstellung
Wenn Sie es vorziehen, Containertools und Bereitstellungsprozesse zu verwenden, können Sie Ihre Logik-Apps containerisieren und in Logic Apps mit Azure Arc-Unterstützung bereitstellen. Führen Sie für dieses Szenario die folgenden allgemeinen Aufgaben durch, wenn Sie Ihre Infrastruktur einrichten:
Richten Sie eine Docker-Registrierung zum Hosten Ihrer Containerimages ein.
Fügen Sie zum Containerisieren Ihrer Logik-App dem Stammordner Ihres Logik-App-Projekts die folgende Dockerfile-Datei hinzu, und führen Sie die Schritte zum Erstellen und Veröffentlichen eines Images in Ihrer Docker-Registrierung aus. Beispiel: Tutorial: Erstellen und Bereitstellen von Containerimages in der Cloud mit Azure Container Registry Tasks.
Hinweis
Wenn Sie SQL als Speicheranbieter verwenden, vergewissern Sie sich, dass Sie ein Azure Functions-Image, Version 3.3.1 oder höher, verwenden.
FROM mcr.microsoft.com/azure-functions/node:3.3.1 ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true \ FUNCTIONS_V2_COMPATIBILITY_MODE=true COPY . /home/site/wwwroot RUN cd /home/site/wwwroot
Benachrichtigen Sie den Ressourcenanbieter, dass Sie eine Logik-App in Kubernetes erstellen.
Zeigen Sie in Ihrer Bereitstellungsvorlage auf die Docker-Registrierung und das Containerimage, in denen Sie die Bereitstellung planen. Azure Logic Apps mit einzelnem Mandanten verwendet diese Informationen, um das Containerimage von Ihrer Docker-Registrierung abzurufen.
Schließen Sie einen App Service-Plan in Ihre Bereitstellung ein. Weitere Informationen hierzu finden Sie unter Einschließen eines App Service-Plans in die Bereitstellung.
Fügen Sie in Ihre ARM-Vorlage (Azure Resource Manager) die folgenden Werte ein:
Element | JSON-Eigenschaft | BESCHREIBUNG |
---|---|---|
Standort | location |
Stellen Sie sicher, dass Sie denselben Ressourcenstandort (Azure-Region) wie für Ihren benutzerdefinierten Standort und Ihre Kubernetes-Umgebung verwenden. Die Ressourcenstandorte für Ihre Logik-App, den benutzerdefinierten Standort und die Kubernetes-Umgebung müssen identisch sein. Hinweis: Dieser Wert ist nicht identisch mit dem Namen Ihres benutzerdefinierten Standorts. |
App-Art | kind |
Der Typ der App, die Sie bereitstellen, damit die Azure-Plattform Ihre App identifizieren kann. Für Azure Logic Apps sehen diese Informationen wie im folgenden Beispiel aus: kubernetes,functionapp,workflowapp,container |
Erweiterter Standort | extendedLocation |
Für dieses Objekt muss das Element "name" Ihres benutzerdefinierten Standorts für Ihre Kubernetes-Umgebung vorhanden sein, und "type" muss auf "CustomLocation" festgelegt sein. |
Containername | linuxFxVersion |
Der Name Ihres Containers, der wie folgt formatiert ist: DOCKER\|<container-name> |
Ressourcen-ID des Hostingplans | serverFarmId |
Die Ressourcen-ID des zugeordneten App Service-Plans, die wie folgt formatiert ist:
|
Speicherverbindungszeichenfolge | AzureWebJobsStorage |
Die Verbindungszeichenfolge für Ihr Speicherkonto. Wichtig: Wenn Sie einen Docker-Container bereitstellen, müssen Sie die Verbindungszeichenfolge für Ihr Speicherkonto in Ihrer ARM-Vorlage angeben. Achten Sie bei Produktionsszenarien oder -umgebungen darauf, dass Sie solche Geheimnisse und sensiblen Informationen schützen und sichern, z. B. durch die Verwendung eines Schlüsseltresors. |
Fügen Sie diese Werte in Ihre Vorlage ein, um auf Ihre Docker-Registrierung und das Containerimage zu verweisen:
Element | JSON-Eigenschaft | BESCHREIBUNG |
---|---|---|
Server-URL der Docker-Registrierung | DOCKER_REGISTRY_SERVER_URL |
Die URL für den Docker-Registrierungsserver. |
Docker-Registrierungsserver | DOCKER_REGISTRY_SERVER_USERNAME |
Der Benutzername für den Zugriff auf den Docker-Registrierungsserver. |
Kennwort des Docker-Registrierungsservers | DOCKER_REGISTRY_SERVER_PASSWORD |
Das Kennwort für den Zugriff auf den Docker-Registrierungsserver. |
ARM-Vorlage
Das folgende Beispiel beschreibt eine beispielhafte Logic Apps-Ressourcendefinition mit Azure Arc-Unterstützung, die Sie in Ihrer ARM-Vorlage verwenden können. Weitere Informationen finden Sie in der Dokumentation zu Microsoft.Web/sites – Vorlagenformat (ARM-Vorlage).
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": " kubernetes,functionapp,workflowapp,container",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"name": "[parameters('name')]",
"clientAffinityEnabled": false,
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
},
{
"name": "DOCKER_REGISTRY_SERVER_URL",
"value": "<docker-registry-server-URL>"
},
{
"name": "DOCKER_REGISTRY_SERVER_USERNAME",
"value": "<docker-registry-server-username>"
},
{
"name": "DOCKER_REGISTRY_SERVER_PASSWORD",
"value": "<docker-registry-server-password>"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "DOCKER|<container-name>"
}
}
}
Hinweis
Zuvor war der Standardwert derFUNCTIONS_WORKER_RUNTIME Einstellung node
.
Jetzt ist der Standardwert für alle neuen und vorhandenen bereitgestellten Standard-Logik-Apps dotnet
, auch für Apps, die einen anderen Wert hatten. Diese Änderung sollte sich nicht auf die Runtime Ihres Workflows auswirken, und alles sollte wie zuvor funktionieren. Weitere Informationen finden Sie unter der FUNCTIONS_WORKER_RUNTIME-App-Einstellung.
Einschließen eines App Service-Plans in die Bereitstellung
Unabhängig davon, ob Sie über eine Standard- oder Containerbereitstellung verfügen, müssen Sie einen App Service-Plan in Ihre Bereitstellung einschließen. Obwohl dieser Plan für eine Kubernetes-Umgebung weniger relevant wird, erfordern sowohl die Standard- als auch die Containerbereitstellung weiterhin einen App Service-Plan.
Während andere Erstellungsoptionen in der Regel die Bereitstellung der Azure-Ressource für diesen Plan behandeln, müssen Sie die Azure-Ressource für den Plan explizit erstellen, wenn Ihre Bereitstellungen „Infrastructure-as-Code“-Vorlagen verwenden. Die Hostingplanressource ändert sich nicht, sondern nur die sku
-Informationen.
Fügen Sie in Ihre ARM-Vorlage (Azure Resource Manager) die folgenden Werte ein:
Element | JSON-Eigenschaft | BESCHREIBUNG |
---|---|---|
Standort | location |
Stellen Sie sicher, dass Sie denselben Ressourcenstandort (Azure-Region) wie für Ihren benutzerdefinierten Standort und Ihre Kubernetes-Umgebung verwenden. Die Ressourcenstandorte für Ihre Logik-App, den benutzerdefinierten Standort und die Kubernetes-Umgebung müssen identisch sein. Hinweis: Dieser Wert ist nicht identisch mit dem Namen Ihres benutzerdefinierten Standorts. |
Typ | kind |
Die Art des bereitzustellenden App Service-Plans. Dies muss kubernetes,linux sein. |
Erweiterter Standort | extendedLocation |
Für dieses Objekt muss das Element "name" Ihres benutzerdefinierten Standorts für Ihre Kubernetes-Umgebung vorhanden sein, und "type" muss auf "CustomLocation" festgelegt sein. |
Name des Hostingplans | name |
Der Name für den App Service-Plan. |
Planebene | sku: tier |
Die App Service-Planebene, die K1 lautet. |
Planname | sku: name |
Der Name des App Service-Plans, der Kubernetes lautet. |
ARM-Vorlage
Im folgenden Beispiel wird eine Beispielressourcendefinition für den App Service-Plan beschrieben, die Sie mithilfe Ihrer App-Bereitstellung verwenden können. Weitere Informationen finden Sie in der Dokumentation zu Microsoft.Web/serverfarms – Vorlagenformat (ARM-Vorlage).
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"location": "<location>",
"name": "<hosting-plan-name>",
"kind": "kubernetes,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"sku": {
"tier": "Kubernetes",
"name": "K1",
"capacity": 1
},
"properties": {
"kubeEnvironmentProfile": {
"id": "[parameters('kubeEnvironmentId')]"
}
}
}
Ändern des Standardskalierungsverhaltens
Logic Apps mit Azure Arc-Unterstützung verwaltet automatisch die Skalierung für Ihre Logik-Apps basierend auf der Anzahl der Aufträge in der Back-End-Speicherwarteschlange. Sie können jedoch das Standardskalierungsverhalten ändern.
In einer Logik-App gibt die Workflowdefinition die Reihenfolge der auszuführenden Aktionen an. Bei jeder Auslösung einer Workflowausführung erstellt die Azure Logic Apps-Runtime einen Auftrag für jeden Aktionstyp in der Workflowdefinition. Die Runtime organisiert diese Aufträge dann in einem Auftragssequenzierer. Dieser Sequenzierer orchestriert die Ausführung der Aufträge für die Workflowdefinition, aber die zugrunde liegende Azure Logic Apps-Engine für die Auftragsorchestrierung führt jeden Auftrag aus.
Bei zustandsbehafteten Workflows verwendet die Engine für die Auftragsorchestrierung entsprechende Speicherwarteschlangennachrichten, um Aufträge in den Auftragssequenzierern zu planen. Im Hintergrund überwachen Auftragsdispatcher (oder Dispatcher-Workerinstanzen) diese Auftragswarteschlangen. Die Orchestrierungsengine verwendet eine standardmäßige minimale und maximale Anzahl von Workerinstanzen, um die Auftragswarteschlangen zu überwachen. Bei zustandslosen Workflows behält die Orchestrierungsengine Aktionszustände vollständig im Arbeitsspeicher bei.
Um das Standardskalierungsverhalten zu ändern, geben Sie eine andere minimale und maximale Anzahl von Workerinstanzen an, die die Auftragswarteschlangen überwachen.
Voraussetzungen zum Ändern der Skalierung
Auf Ihrem Kubernetes-Cluster mit Azure Arc-Unterstützung muss für die zuvor erstellte App Service-Paketerweiterung die Eigenschaft keda.enabled
auf true
festgelegt sein. Weitere Informationen finden Sie in den allgemeinen Voraussetzungen.
Ändern des Skalierungsschwellenwerts
In Logic Apps mit Azure Arc-Unterstützung löst die Länge der Auftragswarteschlange ein Skalierungsereignis aus und legt einen Schwellenwert dafür fest, wie oft die Skalierung für Ihre Logik-App erfolgt. Sie können die Warteschlangenlänge ändern, bei der der Standardwert auf 20
Aufträge festgelegt ist. Erhöhen Sie die Warteschlangenlänge, um die Häufigkeit der Skalierung zu verringern. Verringern Sie die Warteschlangenlänge, um die Häufigkeit der Skalierung zu erhöhen. Für diesen Prozess sind möglicherweise einige Tests erforderlich.
Um die Länge der Warteschlange zu ändern, legen Sie in der Datei host.json auf der Stammebene Ihres Logik-App-Projekts die Runtime.ScaleMonitor.KEDA.TargetQueueLength
-Eigenschaft fest. Beispiel:
"extensions": {
"workflow": {
"settings": {
"Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
}
}
}
Ändern des maximalen Durchsatzes
Für eine vorhandene Logik-App-Ressource können Sie die maximale Anzahl von Workerinstanzen ändern, für die der Standardwert auf 2
festgelegt ist. Dieser Wert steuert die Obergrenze für die Anzahl von Workerinstanzen, die die Auftragswarteschlangen überwachen können.
Um dieses Maximum zu ändern, verwenden Sie die Azure CLI (nur Erstellen der Logik-App) und das Azure-Portal.
Azure CLI
Um eine neue Logik-App zu erstellen, führen Sie den Befehl az logicapp create
mit den folgenden Parametern aus:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]
Verwenden Sie den Parameter --settings
, um die maximale Anzahl von Instanzen zu konfigurieren:
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "K8SE_APP_MAX_INSTANCE_COUNT=10"
Azure-Portal
Fügen Sie in den Einstellungen Ihrer auf einem einzelnen Mandanten basierenden Logik-App den Einstellungswert K8SE_APP_MAX_INSTANCE_COUNT
hinzu, oder bearbeiten Sie diesen, indem Sie die folgenden Schritte ausführen:
Suchen Sie im Azure-Portal Ihre auf einem einzelnen Mandanten basierende Logik-App, und öffnen Sie diese.
Wählen Sie im Menü der Logik-App unter Einstellungen die Option Konfiguration aus.
Fügen Sie im Bereich Konfiguration unter Anwendungseinstellungen entweder eine neue Anwendungseinstellung hinzu, oder bearbeiten Sie den vorhandenen Wert, sofern er bereits hinzugefügt wurde.
Wählen Sie Neue Anwendungseinstellung aus, und fügen Sie die
K8SE_APP_MAX_INSTANCE_COUNT
-Einstellung mit dem gewünschten maximalen Wert hinzu.Bearbeiten Sie den vorhandenen Wert für die
K8SE_APP_MAX_INSTANCE_COUNT
-Einstellung.
Speichern Sie Ihre Änderungen, wenn Sie fertig sind.
Ändern des minimalen Durchsatzes
Für eine vorhandene Logik-App-Ressource können Sie die minimale Anzahl von Workerinstanzen ändern, für die der Standardwert auf 1
festgelegt ist. Dieser Wert steuert die Untergrenze für die Anzahl von Workerinstanzen, die die Auftragswarteschlangen überwachen können. Erhöhen Sie diesen Wert für die Hochverfügbarkeit oder Leistung.
Verwenden Sie die Azure CLI oder das Azure-Portal, um diesen minimalen Wert zu ändern.
Azure CLI
Für eine vorhandene Logik-App-Ressource führen Sie den Befehl az logicapp scale
mit den folgenden Parametern aus:
az logicapp scale --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--instance-count 5
Um eine neue Logik-App zu erstellen, führen Sie den Befehl az logicapp create
mit den folgenden Parametern aus:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]
Azure-Portal
Ändern Sie in den Einstellungen Ihrer auf einem einzelnen Mandanten basierenden Logik-App den Eigenschaftswert Aufskalieren, indem Sie die folgenden Schritte ausführen:
Suchen Sie im Azure-Portal Ihre auf einem einzelnen Mandanten basierende Logik-App, und öffnen Sie diese.
Wählen Sie im Menü der Logik-App unter Einstellungen die Option Aufskalieren aus.
Ziehen Sie im Bereich Aufskalieren den Schieberegler für die Mindestanzahl der Instanzen auf den gewünschten Wert.
Speichern Sie Ihre Änderungen, wenn Sie fertig sind.
Behandeln von Problemen
Versuchen Sie die folgenden Optionen, um weitere Informationen über Ihre bereitgestellten Logik-Apps zu erhalten:
Zugreifen auf App-Einstellungen und die Konfiguration
Um auf Ihre App-Einstellungen zuzugreifen, führen Sie den Befehl az logicapp config appsettings
mit den folgenden Parametern aus:
az logicapp config appsettings list --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Um eine App-Einstellung zu konfigurieren, führen Sie den Befehl az logicapp config appsettings set
mit den folgenden Parametern aus. Stellen Sie sicher, dass Sie den Parameter --settings
mit dem Namen und Wert Ihrer Einstellung verwenden.
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "MySetting=1"
Um eine App-Einstellung zu löschen, führen Sie den Befehl az logicapp config appsettings delete
mit den folgenden Parametern aus. Stellen Sie sicher, dass Sie den Parameter --setting-names
mit dem Namen der Einstellung verwenden, die Sie löschen möchten.
az logicapp config appsettings delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--setting-names MySetting
Anzeigen von Logik-App-Eigenschaften
Um die Informationen und Eigenschaften Ihrer App anzuzeigen, führen Sie den Befehl az logicapp show
mit den folgenden Parametern aus:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Überwachen der Workflowaktivität
Führen Sie die folgenden Schritte aus, um die Aktivität für einen Workflow in Ihrer Logik-App anzeigen zu können:
Suchen Sie im Azure-Portal nach Ihrer bereitgestellten Logik-App, und öffnen Sie sie.
Wählen Sie im Menü der Logik-App die Option Workflows und dann Ihren Workflow aus.
Wählen Sie im Menü „Workflow“ die Option Überwachen aus.
Erfassen von Protokollen
Wenn Sie protokollierte Daten zu Ihrer Logik-App abrufen möchten, aktivieren Sie Application Insights in Ihrer Logik-App, sofern noch nicht geschehen.