Välja rätt integrerings- och automationstjänster i Azure
Den här artikeln jämför följande Microsoft-molntjänster:
- Microsoft Power Automate (Microsoft Flow)
- Azure Logic Apps
- Azure Functions
- Azure App Service WebJobs
Alla dessa tjänster kan lösa integrationsproblem och automatisera affärsprocesser. Samtliga tjänster definierar indata, åtgärder, villkor och utdata. Du kan välja att köra dem enligt ett schema eller med utlösare. Varje tjänst har unika fördelar, och den här artikeln förklarar skillnaderna.
Om du vill ha en mer allmän jämförelse mellan Azure Functions och andra Beräkningsalternativ i Azure kan du läsa Kriterier för att välja en Azure-beräkningstjänst och Välja ett Azure-beräkningsalternativ för mikrotjänster.
Jämför Microsoft Power Automate och Azure Logic Apps
Power Automate och Logic Apps båda integreringstjänster i designern som kan skapa arbetsflöden. Båda tjänsterna integreras med olika SaaS- och företagsprogram.
Power Automate bygger på Logic Apps. De delar samma arbetsflödesdesigner och samma anslutningsappar.
Power Automate kan kontorsarbetare utföra enkla integreringar (till exempel en godkännandeprocess i ett SharePoint Document Library) utan att gå via utvecklare eller IT. Logic Apps kan även användas för att göra avancerade integreringar (till exempel B2B-processer) där Azure DevOps och säkerhetsåtgärder på företagsnivå krävs. Det är vanligt att företagsarbetsflöden växer i komplexitet med tiden. Därför går det bra att börja med ett enkelt flöde och sedan konvertera det till en logikapp efter behov.
Följande tabell hjälper dig att avgöra om Power Automate eller Logic Apps passar bäst för en viss integrering:
| Power Automate | Logic Apps | |
|---|---|---|
| Användare | Kontorsarbetarna, användare i verksamheten, SharePoint-administratörer | Professionella integratörer och utvecklare, IT-proffs |
| Scenarier | Självbetjäning | Avancerade integreringar |
| Designverktyg | I webbläsaren och mobilappen, endast användargränssnitt | I webbläsaren och Visual Studio, kodvyer är tillgängliga |
| Application Lifecycle Management (ALM) | Utforma och testa i icke-produktionsmiljöer, skicka till produktion när det är klart | Azure DevOps: källkontroll, testning, support, automatisering och hanterbarhet i Azure Resource Manager |
| Administratörsupplevelse | Hantera Power Automate miljöer och principer för dataförlustskydd (DLP), spåra licensiering: Administrationscenter | Hantera resursgrupper, anslutningar, åtkomsthantering och loggning: Azure Portal |
| Säkerhet | Microsoft 365 säkerhetsgranskningsloggar, DLP, kryptering i vila för känsliga data | Säkerhetsgaranti för Azure: Azure-säkerhet, Microsoft Defender för moln, granskningsloggar |
Jämföra Azure Functions och Azure Logic Apps
Functions och Logic Apps är Azure-tjänster som möjliggör serverlösa arbetsbelastningar. Azure Functions är en serverlös beräkningstjänst, medan Azure Logic Apps tillhandahåller serverlösa arbetsflöden. Båda kan skapa komplexa orkestreringar. En orkestrering är en samling funktioner eller steg, som kallas åtgärder som utförs i Logic Apps, som körs för att utföra en komplicerad uppgift. För att till exempel bearbeta en batch med ordrar kör du kanske flera instanser av en funktion parallellt, väntar tills alla instanser har slutförts och kör sedan en funktion som beräknar ett resultat för aggregatet.
Med Azure Functions utvecklar du orkestreringarna genom att skriva kod och använda tillägget Varaktiga funktioner. Med Logic Apps skapar du orkestreringarna genom att använda ett grafiskt användargränssnitt eller redigera konfigurationsfiler.
Du kan kombinera tjänsterna när du skapar en orkestrering och anropa funktioner från logikappar och logikappar från funktioner. Välj hur du skapar varje orkestrering utifrån tjänsternas funktioner eller vad du föredrar. I följande tabell visas några av de viktigaste skillnaderna mellan dessa:
| Bestående funktioner | Logic Apps | |
|---|---|---|
| Utveckling | Kod först (imperativt) | Design först (deklarativt) |
| Anslutningsmöjligheter | Cirka ett dussintal inbyggda bindningstyper, skriv kod för anpassade bindningar | Stor samling anslutningsappar,Enterprise-integrationspaket för B2B-scenarier, skapa anpassade anslutningsappar |
| Åtgärder | Varje åtgärd är en Azure-funktion. Skriv kod för åtgärdsfunktioner | Stor samling färdiga åtgärder |
| Övervakning | Azure Application Insights | Azure Portal, Azure Monitor loggar |
| Hantering | REST API, Visual Studio | Azure Portal, REST API, PowerShell, Visual Studio |
| Körningskontext | Kan köras lokalt eller i molnet | Körs bara i molnet |
Jämföra Functions och WebJobs
Liksom Azure Functions är Azure App Service WebJobs med WebJobs-SDK:n en kodfokuserad integreringstjänst som är avsedd för utvecklare. Båda bygger på Azure App Service och stöder funktioner som källkontrollsintegration, autentisering och övervakning med Application Insights-integration.
WebJobs och WebJobs-SDK:t
Du kan använda WebJobs-funktionen i App Service för att köra ett skript eller kod i kontexten för en App Service-webbapp. WebJobs-SDK:n är ett ramverk som utformats för WebJobs och som förenklar den kod du skriver för att besvara händelser i Azure-tjänsterna. Till exempel kan du svara på skapandet av en avbildningsblob i Azure Storage genom att skapa en miniatyrbild. WebJobs-SDK:n körs som ett .NET-konsolprogram som du kan distribuera till ett WebJob.
WebJobs och WebJobs-SDK:n fungerar bäst tillsammans, men du kan använda WebJobs utan WebJobs-SDK:n och vice versa. Ett WebJob kan köra vilket program eller skript som helst som körs i App Service-sandboxen. Ett WebJobs-SDK-konsolprogram kan köras var som helst där konsolprogram körs, t.ex. på lokala servrar.
Jämförelsetabell
Azure Functions bygger på WebJobs-SDK:n, och delar därför många händelseutlösare och anslutningsappar med andra Azure-tjänster. Här är några faktorer som du bör tänka på när du väljer mellan Azure Functions och WebJobs med WebJobs-SDK:n:
| Functions | WebJobs med Webjobs-SDK:n | |
|---|---|---|
| Serverlös appmodell med automatisk skalning | ✔ | |
| Utveckla och testa i webbläsare | ✔ | |
| Betala per användning | ✔ | |
| Integrering med Logic Apps | ✔ | |
| Utlösarhändelser | Timer Azure Storage-köer och blobar Azure Service Bus köer och ämnen Azure Cosmos DB Azure Event Hubs HTTP/WebHook (GitHub, Slack) Azure Event Grid |
Timer Azure Storage-köer och blobar Azure Service Bus köer och ämnen Azure Cosmos DB Azure Event Hubs Filsystem |
| Språk som stöds | C# F# JavaScript Java Python PowerShell |
C#1 |
| Pakethanterare | NPM och NuGet | NuGet2 |
1 WebJobs (utan WebJobs SDK) stöder C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python med mera. Den här listan är inte omfattande. Ett WebJob kan köra vilket program eller skript som helst som kan köras i App Service-sandboxen.
2 WebJobs (utan WebJobsSDK:n) stöder NPM och NuGet.
Sammanfattning
Azure Functions ger mer produktivitet för utvecklare än Azure App Service WebJobs. Det har även fler alternativ för programmeringsspråk, utvecklingsmiljöer och Azure-tjänstintegrering och priser. I de flesta scenarierna är detta det bästa alternativet.
Här följer två scenarier för vilka WebJobs kan vara det bästa valet:
- Du behöver mer kontroll över den kod som lyssnar efter händelser,
JobHost-objektet. Functions erbjuder ett begränsat antal olika sätt för att anpassaJobHost-beteendet i host.json-filen. Ibland måste du behöva göra saker som inte kan anges av en sträng i en JSON-fil. Endast WebJobs-SDK:n låter dig konfigurera din egen återförsöksprincip för Azure Storage. - Du har en App Service-app för vilken du vill köra kodavsnitt, och du vill hantera dem tillsammans i samma Azure DevOps-miljö.
När det gäller andra scenarier där du vill köra kodfragment för att integrera Azure eller tjänster från tredje part, kan du välja Azure Functions via WebJobs med WebJobs-SDK:n.
Power Automate, Logic Apps, Functions och WebJobs tillsammans
Du behöver inte välja endast en av dessa tjänster. De integreras med varandra lika bra som med externa tjänster.
Ett flöde kan anropa en logikapp. En logikapp kan anropa en funktion, och en funktion kan anropa en logikapp. Läs t.ex. Skapa en funktion som kan integreras med Azure Logic Apps.
Integreringen mellan Power Automate, Logic Apps och Functions fortsätter att förbättras med tiden. Det går bra att skapa något i en tjänst och sedan använda detsamma i de andra tjänsterna.
Det finns mer information om integreringstjänster via följande länkar:
- Artikel av Christopher Anderson om hur man utnyttjar Azure Functions och Azure App Service i integreringsscenarier
- Artikel av Charles Lamanna om hur man förenklar integreringar
- Webbsändning med Logic Apps
- Power Automate vanliga frågor och svar
Nästa steg
Kom igång genom att skapa ditt första flöde, din första logikapp eller din första funktionsapp. Välj någon av följande länkar: