Share via


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

Van toepassing op: Azure Logic Apps (Standard)

In dit artikel wordt beschreven hoe u een Standaard logische app-project implementeert in Azure Logic Apps met één tenant van Visual Studio Code in uw infrastructuur met behulp van DevOps-hulpprogramma's en -processen. Kies op basis van of u de voorkeur geeft aan GitHub of Azure DevOps voor implementatie het pad en de hulpprogramma's die het beste werken voor uw scenario. U kunt de opgenomen voorbeelden gebruiken die voorbeelden van logische app-projecten bevatten plus voorbeelden voor Azure-implementatie met behulp van GitHub of Azure DevOps. Raadpleeg het devOps-implementatieoverzicht voor Azure Logic Apps met één tenant voor meer informatie over DevOps voor één tenant.

Vereisten

Infrastructuurbronnen implementeren

Als u nog geen logische app-project of infrastructuur hebt ingesteld, kunt u de volgende voorbeeldprojecten gebruiken om een voorbeeld-app en infrastructuur te implementeren op basis van de bron- en implementatieopties die u wilt gebruiken:

Beide voorbeelden bevatten de volgende resources die een logische app gebruikt om uit te voeren.

Resourcenaam Vereist Beschrijving
Logische app (standaard) Ja Deze Azure-resource bevat de werkstromen die worden uitgevoerd in Azure Logic Apps met één tenant.
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 vereist de logic app-resource (Standard) het Workflow Standard-hostingplan, dat is gebaseerd op het 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.
API-verbindingen Optioneel, als er geen bestaat 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.

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 of API-verbindingsresource in uw werkstromen 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 de afhankelijkheden tussen uw logische app-project en infrastructuurbronnen:

Conceptueel diagram met infrastructuurafhankelijkheden voor een logic app-project in het Azure Logic Apps-model met één tenant.

Resources voor logische apps implementeren (zip deploy)

Nadat u uw logische app-project naar uw bronopslagplaats hebt gepusht, kunt u build- en release-pijplijnen instellen binnen of buiten Azure die logische apps implementeren in de infrastructuur.

Uw project bouwen

Als u een build-pijplijn wilt instellen op basis van het projecttype van uw logische app, moet u de bijbehorende acties in de volgende tabel uitvoeren:

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. U kunt elke methode gebruiken om uw projectbestanden te zippen.

Belangrijk: Zorg ervoor dat uw .zip bestand de werkelijke buildartefacten bevat, inclusief alle werkstroommappen, configuratiebestanden zoals host.json, connections.json en andere gerelateerde bestanden.

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 verificatieobject 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/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-indeling

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

API-verbindingen maken indien nodig

Als u uw werkstroom voor logische apps 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/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Als u de waarden wilt vinden die u moet gebruiken in het eigenschappenobject voor het voltooien van de definitie van de verbindingsresource, kunt u de volgende API gebruiken voor een specifieke connector:

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 beheerde API van de 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.

Notitie

Azure Logic Apps biedt momenteel geen ondersteuning voor Azure-implementatiesites.

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 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 voor meer informatie de continue levering met behulp van gitHub Action-documentatie .

Na de release van Azure

Elke API-verbinding heeft toegangsbeleid. Nadat de zip-implementatie is voltooid, moet u de resource van uw 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 lokale Visual Studio Code-project.

Volgende stappen

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