Confrontare Flow, App per la logica, Funzioni e Processi WebCompare Flow, Logic Apps, Functions, and WebJobs

Questo articolo confronta i servizi cloud Microsoft seguenti:This article compares the following Microsoft cloud services:

Tutti questi servizi consentono di risolvere i problemi di integrazione e automatizzare i processi aziendali.All of these services can solve integration problems and automate business processes. Possono definire input, azioni, condizioni e outputThey can all define input, actions, conditions, and output. e ognuno può essere eseguito in base a una pianificazione o un trigger.You can run each of them on a schedule or trigger. Ogni servizio offre tuttavia vantaggi esclusivi e questo articolo ne illustra le differenze.But each service has unique advantages, and this article explains the differences.

Confrontare Microsoft Flow e App per la logica di AzureCompare Microsoft Flow and Azure Logic Apps

Flow e App per la logica sono servizi di integrazione incentrati sulla finestra di progettazione che consentono di creare flussi di lavoro.Flow and Logic Apps are both designer-first integration services that can create workflows. Entrambi i servizi si integrano con varie applicazioni SaaS e aziendali.Both services integrate with various SaaS and enterprise applications.

Flow si basa su App per la logicaFlow is built on top of Logic Apps. ed entrambi condividono la stessa finestra di progettazione dei flussi di lavoro e gli stessi connettori.They share the same workflow designer and the same Connectors.

Flow consente a qualsiasi impiegato di eseguire semplici integrazioni, ad esempio un processo di approvazione su una raccolta documenti di SharePoint, senza ricorrere a sviluppatori o professionisti IT.Flow empowers any office worker to perform simple integrations (for example, an approval process on a SharePoint Document Library) without going through developers or IT. D'altra parte, App per la logica consente di abilitare integrazioni avanzate, come i processi B2B, in cui sono necessarie procedure di sicurezza e la metodologia DevOps a livello di organizzazione.On the other hand, Logic Apps can enable advanced integrations (for example, B2B processes) where enterprise-level DevOps and security practices are required. È normale che la complessità di un flusso di lavoro aziendale aumenti nel tempo.It's typical for a business workflow to grow in complexity over time. Di conseguenza, è possibile iniziare con un flusso e quindi convertirlo in un'app per la logica in base alle esigenze.Accordingly, you can start with a flow at first, then convert it to a logic app as needed.

La tabella seguente consente di determinare se per una data integrazione è più appropriato usare Flow o App per la logica.The following table helps you determine whether Flow or Logic Apps is best for a given integration.

FlussoFlow App per la logicaLogic Apps
UtentiUsers Impiegati, utenti aziendali, amministratori di SharePointOffice workers, business users, SharePoint administrators Integratori e sviluppatori professionisti, professionisti ITPro integrators and developers, IT pros
ScenariScenarios Self-serviceSelf-service Integrazioni avanzateAdvanced integrations
Strumento di progettazioneDesign Tool Nel browser e app per dispositivi mobili, solo interfaccia utenteIn-browser and mobile app, UI only Nel browser e in Visual Studio è disponibile la visualizzazione CodiceIn-browser and Visual Studio, Code view available
Application Lifecycle Management (ALM)Application Lifecycle Management (ALM) Progettare ed eseguire test in ambienti non di produzione, alzare di livello quando si è pronti.Design and test in non-production environments, promote to production when ready. DevOps: controllo del codice sorgente, test, supporto, automazione e gestibilità in Azure Resource ManagerDevOps: source control, testing, support, automation, and manageability in Azure Resource Management
Esperienza di amministrazioneAdmin Experience Gestire ambienti di Flow e criteri di prevenzione della perdita dei dati, tenere traccia delle licenze https://admin.flow.microsoft.comManage Flow Environments and Data Loss Prevention (DLP) policies, track licensing https://admin.flow.microsoft.com Gestire gruppi di risorse, connessioni, gestione dell'accesso e registrazione https://portal.azure.comManage Resource Groups, Connections, Access Management, and Logging https://portal.azure.com
SicurezzaSecurity Log di controllo del Centro sicurezza e conformità di Office 365, prevenzione della perdita dei dati, crittografia di dati inattivi per dati sensibili e così via.Office 365 Security and Compliance audit logs, Data Loss Prevention (DLP), encryption at rest for sensitive data, etc. Garanzie di sicurezza di Azure: Sicurezza di Azure, Centro sicurezza, log di controllo e altro.Security assurance of Azure: Azure Security, Security Center, audit logs, and more.

Confrontare Funzioni di Azure e App per la logica di AzureCompare Azure Functions and Azure Logic Apps

Funzioni e App per la logica sono servizi di Azure che abilitano i carichi di lavoro senza server.Functions and Logic Apps are Azure services that enable serverless workloads. Funzioni di Azure è un servizio di calcolo senza server, mentre App per la logica di Azure fornisce flussi di lavoro senza server.Azure Functions is a serverless compute service, while Azure Logic Apps provides serverless workflows. Entrambi i servizi possono creare orchestrazioni complesse.Complex orchestrations can be created by both. Un'orchestrazione è una raccolta di funzioni o passaggi, definiti azioni in App per la logica, che vengono eseguito per completare un'attività complessa.An orchestration is a collection of functions or steps, called actions in Logic Apps, that are executed to accomplish a complex task. Per elaborare ad esempio un batch di ordini è possibile eseguire molte istanze di una funzione in parallelo, attendere il completamento di tutte le istanze e quindi eseguire una funzione che calcola un risultato sull'aggregazione.For example, to process a batch of orders you might execute many instances of a function in parallel, wait for all instances to finish, and then execute a function that computes a result on the aggregate.

Per Funzioni di Azure è possibile sviluppare orchestrazioni scrivendo codice e usando l'estensione Funzioni permanenti (in anteprima).For Azure Functions, you develop orchestrations by writing code and using the Durable Functions extension (in preview). Per App per la logica di Azure è possibile creare orchestrazioni usando un'interfaccia utente grafica o modificando i file di configurazione.For Logic Apps, you create orchestrations by using a GUI or editing configuration files.

È possibile combinare i servizi quando si compila un'orchestrazione, chiamando funzioni da app per la logica e chiamando app per la logica da funzioni.You can mix and match services when you build an orchestration, calling functions from logic apps and calling logic apps from functions. Scegliere il modo in cui compilare ogni orchestrazione in base alle funzionalità dei servizi o delle preferenze personali.Choose how to build each orchestration based on the services' capabilities or your personal preference. La tabella seguente elenca alcune differenze essenziali tra questi servizi:The following table lists some of the key differences between these services:

Funzioni permanentiDurable Functions App per la logicaLogic Apps
Sviluppo.Development Code-first (imperativo)Code-first (imperative) Incentrato sulla finestra di progettazione (dichiarativo)Designer-first (declarative)
ConnettivitàConnectivity Circa una dozzina di tipi di associazioni incorporati, scrittura di codice per associazioni personalizzateAbout a dozen built-in binding types, write code for custom bindings Grande raccolta di connettori, Enterprise Integration Pack per scenari B2B, compilazione di connettori personalizzatiLarge collection of connectors, Enterprise Integration Pack for B2B scenarios, build custom connectors
AzioniActions Ogni attività è una funzione di Azure; scrittura di codice per funzioni di attivitàEach activity is an Azure function; write code for activity functions Grande raccolta di azioni predefiniteLarge collection of ready-made actions
MonitoraggioMonitoring Azure Application InsightsAzure Application Insights Portale di Azure, Operations Management Suite, Log AnalyticsAzure portal, Operations Management Suite, Log Analytics
GestioneManagement API REST, Visual StudioREST API, Visual Studio Portale di Azure, API REST, PowerShell, Visual StudioAzure portal, REST API, PowerShell, Visual Studio
Contesto di esecuzioneExecution context Possibilità di esecuzione in locale o sul cloud.Can run locally or in the cloud. Esecuzione solo sul cloud.Runs only in the cloud.

Confrontare Funzioni e Processi WebCompare Functions and WebJobs

Analogamente a Funzioni di Azure, Processi Web del servizio app di Azure con WebJobs SDK è un servizio di integrazione di tipo code first progettato per gli sviluppatori.Like Azure Functions, Azure App Service WebJobs with the WebJobs SDK is a code-first integration service that is designed for developers. Entrambi i servizi si basano sul servizio app di Azure e supportano funzionalità come integrazione del controllo del codice sorgente, autenticazione e monitoraggio con l'Integrazione di Application Insights.Both are built on Azure App Service and support features such as source control integration, authentication, and monitoring with Application Insights integration.

Processi Web e WebJobs SDKWebJobs and the WebJobs SDK

La funzionalità Processi Web del servizio app consente di eseguire uno script o un frammento di codice nel contesto di un'app Web del servizio app.The WebJobs feature of App Service enables you to run a script or code in the context of an App Service web app. WebJobs SDK è un framework progettato per Processi Web che semplifica il codice scritto in risposta a eventi diversi nei servizi di Azure.The WebJobs SDK is a framework designed for WebJobs that simplifies the code you write to respond to events in Azure services. Ad esempio, è possibile rispondere alla creazione di un BLOB di un'immagine in Archiviazione di Azure creando un'immagine di anteprima.For example, you could respond to the creation of an image blob in Azure Storage by creating a thumbnail image. WebJobs SDK viene eseguito come un'applicazione console .NET, che è possibile distribuire in un processo Web.The WebJobs SDK runs as a .NET console application, which you can deploy to a WebJob.

Processi Web e WebJobs SDK costituiscono una valida soluzione se usati insieme, ma è possibile usare Processi Web senza WebJobs SDK e viceversa.WebJobs and the WebJobs SDK work best together, but you can use WebJobs without the WebJobs SDK and vice versa. Un processo Web può eseguire qualsiasi programma o script eseguibile nella sandbox del servizio app.A WebJob can run any program or script that runs in the App Service sandbox. Un'applicazione console di WebJobs SDK può essere eseguita ovunque siano eseguibili le applicazioni console, ad esempio nei server locali.A WebJobs SDK console application can run anywhere console applications run, such as on-premises servers.

Tabella di confrontoComparison table

Basandosi su WebJobs SDK, Funzioni di Azure condivide molti degli stessi trigger di evento e delle connessioni ad altri servizi di Azure.Azure Functions is built on the WebJobs SDK, so it shares many of the same event triggers and connections to other Azure services. Ecco alcuni fattori da prendere in considerazione per la scelta tra Funzioni di Azure e Processi Web con WebJobs SDK:Here are some factors to consider when choosing between Azure Functions and WebJobs with the WebJobs SDK:

FunzioniFunctions Processi Web con WebJobs SDKWebJobs with WebJobs SDK
Modello di app senza server con ridimensionamento automaticoServerless app model with automatic scaling
Sviluppo e test nel browserDevelop and test in browser
Pagamento a consumoPay-per-use pricing
Integrazione con App per la logicaIntegration with Logic Apps
Eventi di attivazioneTrigger events TimerTimer
Code e BLOB di Archiviazione di AzureAzure Storage queues and blobs
Code e argomenti del bus di servizio di AzureAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Hub eventi di AzureAzure Event Hubs
HTTP/WebHook (GitHub, Slack)HTTP/WebHook (GitHub, Slack)
Griglia di eventi di AzureAzure Event Grid
TimerTimer
Code e BLOB di Archiviazione di AzureAzure Storage queues and blobs
Code e argomenti del bus di servizio di AzureAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Hub eventi di AzureAzure Event Hubs
File systemFile system
Lingue supportateSupported languages C#C#
F#F#
JavaScriptJavaScript
Java (anteprima)Java (preview)
C#1C#1
Gestione pacchettiPackage managers NPM e NuGetNPM and NuGet NuGet2NuGet2

1 Processi Web (senza WebJobs SDK) supporta C#, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python e altro ancora.1 WebJobs (without WebJobs SDK) supports C#, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, and more. Non si tratta di un elenco completo. Un processo Web può eseguire qualsiasi programma o script eseguibile nella sandbox del servizio app.This is not a comprehensive list; a WebJob can run any program or script that can run in the App Service sandbox.

2 Processi Web (senza WebJobs SDK) supporta NPM e NuGet.2 WebJobs (without WebJobs SDK) supports NPM and NuGet.

SummarySummary

Funzioni di Azure offre maggiore produttività per gli sviluppatori e altre opzioni per i linguaggi di programmazione, gli ambienti di sviluppo e l'integrazione con i servizi di Azure, oltre a nuove opzioni relative ai prezzi.Azure Functions offers greater developer productivity, more programming language options, more development environment options, more Azure service integration options, and more pricing options. Per la maggior parte degli scenari, è la scelta migliore.For most scenarios, it's the best choice.

Di seguito sono riportati due scenari per cui Processi Web può costituire una valida soluzione:Here are two scenarios for which WebJobs may be the best choice:

  • È necessario un maggior controllo sul codice in ascolto degli eventi, l'oggetto JobHost.You need more control over the code that listens for events, the JobHost object. Funzioni offre un numero limitato di modalità di personalizzazione del comportamento di JobHost nel file host.json.Functions offers a limited number of ways to customize JobHost behavior in the host.json file. In alcuni casi è necessario eseguire operazioni che non possono essere specificate da una stringa in un file JSON.Sometimes you need to do things that can't be specified by a string in a JSON file. Ad esempio, solo WebJobs SDK consente di configurare un criterio di ripetizione dei tentativi personalizzato per Archiviazione di Azure.For example, only the WebJobs SDK lets you configure a custom retry policy for Azure Storage.
  • È disponibile un'app del servizio app per cui si vogliono eseguire frammenti di codice e avere la possibilità di gestirli insieme nello stesso ambiente DevOps.You have an App Service app for which you want to run code snippets, and you want to manage them together in the same DevOps environment.

Per altri scenari in cui si vogliono eseguire frammenti di codice per l'integrazione con i servizi di Azure o di terze parti, preferire Funzioni di Azure a Processi Web con WebJobs SDK.For other scenarios where you want to run code snippets for integrating Azure or third-party services, choose Azure Functions over WebJobs with the WebJobs SDK.

Flow, App per la logica, Funzioni e Processi Web insiemeFlow, Logic Apps, Functions, and WebJobs together

Non è necessario scegliere solo uno di questi servizi, dal momento che si integrano tra loro così come con i servizi esterni.You don't have to choose just one of these services; they integrate with each other as well as they do with external services.

Un flusso può chiamare un'app per la logica.A flow can call a logic app. Un'app per la logica può chiamare una funzione e una funzione può chiamare un'app per la logica.A logic app can call a function, and a function can call a logic app. Vedere ad esempio Creare una funzione che si integra con le app per la logica di Azure.See, for example, Create a function that integrates with Azure Logic Apps.

L'integrazione tra Flow, App per la logica e Funzioni continua a migliorare nel tempo.The integration between Flow, Logic Apps, and Functions continues to improve over time. È possibile creare un elemento in un servizio e usarlo in altri servizi.You can build something in one service and use it in the other services.

Passaggi successiviNext steps

Iniziare creando il primo flusso, la prima app per la logica o la prima app per le funzioni.Get started by creating your first flow, logic app, or function app. Fare clic su uno di questi collegamenti:Click any of the following links:

In alternativa, è possibile ottenere altre informazioni su questi servizi di integrazione usando i collegamenti seguenti:Or, get more information on these integration services with the following links: