I am putting together a series for people who are excited to bring Azure into their software development life cycle and use Azure cloud’s extensive services to their full potential.
In this series, I will cover as below:
- Getting Started with Azure Development, Create App Service Plan and Publish MVC project using Visual Studio
- Deployment Slots and Slot Swap on Azure App Service using Visual Studio and Azure SDK
- Remote debugging App Service using visual Studio, monitoring and configuring alerts
- Diagnostic logs, live stream, process explorer and KUDU
- How to use Azure SQL Database in Dot.net Applications
- How to use Azure DocumentDB or Azure Cosmos DB in our Dot.net Applications
- How to use Visual Studio Team Service to do continuous Integration and continuous delivery
- Azure storage data services types and how to store files in azure storage account 1/2
- Azure storage data services types and how to store files in azure storage account 2/2
- How to use Azure Functions and trigger on new image/blob creation in Azure Storage using BlobTrigger 1/2
- How to use Azure Functions and trigger on new image/blob creation in Azure Storage using BlobTrigger 2/2
If you do not know where to start, please check my blog post, which covers detail about getting subscription and setting up. In this series, we assume that you already have active Azure subscription and Visual Studio 2013 or later installed on your system.
10. How to use Azure Functions and trigger on new image/blob creation in Azure Storage using BlobTrigger 1/2
Azure Function is just a piece of code which will run upon a trigger or any supported events like, when adding something to container in Azure Storage, or on when new item is added in Queue, or you can schedule to run at a particular time. If you have used Web Jobs on Azure, then think of Azure Functions as an evolution of the web Jobs, which support integration with wide variety of Azure services, such as Azure cosmosDB, Azure EventHub, Azure Mobile Apps, Azure Storage and many more, which enable us to take action when a particular event is triggered. Azure Function is implementing the concept known server less computing and is used to build Nano-services.
Below is a list of supported triggers for Azure functions.
- Http Trigger
- Timer Trigger
- Generic Webhock
We will use blob trigger as the name implies this will be triggered on blob, detail is coming in this post shortly.
- Queue Trigger
- EventHub Trigger
- ServiceBus Queue Trigger
- ServiceBus Topic Trigger
In this post, we will learn about Blob Trigger since we have learned to upload images as block blobs so it is obligatory to extend the functionality using Azure Functions. We will create a jpg version of uploaded png image on blob trigger and store it back in blob storage under same container, although there is an option to store the resultant image to another container as well.
Before we begin, let us take a look at pricing aspect of Azure functions, there are two basic offering, one is to use your existing App Service Plan to run functionApp in it, and another way is to calculate the number of times the function executes and they have a specific name for this called consumption plan. Since we already have App Service Plan so we are going to use it to execute our functions. For pricing information.
Remember that consumption plan have many advantages over App service plan, as you are allowed to run about 400,000 GB-s execution time for free and if your function is not being used you do not need to pay any extra cost and for some reason if your function have to run 10 million time or experience exponential growth, then Azure will manage the resources behind the scene to make sure there are enough resources to execute your function on demand. On the other hand in App Service Plan you need to pay for App service Plan even if there is no execution of your function and you will manage the scaling and performance of the App service plan.
Create Function App
Go to Azure Portal | Add new | Search Function | choose Function App | click create
Figure 1 Create Function App
Fill fields, we are going to use our existing App Service Plan. We are using existing storage account as well; these were created by us earlier in this series. Click create, it should not take much time to create function app.
Figure 2 Create Function App with App Service Plan
Once created, go to resource. You will find the main overview similar to below: azure is continuously evolving and by the time, you read this below screen may have been changed.
Figure 3 Overview Azure Function
Click on “Functions”, you will see that we do not have any function as of yet, click on new function.
Figure 4 function listing
Create Blob Trigger
You can see that there are multiple trigger choices we have and Azure is keep adding more as days passing by. We are going to use Blob Trigger and we will be using C# as programming language.
Figure 5 Create New function
Now click on C# link in the Blob Trigger tile.
Figure 6 C# Blog trigger
Modify function name:
Figure 7 Modify function name
If you run the function now, you will get error as “Exception binding parameter ‘myBlob’. Microsoft.WindowsAzure.Storage: The remote server returned an error: (404) Not Found”. You can see it in logs window at the bottom.
We are getting this error because we have not configured the container path and the blob path in test window on the right does not exists. Let us do that now.
Figure 8 Run Function
As the post is getting long, I am going to extend it to part 2.
We will continue building our FunctionApp in next part How to use Azure Functions and trigger on new Item addition in Azure Storage using BlobTrigger 2/2