Deploy, Secure and Manage Azure Functions

Continuous Deployment

Your browser needs to be JavaScript capable to view this video

Try reloading this page, or reviewing your browser settings

This video segment discusses and demos continuous deployment with Azure functions.

Keywords

  • Github
  • Azure Devops
  • Bitbucket
  • Azure Functions
  • Azure

About this video

Author(s)
Sahil Malik
First online
21 December 2018
DOI
https://doi.org/10.1007/978-1-4842-4409-8_5
Online ISBN
978-1-4842-4409-8
Publisher
Apress
Copyright information
© Sahil Malik 2019

Video Transcript

Sahil Malik: Azure Functions supports continuous deployment from numerous source control repositories. So Bitbucket, Dropbox, Git or Mercurial, Git local repository, GitHub, certainly Azure DevOps, but even OneDrive. All of these are welcome to be used with continuous deployment with Azure Functions. Let’s see how this works.

Let’s see in practice how you can use continuous deployment to deploy Azure Functions. So I am in VSCode currently and I have authored an Azure Function. I have installed the Azure Function core tools and the VSCode Azure Functions extension using which I was able to author this particular function. I have chosen to author this function using JavaScript. This is just the basic, very simple function like the Hello World or query function that you know, you can create a. So basically you just go in here and you click this button to create a function. Just follow through the steps and Walla, you’d have this code. I also went ahead into DevOps and I created an organization for myself. And in the organization, I have checked in this cold inside of a project.

So you see I have a project there, PlayWithFunctions. Let’s go inside it. And here under Repos, I’ve chosen to add this PlayWithFunctions repo and you see here that I’ve checked in this code using basically just simple git and I’ve gone through a couple of commands just playing around with. There’s nothing special. Okay, so this code is set up in a repository that understands Git. Remember that Bitbucket, GitHub, all of those can work as well, but I’m demoing this using Azure DevOps.

And now let me go into my Azure portal right here and let’s go ahead and choose to create a new function app. So I’m going to say create a resource, look for Function App. I’ll just go through this Wizard. So here it’s going to start for function app. Let’s go ahead and select this. Click on Create and give it an app name. Let’s call this sahilfunctionapp. Let’s go ahead and put it in a resource group called sahil and I’ll just go with Consumption Plan. I’ll put it in East US. Now, this is important. You want to make sure that the run time stack matches the language you’re targeting. The default is .NET, but since I’m targeting JavaScript, I switched that to JavaScript. Storage account. Let’s go ahead and create a new one. I’ll leave Application Insights off for now. We’re really not using them for this demo and I’ll click on this Create button. Now, give it a moment for this to get created a minute so and let’s wait for this thing to get created.

In about a minute or so, you’ll see that your function app got deployed successfully, so let’s go ahead and click on this. Go to resource button and let’s look at our function app. So currently as expected, I have an empty function app and there are no functions in it because we haven’t created any functions. I can choose to click this plus button and create a function, but that’s not what we’re here for. What we want to do is that we want to deploy our function from this DevOps repository that I have, PlayWithFunctions. So how do we do that?

Go to Platform features and look for Deployment Center. And here you see, it’s just a Wizard that you have to go through. So there are a number of choices here. I’m going to go with Azure Repos. So it says you need to configure it, that’s easy enough. So let’s give ourselves a little more space here. So click on Continue. So I’m going to point it to the DevOps organization when logged in on both sides using the same LiveID. Let’s pick the brand so you can have staging and master and you can deploy it accordingly. I’m going to click on Continue and I’m going to click on Finish.

So in a moment it says setting up deployment and here it is pointed itself to this repo. You can see that under Deployment Credentials, it went ahead and created an App Credential using which it is getting all the details. You can also choose to specify User Credentials. Let’s close this because there’s something interesting going on back here. It says it was able to pull in the last commit, which I simply called another commit and it is now running the deployment or my function. Let’s give it a second. Hit the refresh button here and you see here, this function shows up here. The code in this function is identical to the code that I’ve checked in this code over here, that code that has been checked in into the repo. So let’s give a moment for this to load.

And once this load, notice that it is Read only. You can choose to make it Read/Write if you want to play with it. But the idea is that the next time I push an update into my source control repo, it will overwrite this. But right now, it’s Read only and that’s fine for me to test. So I’m going to click on this Run button. And on the right-hand side, you should see my function running. So it says Bad Request because I did not pass in a query string or the request body. Well, that’s actually according to the logic I have here. So I have to pass in the name. This is the default function code that gets generated for me. So let me go ahead and pass in the name header and let’s go ahead and run this again.

I’m sorry, actually, it’s in the request body like this, we don’t need that. Let’s click on Run and you see it says Hello Sahil. Now what’s really cool is that I’m going to go into VSCode now and here I’m going to make a little change. So instead of Hello, I’m going to say Good morning. Okay, so just a minor code change, just to try this out. And I’m going to go here and I’m going to take git status. So I’ve made a change to one file, so I’m going to say git add . && git commit -m “Small change” && git push.

Now, if you’re using DevOps, you would probably make this change in a branch and you would have all sorts of policies and pipelines run, all sorts of interesting stuff run and then things get committed into master. I’m just taking a shortcut here by committing directly to master but check this out. Now there’s the code showed up in master, let’s go back here into my function app and you see that the small change that was able to pick it up on its own and the code shows up here. And if I run this, let’s scroll to the right. You should see that my function app has got updated and this is how you can connect continuous deployment with Azure Functions.