Azure WebJobs Part 1 : Créer son premier azure web job

Aujourd’hui, nous allons voir comment créer un simple WebJobs à partir d’un process de type console. Pour rappel, le WebJobs supporte les types de scripts suivant :

  • cmd, .bat, .exe
  • .sh
  • .php (avec l’utilisation de Php)
  • .py (avec l’utilisation de Python)
  • .js (avec l’utilisation de Nodejs)
  • powershell

Le but du webjob est d’illustrer le scénario suivant :

Purger la base de données SQL de log d’un web site en gardant une rétention de N Jours.

Nous allons donc créer un petit programme console permettant de se connecter à la base de données et faire la purge de la table de log.

Création de l’application console


class Program
{
static void Main(string[] args)
{
try
{
var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
var queryString = String.Format("DELETE FROM  dbo.Logs where [DateTimeUtc] < convert(datetime2,'{0}') ", DateTime.UtcNow.AddMinutes(-3000).ToString("O"));
using (var connection = new SqlConnection(
connectionString))
{
var command = new SqlCommand(
queryString, connection);
connection.Open();
var query = command.ExecuteNonQuery();
Console.WriteLine("Job éxecuté @ {0} : nombre de ligne supprimée : {1}", DateTime.UtcNow, query);
}
}
catch (Exception e)
{

Console.WriteLine(e.Message);
}
}
}
}

Vous remarquerez que j’ai fait appel à ConfigurationManager.ConnectionString, ceci permet en général d’accéder au information de l’app.config pour une application console. Dans le cas de notre webjob, cela va nous permettre d’accéder à notre web.config, ou plus généralement à la configuration de notre site sur le portail :

image

Je peux donc véritablement faire un job “commun” que je pourrais déployer sur chacun de mes sites webs. Sans changement de code.

Création du job

Pour créer un webJob, tout d’abord rendons-nous sur l’interface des Web Sites. Une fois le site créé, dans la partie de gestion, un nouvel onglet a fait son apparition :

image

Le nouvel onglet ainsi dévoilé nou permet de créer un webjob :

image

Dans la fenêtre de création des Jobs, les choix suivants sont disponible :

image

  • Nom du job : unique dans le web site
  • Contenu : un fichier zip contenant les éléments permettant l’exécution du scripts, cela correspond à l’ensemble des références nécessaires pour exécuter le scripts. Lors de l’upload, le process dézippe le fichier et regarde l’ensemble des fichiers situés au premier niveau pour détecter un script exécutable.
  • Type de job : 3 types de jobs sont disponible
    • Exécution continue
    • A la demande
    • Planifié

Une fois le job téléchargé, un nouveau tableau apparait nous permettant de faire la supervision du jo.éimage

Une url de monitoring située sur la droite nous donne l’accès aux log d’exécution du job.

L’url est du type :

Si il vous est demander un mot de passe lors de l’accès à ce lien, il suffit d’utiliser les crédentials GIT de vos publications WebSite.

Avant la toute première exécution, nous avons un tableau vide :

image

Exécution du job

Après avoir sélectionner le job sur l’interface précédente, nous avons un bouton dans la barre contextuelle permettant de démarrer le job de manière unitaire. Une fois le job exécuté correctement, l’interface se met à jour  et nous distinguons immédiatement l’état de la dernière exécution:

image

Enfin le tableau de supervision de l’éxecution de ce job nous permet de connaitre le temps d’exécution ainsi que les éléments de sortie de ce job :

image

Nous pouvons remarquer que nous avons un output file de disponible. Ce fichier contient l’ensemble des écritures que nous avons pu faire avec Console.Writeline dans notre programme console :

image

Nous avons donc vu comment exécuter une simple application console en tant que Web Job. Mais les choses sont encore plus interessantes avec l’utilisation du SDK… Clignement d'œil

Advertisement
This entry was posted in Azure, Français, Microsoft and tagged , , . Bookmark the permalink.

1 Response to Azure WebJobs Part 1 : Créer son premier azure web job

  1. Pingback: A la découverte des Windows Azure Web Jobs (Intro) | Jérémie – an other BizTalker

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s