Freigeben über


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

Gilt für: Azure Logic Apps (Standard)

In diesem Leitfaden wird in erster Linie gezeigt, wie Sie die Bereitstellung für ein Standard-Logik-App-Projekt in Visual Studio Code mithilfe von DevOps-Tools und -Prozessen für Ihre Infrastruktur einrichten. Wenn Ihre Standard-Logik-App stattdessen im Azure-Portal vorhanden ist, können Sie die Artefaktdateien Ihrer Logik-App für die Verwendung bei der DevOps-Bereitstellung herunterladen. Je nachdem, ob Sie GitHub oder Azure DevOps verwenden möchten, wählen Sie dann den Pfad und die Tools aus, die für Ihr Bereitstellungsszenario am besten geeignet sind.

Wenn Sie nicht über eine Standard-Logik-App verfügen, können Sie diesen Leitfaden trotzdem mit den verknüpften Beispielprojekten für Standard-Logik-Apps sowie den Beispielen für die Bereitstellung in Azure über GitHub oder Azure DevOps befolgen. Weitere Informationen finden Sie unter Übersicht über die DevOps-Bereitstellung für Azure Logic Apps-Instanzen mit einem Mandanten.

Voraussetzungen

Bereitstellen von Infrastrukturressourcen

Um die DevOps-Bereitstellungsumgebung ohne vorhandene Standard-Logik-App oder vorherige Infrastruktureinrichtung zu testen, verwenden Sie die folgenden Beispielprojekte, mit denen Sie die Bereitstellung für eine Beispiel-Standard-Logik-App und -Infrastruktur mit GitHub oder Azure DevOps einrichten können:

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

Ressourcenname Erforderlich Beschreibung
Standard-Logik-App Ja Diese Azure-Ressource enthält die Workflows, die in Azure Logic Apps-Instanzen mit nur einem Mandanten ausgeführt werden.

Wichtig: In Ihrem Logik-App-Projekt verfügt jeder Workflow über eine Datei workflow.json mit der Workflowdefinition, die die Trigger- und Aktionsdefinitionen enthält.
API-Verbindungen Ja, wenn eine API-Verbindungen besteht 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.
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 Umgebung erfordert die Standard-Logik-App-Ressource den Workflow Standard-Hostingplan, der auf dem Azure Functions Premium-Hostingplan basiert.
Azure Storage-Konto 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.
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 API-Verbindungsressource in Ihrem Workflow 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 einem Standard-Logik-App-Projekt und den Infrastrukturressourcen:

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

Herunterladen von Artefakten einer Standard-Logik-App über das Portal

Wenn sich Ihre Standard-Logik-App im Azure-Portal befindet, können Sie eine ZIP-Datei herunterladen, die die Artefaktdateien Ihrer Logik-App enthält, einschließlich workflow.json, connections.json, host.json und local.settings.json.

  1. Suchen Sie im Azure-Portal Ihre Standard-Logik-App-Ressource, und öffnen Sie sie.

  2. Wählen Sie in der Logik-App-Menü Übersicht aus.

  3. Wählen Sie auf der Symbolleiste Übersicht die Option App-Inhalt herunterladen aus. Wählen Sie im angezeigten Bestätigungsfeld Herunterladen aus.

  4. Wenn eine entsprechende Aufforderung angezeigt wird, wählen Sie Speichern unter aus, navigieren zum gewünschten lokalen Ordner und wählen Speichern aus, um die ZIP-Datei zu speichern.

  5. Extrahieren Sie die ZIP-Datei.

  6. Öffnen Sie in Visual Studio Code den Ordner, der die entzippten Dateien enthält.

    Wenn Sie den Ordner öffnen, erstellt Visual Studio Code automatisch einen Arbeitsbereich.

  7. Bearbeiten Sie den Inhalt des Ordners, um nur die Ordner und Dateien einzuschließen, die für die Bereitstellung mit DevOps erforderlich sind.

  8. Speichern Sie Ihre Änderungen, wenn Sie fertig sind.

Erstellen und Bereitstellen einer Logik-App (ZIP-Bereitstellung)

Sie können Build- und Releasepipelines innerhalb oder außerhalb von Azure einrichten, um Standard-Logik-Apps für Ihre Infrastruktur bereitzustellen.

Erstellen Ihres Projekts

  1. Pushen Sie Ihr Standard-Logik-App-Projekt und die Artefaktdateien an Ihr Quellrepository, z. B. GitHub oder Azure DevOps.

  2. Richten Sie eine Buildpipeline basierend auf Ihrem Logik-App-Projekttyp ein, indem Sie jeweils die folgenden Aktionen ausführen:

    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.
  3. Zippen Sie Ihre Projektdateien mithilfe einer beliebigen Methode.

    Wichtig

    Stellen Sie sicher, dass Ihre ZIP-Datei die tatsächlichen Buildartefakte Ihres Projekts auf Stammebene enthält, einschließlich aller Workflowordner, Konfigurationsdateien wie host.json, connections.json und local.settings.json sowie aller weiteren verwandten Dateien. Fügen Sie keine zusätzlichen Ordner hinzu, und platzieren Sie keine Artefakte in Ordnern, die noch nicht in Ihrer Projektstruktur vorhanden sind.

    Die folgende Liste zeigt ein Beispiel für die Dateistruktur von MyBuildArtifacts.zip:

    MyStatefulWorkflow1-Folder
    MyStatefulWorkflow2-Folder
    connections.json
    host.json
    local.settings.json
    

Vor der Veröffentlichung 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 eine Authentifizierung verwendet, müssen Sie das authentication-Objekt vom lokalen Format in Visual Studio Code in das Azure-Portal-Format ändern, wie im ersten und zweiten Codebeispiel gezeigt:

Visual Studio Code-Format

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
         },
         "connection": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
         },
         "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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
         },
         "connection": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
         },
         "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
         "authentication": {
            "type": "ManagedServiceIdentity",
         }
      }
   }
}

Erstellen von API-Verbindungen nach Bedarf

Wenn Sie Ihre Standard-Logik-App 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 properties-Objekt 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 das connectionParameters-Objekt, das die erforderlichen Informationen enthält, um die Ressourcendefinition für diesen spezifischen Connector abzuschließen. 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 API des verwalteten Connectors, wie oben beschrieben. Im Anforderungstext finden Sie alle erforderlichen Informationen.

Lokale Datengatewayressourcendefinition

Wenn Ihre Verbindung eine lokale Datengatewayressource verwendet, ist diese Ressourcendefinition getrennt von der Connectorressourcendefinition vorhanden. Informationen zum Anzeigen der Ressourcendefinition des Datengateways finden Sie unter Automatisieren der Bereitstellung für Azure Logic Apps mithilfe von Azure Resource Manager-Vorlagen und Microsoft.Web connectionGateways.

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.

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 local.settings.json sowie 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 unter Continuous Delivery mit GitHub Actions.

Nach der Bereitstellung in Azure

Jede API-Verbindung verfügt über Zugriffsrichtlinien. Nach Abschluss der ZIP-Bereitstellung müssen Sie Ihre Standard-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. Sie müssen diese App-Einstellungen nach der Bereitstellung basierend auf der Datei local.settings.json in Ihrem lokalen Logik-App-Projekt erstellen.

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