Delen via


DevOps-implementatie instellen voor standaard logische apps in Azure Logic Apps met één tenant

Van toepassing op: Azure Logic Apps (Standard)

In deze handleiding wordt voornamelijk beschreven hoe u implementatie instelt voor een Standaard logische app-project in Visual Studio Code voor uw infrastructuur met behulp van DevOps-hulpprogramma's en -processen. Als uw standaard logische app in plaats daarvan bestaat in Azure Portal, kunt u de artefactbestanden van uw logische app downloaden voor gebruik met DevOps-implementatie. Op basis van of u GitHub of Azure DevOps wilt gebruiken, kiest u vervolgens het pad en de hulpprogramma's die het beste werken voor uw implementatiescenario.

Als u geen standaard logische app hebt, kunt u deze handleiding nog steeds volgen met behulp van de gekoppelde standaard logische app-projecten plus voorbeelden voor implementatie naar Azure via GitHub of Azure DevOps. Raadpleeg het devOps-implementatieoverzicht voor Azure Logic Apps met één tenant voor meer informatie.

Vereisten

Infrastructuurbronnen implementeren

Als u de DevOps-implementatie wilt uitproberen zonder voorafgaande standaard logische app of infrastructuurinstallatie, gebruikt u de volgende voorbeeldprojecten, zodat u implementatie kunt instellen voor een voorbeeld van een standaard logische app en infrastructuur, op basis van of u GitHub of Azure DevOps wilt gebruiken:

Beide voorbeelden bevatten de volgende resources die door een standaard logische app worden gebruikt om uit te voeren:

Resourcenaam Vereist Beschrijving
Standaard logische app Ja Deze Azure-resource bevat de werkstromen die worden uitgevoerd in Azure Logic Apps met één tenant.

Belangrijk: In uw logische app-project heeft elke werkstroom een workflow.json-bestand dat de werkstroomdefinitie bevat, waaronder de trigger- en actiedefinities.
API-verbindingen Ja, als ER API-verbindingen bestaan Deze Azure-resources definiëren alle beheerde API-verbindingen die door uw werkstromen worden gebruikt voor het uitvoeren van beheerde connectorbewerkingen, zoals Office 365, SharePoint, enzovoort.

Belangrijk: In uw logische app-project bevat het connections.json bestand metagegevens, eindpunten en sleutels voor beheerde API-verbindingen en Azure-functies die door uw werkstromen worden gebruikt. Als u verschillende verbindingen en functies in elke omgeving wilt gebruiken, moet u ervoor zorgen dat u het connections.json-bestand parameteriseert en de eindpunten bijwerkt.

Raadpleeg api-verbindingsresources en toegangsbeleid voor meer informatie.
Functions Premium- of App Service-hostingabonnement Ja Deze Azure-resource geeft de hostingresources op die moeten worden gebruikt voor het uitvoeren van uw logische app, zoals compute, verwerking, opslag, netwerken, enzovoort.

Belangrijk: In de huidige ervaring is voor de resource van de standaard logische app het Workflow Standard-hostingplan vereist. Dit is gebaseerd op het Azure Functions Premium-hostingabonnement.
Azure-storageaccount Ja, voor stateful en stateless werkstromen Deze Azure-resource slaat de metagegevens, sleutels voor toegangsbeheer, status, invoer, uitvoer, uitvoeringsgeschiedenis en andere informatie over uw werkstromen op.
Analyses van toepassingen Optioneel Deze Azure-resource biedt bewakingsmogelijkheden voor uw werkstromen.
Azure Resource Manager (ARM)-sjabloon Optioneel Deze Azure-resource definieert een basislijninfrastructuurimplementatie die u opnieuw kunt gebruiken of exporteren.

API-verbindingsbronnen en toegangsbeleid

In Azure Logic Apps met één tenant is voor elke beheerde API-verbindingsresource in uw werkstroom een gekoppeld toegangsbeleid vereist. Dit beleid heeft de identiteit van uw logische app nodig om de juiste machtigingen te bieden voor toegang tot de infrastructuur van de beheerde connector. De opgenomen voorbeeldprojecten bevatten een ARM-sjabloon met alle benodigde infrastructuurbronnen, waaronder dit toegangsbeleid.

In het volgende diagram ziet u bijvoorbeeld de afhankelijkheden tussen een Standaard logische app-project en infrastructuurbronnen:

Conceptueel diagram toont infrastructuurafhankelijkheden voor het standaard-logische app-project in het Azure Logic Apps-model met één tenant.

Standaardartefacten voor logische apps downloaden vanuit de portal

Als uw standaard logische app zich in Azure Portal bevindt, kunt u een zip-bestand met de artefactbestanden van uw logische app downloaden, waaronder workflow.json, connections.json, host.json en local.settings.json.

  1. Zoek en open uw resource voor de logische standaard-app in Azure Portal.

  2. Selecteer Overzicht in het menu van de logische app.

  3. Selecteer App-inhoud downloaden op de werkbalk Overzicht. Selecteer Downloaden in het bevestigingsvak dat wordt weergegeven.

  4. Wanneer de prompt wordt weergegeven, selecteert u Opslaan als, bladert u naar de gewenste lokale map en selecteert u Opslaan om het zip-bestand op te slaan.

  5. Pak het zip-bestand uit.

  6. Open in Visual Studio Code de map met de uitgepakte bestanden.

    Wanneer u de map opent, wordt in Visual Studio Code automatisch een werkruimte gemaakt.

  7. Bewerk de inhoud van de map om alleen de mappen en bestanden op te nemen die nodig zijn voor implementatie met behulp van DevOps.

  8. Sla de wijzigingen op wanneer u klaar bent.

Logische app bouwen en implementeren (zip deploy)

U kunt build- en release-pijplijnen instellen binnen of buiten Azure die Standaard logische apps implementeren in uw infrastructuur.

Uw project bouwen

  1. Push uw Standaard logische app-project en artefactbestanden naar uw bronopslagplaats, bijvoorbeeld GitHub of Azure DevOps.

  2. Stel een build-pijplijn in op basis van het projecttype van uw logische app door de volgende bijbehorende acties uit te voeren:

    Projecttype Beschrijving en stappen
    Op Nuget gebaseerd De projectstructuur op basis van NuGet is gebaseerd op .NET Framework. Als u deze projecten wilt bouwen, moet u de buildstappen voor .NET Standard volgen. Raadpleeg de documentatie voor Een NuGet-pakket maken met BEHULP van MSBuild voor meer informatie.
    Op bundel gebaseerd Het op uitbreidingsbundel gebaseerde project is niet taalspecifiek en vereist geen taalspecifieke buildstappen.
  3. Zip uw projectbestanden met elke gewenste methode.

    Belangrijk

    Zorg ervoor dat uw zip-bestand de werkelijke buildartefacten van uw project bevat op hoofdniveau, inclusief alle werkstroommappen, configuratiebestanden zoals host.json, connections.json, local.settings.json en andere gerelateerde bestanden. Voeg geen extra mappen toe en plaats geen artefacten in mappen die nog niet bestaan in uw projectstructuur.

    In de volgende lijst ziet u bijvoorbeeld een voorbeeld van MyBuildArtifacts.zip bestandsstructuur:

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

Voordat u azure vrijgeeft

De beheerde API-verbindingen in het connections.json-bestand van uw logische app-project worden specifiek gemaakt voor lokaal gebruik in Visual Studio Code. Voordat u uw projectartefacten van Visual Studio Code naar Azure kunt vrijgeven, moet u deze artefacten bijwerken. Als u de beheerde API-verbindingen in Azure wilt gebruiken, moet u hun verificatiemethoden bijwerken, zodat ze de juiste indeling hebben voor gebruik in Azure.

Verificatietype bijwerken

Voor elke beheerde API-verbinding die gebruikmaakt van verificatie, moet u het authentication object bijwerken van de lokale indeling in Visual Studio Code naar de Azure-portal-indeling, zoals wordt weergegeven in respectievelijk de eerste en tweede codevoorbeelden:

Visual Studio Code-indeling

{
   "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-indeling

{
   "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"
         }
      }
   }
}

API-verbindingen maken indien nodig

Als u uw standaardlogica-app implementeert in een Azure-regio of een ander abonnement dan uw lokale ontwikkelomgeving, moet u er ook voor zorgen dat u deze beheerde API-verbindingen maakt voordat deze worden geïmplementeerd. Implementatie van Azure Resource Manager-sjablonen (ARM-sjabloon) is de eenvoudigste manier om beheerde API-verbindingen te maken.

In het volgende voorbeeld ziet u een definitie van een resourcedefinitie voor beheerde API-verbindingen in een ARM-sjabloon:

{
   "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"
      }
   }
}

Gebruik de volgende API voor een specifieke connector om de vereiste waarden voor het properties object te vinden, zodat u de definitie van de verbindingsresource kunt voltooien:

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

Zoek in het antwoord het connectionParameters object, dat de benodigde informatie bevat om de resourcedefinitie voor die specifieke connector te voltooien. In het volgende voorbeeld ziet u een voorbeeld van een resourcedefinitie voor een met SQL beheerde verbinding:

{
   "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"
      }
   }
}

Als alternatief kunt u de netwerktracering vastleggen en controleren voor wanneer u een verbinding maakt met behulp van de werkstroomontwerper in Azure Logic Apps. Zoek de PUT aanroep die wordt verzonden naar de API van de beheerde connector, zoals eerder beschreven, en controleer de aanvraagbody voor alle benodigde informatie.

Resourcedefinitie voor on-premises gegevensgateway

Als uw verbinding gebruikmaakt van een on-premises gegevensgatewayresource, bestaat deze resourcedefinitie afzonderlijk van de resourcedefinitie van de connector. Als u de resourcedefinitie van de gegevensgateway wilt weergeven, raadpleegt u De implementatie voor Azure Logic Apps automatiseren met behulp van Azure Resource Manager-sjablonen en Microsoft.Web connectionGateways.

Release naar Azure

Als u een release-pijplijn wilt instellen die in Azure wordt geïmplementeerd, volgt u de bijbehorende stappen voor GitHub, Azure DevOps of Azure CLI.

Voor GitHub-implementaties kunt u uw logische app implementeren met behulp van GitHub Actions, bijvoorbeeld de GitHub Actions in Azure Functions. Voor deze actie moet u de volgende informatie doorgeven:

  • De naam van de logische app die moet worden gebruikt voor implementatie
  • Het zip-bestand met uw werkelijke buildartefacten, inclusief alle werkstroommappen, configuratiebestanden zoals host.json, connections.json, local.settings.json en andere gerelateerde bestanden.
  • Uw publicatieprofiel, dat wordt gebruikt voor verificatie
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Raadpleeg continue levering met behulp van GitHub Action voor meer informatie.

Na de implementatie in Azure

Elke API-verbinding heeft toegangsbeleid. Nadat de zip-implementatie is voltooid, moet u de resource voor de standaard logische app openen in Azure Portal en toegangsbeleid maken voor elke API-verbinding om machtigingen voor de geïmplementeerde logische app in te stellen. Met de zip-implementatie worden geen app-instellingen voor u gemaakt. Na de implementatie moet u deze app-instellingen maken op basis van het local.settings.json-bestand in uw logische app-project.

We willen graag meer weten over uw ervaringen met azure Logic Apps met één tenant.