Thursday, 26 September 2019

Schedule Azure WebJobs Using Azure Logic Apps

In this article, we will see how to migrate Azure WebJobs from Azure Scheduler to Azure Logic Apps. As we all know, Azure Scheduler will become obsolete on December 31, 2019, after this, all Scheduler job collections and jobs will stop running and will be deleted from the system. In order to continue to use jobs, we must move Azure Schedulers to Azure Logic Apps as soon as possible. Azure Logic Apps have numerous features which are as below,
  • Uses a visual designer and connectors to integrate with more than 200 different services, including Azure Blob storage, Azure Service Bus, Microsoft Outlook, and SAP.
  • Manages each scheduled workload as a first-class Azure resource.
  • Runs multiple one-time jobs using a single logic app.
  • Sets schedules that automatically adjust to daylight saving time.
For more details about its features and usage, please refer to the below article.
Before going further, let’s know something Azure WebJobs.
 
WebJobs is a feature of Azure App Service that enables you to run a program or script in the same context as a web app, API app, or mobile app. There is no additional cost to use WebJobs. For more detail please refer to the below article.
Now, we will see step by step, how to schedule Azure WebJobs using Azure Logic Apps.
 
Step 1
 
Create and deploy an on-demand (triggered) job under Azure App Service. Click here to learn how to create and deploy a WebJob.


Create and deploy webjob
 
Step 2
 
Create a blank Logic App.
 
Logic App
 
Step 3
 
Edit the logic app and select a Recurrence type of Schedule trigger.
 
Logic App Designer
 
Step 4
 
Set the interval, as per your requirement. Also, you can set other parameters like Time Zone and Start Time as shown in the below image. In my case, I am going to set 1 minute without any extra parameter.
 
Logic App Designer
 
Step 5
 
After trigger configuration, now its time to set HTTP action with post method and basic authentication.
 
HTTP Request
  1. "inputs": {  
  2.    "authentication": {  
  3.     "password""password",  
  4.        "type""Basic",  
  5.        "username""$username"  
  6.         },  
  7.     "method""POST",  
  8.     "uri": https://appname-webjob.scm.azurewebsites.net/api/webjobtype/webjobname/run  
  9.   },  
HTTP Post
 
Notewe can get the basic authentication from publish profile of an application where we have deployed the WebJob.
 
Step 6
 
Run the Logic App and check the status under run history.
 
Logic App Run History
 
WebJob Run History
 
Note
You can download the code and copy and paste it in the code view. Change your credentials and URI according to your WebJob; your Recurrence type Logic App is ready.

Expected Results
 
The Logic App has configured correctly, and it is working as expected. It is running the Azure WebJob as per the set frequency. If there is an error in the WebJob then your run will fail, and you can see it under Run History.
 

Summary

 
In the above article, we have learned how to schedule the WebJobs using Azure Logic Apps. In reference to the article given above, we noticed that the Azure Scheduler is scheduled to retire fully on December 31, 2019, and All Scheduler job collections and jobs will stop running and they will be deleted from the system simultaneously. So, before that, we need to shift Azure Scheduler jobs to Azure Logic Apps.