paint-brush
Introducing Cake Kudu Clientby@mattias
766 reads
766 reads

Introducing Cake Kudu Client

by Mattias KarlssonFebruary 8th, 2018
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

I’ve previously written how you on Azure App Services itself can build and deploy your web applications and functions utilizing <a href="https://cakebuild.net/" target="_blank">Cake</a> build scripts and the <a href="https://www.nuget.org/packages/Cake.Kudu" target="_blank">Cake.Kudu</a> addin.
featured image - Introducing Cake Kudu Client
Mattias Karlsson HackerNoon profile picture

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.
  • Multi region apps, 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.
  • 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

  1. From environment variables gets Kudu endpoint for your App Service (i.e. https://{yoursite}.scm.azurewebsites.net), user name and password.
  2. Instantiate a new client using the KuduClient alias.
  3. 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/


⚡Delivering Functions with Cake🍰_Azure Functions custom deployment scripts in C#_hackernoon.com