Einrichten der DevOps-Bereitstellung für Workflows von Standard-Logik-Apps in Azure Logic Apps-Instanzen mit nur einem Mandanten

Gilt für: Azure Logic Apps (Standard)

In diesem Artikel erfahren Sie, wie Sie mithilfe von DevOps-Tools und -Prozessen ein Standard-Logik-App-Projekt für Azure Logic Apps mit einem einzelnen Mandanten aus Visual Studio Code in Ihrer Infrastruktur bereitstellen. Wählen Sie in Abhängigkeit davon, ob Sie GitHub oder Azure DevOps für die Bereitstellung bevorzugen, den Pfad und die Tools aus, die für Ihr Szenario am besten geeignet sind. Sie können die enthaltenen Beispiele verwenden, die Logik-App-Beispielprojekte sowie Beispiele für die Azure-Bereitstellung mithilfe von GitHub oder Azure DevOps enthalten. Weitere Informationen zu DevOps für einzelne Mandanten finden Sie unter DevOps-Bereitstellungsübersicht für Azure Logic Apps-Instanzen mit nur einem Mandanten.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.

  • Ein Standard-Logik-App-Projekt, das mit Visual Studio Code und der Azure Logic Apps-Erweiterung (Standard) erstellt wurde.

    Wenn Sie noch kein Logik-App-Projekt oder keine Infrastruktur eingerichtet haben, können Sie die enthaltenen Beispielprojekte verwenden, um eine Beispiel-App und -infrastruktur auf Grundlage der Quell- und Bereitstellungsoptionen bereitzustellen, die Sie verwenden möchten. Weitere Informationen zu diesen Beispielprojekten und den enthaltenen Ressourcen für die Ausführung der Beispiel-Logik-App, finden Sie unter Bereitstellen Ihrer Infrastruktur.

  • Wenn Sie eine Bereitstellung in Azure durchführen möchten, benötigen Sie eine vorhandene Logik-App-Ressource (Standard) , die in Azure erstellt wurde. Informationen zum schnellen Erstellen einer leeren Logik-App-Ressource finden Sie unter Erstellen von auf einzelnen Mandanten basierenden Logik-App-Workflows – Portal.

Bereitstellen von Infrastrukturressourcen

Wenn Sie noch kein Logik-App-Projekt oder keine Infrastruktur eingerichtet haben, können Sie die folgenden Beispielprojekte verwenden, um eine Beispiel-App und -infrastruktur auf Grundlage Ihrer gewünschten Quell- und Bereitstellungsoptionen bereitzustellen:

Beide Beispiele enthalten die folgenden Ressourcen, die eine Logik-App für die Ausführung verwendet.

Ressourcenname Erforderlich BESCHREIBUNG
Logik-App (Standard) Ja Diese Azure-Ressource enthält die Workflows, die in Azure Logic Apps-Instanzen mit nur einem Mandanten ausgeführt werden.
Functions Premium- oder App Service-Hostingplan Ja Diese Azure-Ressource gibt die Hostingressourcen an, die zum Ausführen Ihrer Logik-App verwendet werden soll, z. B. Compute, Verarbeitung, Speicher, Netzwerk usw.

Wichtig: In der aktuellen Erfahrung erfordert die Logik-App-Ressource (Standard) den Workflow Standard-Hostingplan, der auf dem Functions Premium-Hostingplan basiert.

Azure-Speicherkonto Ja, für zustandsbehaftete und zustandslose Workflows Diese Azure-Ressource speichert die Metadaten, die Schlüssel für die Zugriffssteuerung, den Zustand, die Ein- und Ausgaben, den Ausführungsverlauf sowie andere Informationen zu Ihren Workflows.
Application Insights Optional Diese Azure-Ressource bietet Überwachungsfunktionen für Ihre Workflows.
API-Verbindungen Optional, wenn nicht vorhanden. Diese Azure-Ressourcen definieren alle verwalteten API-Verbindungen, die Ihre Workflows zum Ausführen verwalteter Connectorvorgänge verwenden, z. B. Office 365, SharePoint usw.

Wichtig: In Ihrem Logik-App-Projekt enthält die Datei connections.json Metadaten, Endpunkte und Schlüssel für alle verwalteten API-Verbindungen und Azure-Funktionen, die von Ihren Workflows verwendet werden. Um unterschiedliche Verbindungen und Funktionen in jeder Umgebung zu verwenden, stellen Sie sicher, dass Sie die Datei connections.json parametrisieren und die Endpunkte aktualisieren.

Weitere Informationen finden Sie unter API-Verbindungsressourcen und Zugriffsrichtlinien.

ARM-Vorlage (Azure Resource Manager) Optional Diese Azure-Ressource definiert eine Baseline-Infrastrukturbereitstellung, die Sie wiederverwenden oder exportieren können.

API-Verbindungsressourcen und Zugriffsrichtlinien

In Azure Logic Apps-Instanzen mit nur einem Mandanten muss für jede verwaltete oder API-Verbindungsressource in Ihren Workflows eine zugeordnete Zugriffsrichtlinie vorhanden sein. Diese Richtlinie benötigt die Identität Ihrer Logik-App, um die richtigen Berechtigungen für den Zugriff auf die verwaltete Connectorinfrastruktur bereitzustellen. Die enthaltenen Beispielprojekte beinhalten eine ARM-Vorlage, die alle erforderlichen Infrastrukturressourcen enthält, einschließlich dieser Zugriffsrichtlinien.

Das folgende Diagramm zeigt die Abhängigkeiten zwischen Ihrem Logik-App-Projekt und den Infrastrukturressourcen:

Konzeptionelles Diagramm der Infrastrukturabhängigkeiten für ein Logik-App-Projekt im Azure Logic Apps-Modell mit nur einem Mandanten.

Bereitstellen von Logik-App-Ressourcen (ZIP-Bereitstellung)

Nachdem Sie Ihr Logik-App-Projekt in Ihr Quellrepository gepusht haben, können Sie innerhalb oder außerhalb von Azure Build- und Releasepipelines einrichten, die Logik-Apps in der Infrastruktur bereitstellen.

Erstellen Ihres Projekts

Um eine Buildpipeline auf Grundlage Ihres Logik-App-Projekttyps einzurichten, führen Sie die entsprechenden Aktionen aus, die in der folgenden Tabelle aufgeführt sind:

Projekttyp Beschreibung und Schritte
NuGet-basiert Die NuGet-basierte Projektstruktur basiert auf .NET Framework. Um diese Projekte zu erstellen, stellen Sie sicher, dass Sie die Buildschritte für .NET Standard einhalten. Weitere Informationen finden Sie in der Dokumentation zum Erstellen eines NuGet-Pakets mit MSBuild.
Paketbasiert Das paketbasierte Erweiterungsprojekt ist nicht sprachspezifisch und erfordert keine sprachspezifischen Buildschritte. Sie können eine beliebige Methode verwenden, um Ihre Projektdateien zu zippen.

Wichtig: Stellen Sie sicher, dass ihre ZIP-Datei die tatsächlichen Buildartefakte einschließlich aller Workflowordner, Konfigurationsdateien wie „host.json“, „connections.json“ und alle anderen zugehörigen Dateien enthält.

Vor dem Release in Azure

Die verwalteten API-Verbindungen in der Datei connections.json Ihres Logik-App-Projekts werden speziell für die lokale Verwendung in Visual Studio Code erstellt. Bevor Sie Ihre Projektartefakte aus Visual Studio Code in Azure freigeben können, müssen Sie die Artefakte aktualisieren. Um die verwalteten API-Verbindungen in Azure verwenden zu können, müssen Sie deren Authentifizierungsmethoden aktualisieren, damit sie das richtige Format für die Verwendung in Azure aufweisen.

Aktualisieren des Authentifizierungstyps

Für jede verwaltete API-Verbindung, die die Authentifizierung verwendet, müssen Sie das Authentifizierungsobjekt vom lokalen Format in Visual Studio Code auf das Azure-Portal-Format aktualisieren, wie im ersten und zweiten Codebeispiel gezeigt:

Visual Studio Code-Format

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "Raw",
         "scheme": "Key",
         "parameter": "@appsetting('sql-connectionKey')"
      }
   }
}

Azure-Portal-Format

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "ManagedServiceIdentity",
      }
   }
}

Erstellen von API-Verbindungen nach Bedarf

Wenn Sie Ihren Logik-App-Workflow in einer Azure-Region oder einem Abonnement bereitstellen, die bzw. das von Ihrer lokalen Entwicklungsumgebung abweicht, müssen Sie außerdem sicherstellen, dass Sie diese verwalteten API-Verbindungen vor der Bereitstellung erstellen. Die Bereitstellung über Azure Resource Manager-Vorlagen (ARM-Vorlagen) ist die einfachste Möglichkeit zum Erstellen verwalteter API-Verbindungen.

Das folgende Beispiel zeigt eine Definition für eine verwaltete SQL-API-Verbindungsressource in einer ARM-Vorlage:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Um die Werte zu ermitteln, die Sie im Objekt properties zum Abschließen der Verbindungsressourcendefinition verwenden müssen, können Sie die folgende API für einen bestimmten Connector verwenden:

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

Suchen Sie in der Antwort nach dem Objekt connectionParameters, das alle Informationen enthält, die Sie zum Abschließen der Ressourcendefinition für diesen spezifischen Connector benötigen. Das folgende Beispiel zeigt eine Beispielressourcendefinition für eine verwaltete SQL-Verbindung:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Alternativ können Sie die Netzwerkablaufverfolgung erfassen und überprüfen, wenn Sie mithilfe des Workflow-Designers in Azure Logic Apps eine Verbindung erstellen. Suchen Sie den PUT-Aufruf an die verwaltete API des Connectors, wie oben beschrieben. Im Anforderungstext finden Sie alle benötigten Informationen.

Release in Azure

Um eine Releasepipeline für die Bereitstellung in Azure einzurichten, befolgen Sie die entsprechenden Schritte für GitHub, Azure DevOps oder die Azure CLI.

Hinweis

Azure Logic Apps unterstützt derzeit keine Azure-Bereitstellungsslots.

Für GitHub-Bereitstellungen können Sie Ihre Logik-App mithilfe von GitHub Actions bereitstellen, z. B. mit den GitHub Actions in Azure Functions. Diese Aktion erfordert, dass Sie die folgenden Informationen übergeben:

  • Den Namen der für die Bereitstellung zu verwendenden Logik-App
  • Die ZIP-Datei, die Ihre tatsächlichen Buildartefakte einschließlich aller Workflowordner, Konfigurationsdateien wie „host.json“, „connections.json“ und alle anderen zugehörigen Dateien enthält.
  • Ihr für die Authentifizierung verwendetes Veröffentlichungsprofil.
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Weitere Informationen finden Sie in der Dokumentation zu Continuous Delivery mithilfe einer GitHub-Aktion.

Nach dem Release in Azure

Jede API-Verbindung verfügt über Zugriffsrichtlinien. Nach Abschluss der ZIP-Bereitstellung müssen Sie Ihre Logik-App-Ressource im Azure-Portal öffnen und Zugriffsrichtlinien für jede API-Verbindung erstellen, um Berechtigungen für die bereitgestellte Logik-App einzurichten. Die ZIP-Bereitstellung erstellt keine App-Einstellungen für Sie. Daher müssen Sie diese App-Einstellungen nach der Bereitstellung basierend auf der Datei local.settings.json in Ihrem lokalen Visual Studio Code-Projekt erstellen.

Nächste Schritte

Teilen Sie uns bitte Ihre Erfahrungen mit den Azure Logic Apps-Instanzen mit nur einem Mandanten mit.