Introducing Cake Kudu Client

693 reads

Ship remotely to Azure App Services using Cake

I’ve previously written how you on Azure App Services itself can build and deploy your web applications and functions utilizing Cake build scripts and the Cake.Kudu addin.

While it’s fairly easy to get going, just add a build script and connect it to your source code repository of choice, for some scenarios it makes more sense to ship your application prebuilt.

A few of those scenarios can be

Static web sites , where it requires more resources build, than to serve.

, where it requires more resources build, than to serve. Multi region apps , where you deploy same bits to multiple sites and makes sense to just build it once.

, where you deploy same bits to multiple sites and makes sense to just build it once. Build requirements , by building on App services you’re limited to the tooling it has pre-installed or it’s environment supports.

, by building on App services you’re limited to the tooling it has pre-installed or it’s environment supports. Private resources, using private nugget feeds or other compile time sensitive information can be cumbersome, and might not be what you want to have lying around on your web site.

Cake Kudu Client to the rescue

Kudu the “engine” behind Azure web and function apps provides and http-based API, which deploy is one of the features it offers. And it’s this API the “Cake Kudu Client” provides a typed C# API which makes it close to a one-liner to deploy from a directory or zip file.

What the above does is essentially

From environment variables gets Kudu endpoint for your App Service (i.e. https://{yoursite}.scm.azurewebsites.net), user name and password. Instantiate a new client using the KuduClient alias. Use the ZipDeployDirectory method which with zip that folder in memory and deploy it.

A real world example using this with the static site generator WYAM could look something like this:

Not just deployments

Deployments is only one of the features the Cake Kudu Client addin handles

Execute remote shell commands

Enumerate remote files and directories on

Upload files and directories to AppService

Download files and directories from AppService

Deploy to AppService from local folder or zip file

and more features are planned.

You can find the complete list of available methods with examples are available on the Cake web site at:

https://cakebuild.net/dsl/kudu/

Tags