Dela via


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 fungerar 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 hjälp av antingen GitHub eller Azure DevOps. Mer information om DevOps för en klientorganisation finns i DevOps-distributionsöversikt för Azure Logic Apps med en enda klientorganisation.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.

  • Ett standardlogikappsprojekt som skapats med Visual Studio Code och Tillägget Azure Logic Apps (Standard).

    Om du inte redan har konfigurerat ditt logikappsprojekt eller din infrastruktur kan du använda de exempelprojekt som ingår för att distribuera en exempelapp och infrastruktur baserat på de käll- och distributionsalternativ som du föredrar att använda. Mer information om dessa exempelprojekt och de resurser som ingår för att köra exempellogikappen finns i Distribuera infrastrukturen.

  • Om du vill distribuera till Azure behöver du en befintlig Logic App-resurs (Standard) som skapats i Azure. Om du snabbt vill skapa en tom logikappresurs läser du Skapa arbetsflöden för en klientbaserad logikapp – Portal.

Distribuera infrastrukturresurser

Om du inte redan har konfigurerat ett logikappsprojekt eller en 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 Obligatoriskt 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.
Functions Premium- eller App Service-värdplan 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 upplevelsen kräver Logic App-resursen (Standard) arbetsflödesstandardens värdplan, som baseras på Functions Premium-värdplanen.

Azure-lagringskonto 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.
Programinsikter 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 connections.json-filen 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ö kontrollerar du att du parameteriserar connections.json-filen och uppdaterar 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 för en enda klientorganisation kräver varje hanterad 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. De exempelprojekt som ingår 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:

Konceptdiagram som visar infrastrukturberoenden för ett logikappsprojekt i Azure Logic Apps-modellen med en enda klientorganisation.

Distribuera logikappresurser (zip-distribution)

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

Skapa projektet

Om du vill konfigurera en byggpipeline baserat på din logikapps projekttyp 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 måste du följa byggstegen för .NET Standard. Mer information finns i dokumentationen för Skapa ett NuGet-paket med HJÄLP av 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 filen .zip 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 logikappprojektets 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 är i 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 Azure-portalformatet, vilket visas i första respektive andra kodexemplen:

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-mallar (ARM-mall) är det enklaste sättet att skapa hanterade API-anslutningar.

I följande exempel visas en sql-hanterad API-anslutningsresursdefinition 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 anslutningsresursdefinitionen 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 upp objektet connectionParameters , som innehåller nödvändig information för att 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. Leta upp det PUT anrop som skickas till anslutningsappens hanterade API enligt beskrivningen ovan och granska begärandetexten för all nödvändig information.

Resursdefinition för lokal datagateway

Om anslutningen använder en lokal datagatewayresurs finns den här resursdefinitionen separat från resursdefinitionen för anslutningsappen. Information om hur du visar datagatewayens resursdefinition finns i Automatisera distribution för Azure Logic Apps med hjälp av Azure Resource Manager-mallar och Microsoft.Web connectionGateways.

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.

Kommentar

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

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-portalen 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 därför skapa de här appinställningarna baserat på local.settings.json filen i ditt lokala Visual Studio Code-projekt.

Nästa steg

Vi vill veta mer om dina upplevelser med Azure Logic Apps med en enda klientorganisation!