Konfigurera DevOps-distribution för arbetsflöden i standardlogikappar i Azure Logic Apps med en enda klientorganisation

Gäller för: Azure Logic Apps (Standard)

Den här artikeln visar hur du distribuerar ett standardlogikappprojekt till Azure Logic Apps med en enda klientorganisation från Visual Studio Code till din infrastruktur med hjälp av DevOps-verktyg och -processer. Baserat på om du föredrar GitHub eller Azure DevOps för distribution väljer du den sökväg och de verktyg som passar bäst för ditt scenario. Du kan använda de exempel som ingår som innehåller exempel på logikappprojekt plus exempel för Azure-distribution med antingen GitHub eller Azure DevOps. Mer information om DevOps för en enskild klientorganisation finns i DevOps-distributionsöversikt för Azure Logic Apps med en enda klientorganisation.

Förutsättningar

Distribuera infrastrukturresurser

Om du inte redan har konfigurerat ett logikappsprojekt eller infrastruktur kan du använda följande exempelprojekt för att distribuera en exempelapp och infrastruktur baserat på de käll- och distributionsalternativ som du föredrar att använda:

Båda exemplen innehåller följande resurser som en logikapp använder för att köra.

Resursnamn Krävs Beskrivning
Logikapp (standard) Ja Den här Azure-resursen innehåller de arbetsflöden som körs i Azure Logic Apps med en enda klientorganisation.
Värdplan för Functions Premium eller App Service Ja Den här Azure-resursen anger vilka värdresurser som ska användas för att köra logikappen, till exempel beräkning, bearbetning, lagring, nätverk och så vidare.

Viktigt! I den aktuella miljön kräver logikappresursen (Standard)värdplanen Workflow Standard, som baseras på Functions Premium-värdplanen.

Azure Storage-konto Ja, för både tillståndskänsliga och tillståndslösa arbetsflöden Den här Azure-resursen lagrar metadata, nycklar för åtkomstkontroll, tillstånd, indata, utdata, körningshistorik och annan information om dina arbetsflöden.
Application Insights Valfritt Den här Azure-resursen tillhandahåller övervakningsfunktioner för dina arbetsflöden.
API-anslutningar Valfritt, om det inte finns någon Dessa Azure-resurser definierar alla hanterade API-anslutningar som dina arbetsflöden använder för att köra åtgärder för hanterade anslutningsappar, till exempel Office 365, SharePoint och så vidare.

Viktigt! I ditt logikappsprojekt innehåller filen connections.json metadata, slutpunkter och nycklar för alla hanterade API-anslutningar och Azure-funktioner som dina arbetsflöden använder. Om du vill använda olika anslutningar och funktioner i varje miljö måste du parametrisera filen connections.json och uppdatera slutpunkterna.

Mer information finns i API-anslutningsresurser och åtkomstprinciper.

Azure Resource Manager (ARM)-mall Valfritt Den här Azure-resursen definierar en baslinjeinfrastrukturdistribution som du kan återanvända eller exportera.

API-anslutningsresurser och åtkomstprinciper

I Azure Logic Apps med en enda klientorganisation kräver varje hanterad resurs eller API-anslutningsresurs i dina arbetsflöden en associerad åtkomstprincip. Den här principen behöver logikappens identitet för att ge rätt behörigheter för åtkomst till infrastrukturen för hanterade anslutningsappar. Exempelprojekten innehåller en ARM-mall som innehåller alla nödvändiga infrastrukturresurser, inklusive dessa åtkomstprinciper.

Följande diagram visar beroenden mellan ditt logikappsprojekt och infrastrukturresurser:

Konceptuellt diagram som visar infrastrukturberoenden för ett logikappprojekt i Azure Logic Apps-modellen med en enda klientorganisation.

Distribuera logikappresurser (zip-distribution)

När du har push-överfört logikappsprojektet till källlagringsplatsen kan du konfigurera bygg- och versionspipelines i eller utanför Azure som distribuerar logikappar till infrastrukturen.

Skapa projektet

Om du vill konfigurera en bygg-pipeline baserat på typen av logikappprojekt slutför du motsvarande åtgärder i följande tabell:

Projekttyp Beskrivning och steg
Nuget-baserad Den NuGet-baserade projektstrukturen baseras på .NET Framework. Om du vill skapa dessa projekt följer du byggstegen för .NET Standard. Mer information finns i dokumentationen för Skapa ett NuGet-paket med MSBuild.
Paketbaserad Det tilläggspaketbaserade projektet är inte språkspecifikt och kräver inga språkspecifika byggsteg. Du kan använda valfri metod för att zippa dina projektfiler.

Viktigt! Kontrollera att din .zip-fil innehåller de faktiska byggartefakterna, inklusive alla arbetsflödesmappar, konfigurationsfiler som host.json, connections.json och andra relaterade filer.

Före lanseringen till Azure

De hanterade API-anslutningarna i logikappsprojektets connections.json-fil skapas specifikt för lokal användning i Visual Studio Code. Innan du kan släppa projektartefakter från Visual Studio Code till Azure måste du uppdatera dessa artefakter. Om du vill använda de hanterade API-anslutningarna i Azure måste du uppdatera deras autentiseringsmetoder så att de har rätt format att använda i Azure.

Uppdatera autentiseringstyp

För varje hanterad API-anslutning som använder autentisering måste du uppdatera autentiseringsobjektet från det lokala formatet i Visual Studio Code till det Azure Portal formatet, enligt det första respektive andra kodexemplet:

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

Skapa API-anslutningar efter behov

Om du distribuerar logikappens arbetsflöde till en Azure-region eller prenumeration som skiljer sig från din lokala utvecklingsmiljö måste du också se till att skapa dessa hanterade API-anslutningar före distributionen. Distribution av Azure Resource Manager mall (ARM-mall) är det enklaste sättet att skapa hanterade API-anslutningar.

I följande exempel visas en resursdefinition för SQL-hanterad API-anslutning i en ARM-mall:

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

Om du vill hitta de värden som du behöver använda i egenskapsobjektet för att slutföra definitionen av anslutningsresursen kan du använda följande API för en specifik anslutningsapp:

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

I svaret letar du reda på connectionParameters-objektet , som innehåller all information som krävs för att du ska kunna slutföra resursdefinitionen för den specifika anslutningsappen. I följande exempel visas ett exempel på en resursdefinition för en SQL-hanterad anslutning:

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

Alternativt kan du samla in och granska nätverksspårningen för när du skapar en anslutning med hjälp av arbetsflödesdesignern i Azure Logic Apps. Hitta det PUT anrop som skickas till anslutningsappens hanterade API enligt tidigare beskrivning och granska begärandetexten för all nödvändig information.

Släpp till Azure

Om du vill konfigurera en versionspipeline som distribueras till Azure följer du de associerade stegen för GitHub, Azure DevOps eller Azure CLI.

Anteckning

Azure Logic Apps stöder för närvarande inte Azure-distributionsfack.

För GitHub-distributioner kan du distribuera logikappen med hjälp av GitHub Actions, till exempel GitHub Actions i Azure Functions. Den här åtgärden kräver att du går igenom följande information:

  • Namnet på logikappen som ska användas för distribution
  • Zip-filen som innehåller dina faktiska byggartefakter, inklusive alla arbetsflödesmappar, konfigurationsfiler som host.json, connections.json och andra relaterade filer.
  • Din publiceringsprofil, som används för autentisering
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Mer information finns i dokumentationen om kontinuerlig leverans med hjälp av GitHub Action .

Efter lanseringen till Azure

Varje API-anslutning har åtkomstprinciper. När zip-distributionen är klar måste du öppna logikappresursen i Azure Portal och skapa åtkomstprinciper för varje API-anslutning för att konfigurera behörigheter för den distribuerade logikappen. Zip-distributionen skapar inte appinställningar åt dig. Efter distributionen måste du alltså skapa de här appinställningarna baserat på filen local.settings.json i ditt lokala Visual Studio Code-projekt.

Nästa steg

Vi vill gärna höra om dina upplevelser med Azure Logic Apps för en enda klientorganisation!