Il y a plusieurs options ici dans App Service. Je ne parlerai pas de Logic Apps ou d'Azure Automation, qui touchent également cet espace.
Azure WebJobs
Cet article est honnêtement la meilleure explication, mais je vais résumer ici.
WebJobs à la demande ou WebJobs planifiés ou WebJobs déclenchés
Les WebJobs déclenchés sont des WebJobs qui sont exécutés une seule fois lorsqu'une URL est appelée ou lorsque la fonction la propriété schedule est présente dans schedule.job . Les WebJobs programmés sont simplement des WebJobs pour lesquels un job Azure Scheduler a été créé pour appeler notre URL selon un calendrier, mais nous supportons également la propriété schedule, comme mentionné précédemment.
Résumé :
-
+
Exécutable/script sur demande
-
+
Exécutions programmées
-
-
Il faut déclencher via le point de terminaison .scm
-
-
La mise à l'échelle est manuelle
-
-
VM est toujours nécessaire
WebJobs en continu (non SDK)
Ces emplois sont éternels et nous les réveillerons quand ils s'effondreront. Vous devez activer l'option Always On pour qu'ils fonctionnent, ce qui signifie que vous devez les exécuter à partir du niveau de base.
Résumé :
-
+
Exécutable/script toujours en cours d'exécution
-
-
Nécessite d'être toujours en marche - Niveau de base et supérieur
-
-
VM est toujours nécessaire
WebJobs en continu avec le WebJobs SDK
Ce n'est pas du tout un point de vue "WebJobs la fonctionnalité". En fait, nous disposons d'un kit de développement logiciel (SDK) que nous avons écrit pour les WebJobs et qui vous permet d'exécuter du code en fonction de simples déclencheurs. J'en parlerai plus tard.
Résumé :
-
+
Exécutable/script toujours en cours d'exécution
-
+
Journaux et tableaux de bord plus riches
-
+
Prise en charge des déclencheurs et des tâches à long terme
-
-
Nécessite d'être toujours en marche - Niveau de base et supérieur
-
-
La mise à l'échelle est manuelle
-
-
La mise en route peut être un peu fastidieuse
-
-
VM est toujours nécessaire
Azure WebJobs SDK
Azure WebJobs SDK est un SDK complètement séparé de WebJobs, la fonctionnalité de la plateforme. Il est conçu pour être exécuté dans un WebJob, mais peut être exécuté n'importe où. Nous avons des clients qui les exécutent sur des rôles de travailleur et même sur prem ou d'autres nuages, bien que le soutien ne soit que le meilleur effort.
Le SDK a pour but de faciliter l'exécution d'un code en réaction à un événement et de faciliter la liaison avec les services, etc. Ce sujet est honnêtement mieux couvert dans un docs mais le cœur de tout cela est la nature "événement" + "code". Nous avons également réalisé des travaux d'extension intéressants, mais ils sont secondaires par rapport à l'objectif principal.
Résumé :
- La plupart d'entre eux sont mentionnés ci-dessus
-
+
Vous pouvez étendre et exécuter ce que vous voulez. Contrôle total.
-
-
Le truc HTTP est un peu bancal, mais il fonctionne.
Fonctions Azure
Azure Functions a pour but de reprendre l'objectif principal du SDK WebJobs, de l'héberger en tant que service et de faciliter la mise en œuvre avec d'autres langages. Nous avons également introduit le concept de "Serverless" ici parce que cela avait beaucoup de sens de le faire - nous savons comment notre SDK évolue, donc nous pouvons faire des choses intelligentes pour vous.
Azure Functions est une expérience très lourdement gérée. Nous ne prenons pas en charge l'apport de votre propre hôte. Actuellement, nous ne prenons pas en charge les extensions personnalisées, mais c'est un sujet que nous étudions. Nous avons une opinion bien arrêtée sur ce que vous pouvez et ne pouvez pas faire, mais pour les choses que nous permettons, elles sont astucieuses, faciles à utiliser et à gérer.
La plupart des choses que nous avons faites pour améliorer les fonctions passent par le SDK WebJobs, cependant. Par exemple, nous allons télécharger un nouveau NuGet pour WebJobs qui augmente considérablement la vitesse de journalisation, ce qui a des avantages énormes pour les utilisateurs de WebJobs SDK. En livrant Functions en tant que "WebJobs SDK as a Service", nous avons vraiment amélioré un grand nombre de problèmes d'expérience.
-
+
De nombreuses langues sont prises en charge
-
+
Entièrement géré, mise à l'échelle dynamique
-
+
Portail facile à utiliser avec une interface utilisateur pour gérer les connexions, etc.
-
-
Hôte non personnalisable (pour l'instant)
-
~
Fonctionne dans une "application" distincte, ce qui nécessite une certaine configuration dans votre dépôt, mais facilite grandement la maintenance à long terme.
-
~
Pas d'outillage (encore) Certains outils sont maintenant en version alpha ou en version préliminaire. https://www.npmjs.com/package/azurefunctions (mise à jour février 2017 : Les outils Visual Studio pour Azure Functions sont désormais disponibles en avant-première : https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/ )
Je suis probablement partial puisque Functions est notre dernier et meilleur produit, mais n'hésitez pas à m'envoyer d'autres contre pour Functions.
Je finirai probablement par publier un blog qui en dira un peu plus, mais j'ai essayé de rester aussi succinct que possible pour ce forum.
12 votes
C'est un billet de blog que je dois. :) Je vais essayer de préparer une réponse, mais cela peut être un peu ouvert pour Stack Overflow, donc vous devrez peut-être poser la question sur MSDN si elle est fermée.
0 votes
Bel article de blog (court) sur ce sujet geekswithblogs.net/tmurphy/archive/2016/06/02/
0 votes
@chris-anderson-msft Peut-on exécuter PowerShell en tant que webjob ? Peut-on installer un package PowerShell sur Webjob ?