Deploying Functions with ARM templates and inline code

Last week I started a mini-series that focused on [Azure Functions and DevOps. The tooling is still being worked and in the interim we need a solution in order to do proper CI/CD with Azure Functions. In this post we're looking into how to deploy Azure Functions using ARM Templates only. That's correct. This is a one stop solution but requires that you include your function code inline to the ARM JSON template. This is somewhat undocumented and I had to figure out how do it with help from the Azure PG (product group). The good parts Obviously this …[read more]


Azure Functions custom logging with AppInsights

You can tell I'm working on [Azure Functions](https://azure.microsoft.com/en-us/services/functions/" target="_blank) from the frequency of posts. This one focuses on logging. Functions by default generate plenty of logs which you can view in the portal or download using the [Kudu REST API](https://github.com/projectkudu/kudu/wiki/REST-API" target="_blank). This is great and it comes out of the box without you having to configure a single thing. However, what if you have some custom, complex logic that you want to capture and log. And I guess that in …[read more]


Deploying Azure Functions with ARM templates and the Kudu REST API

This approach is by far my preferred and favourite. Ok, it's not perfect but I believe that it provides the most open source, versatile and flexible way to deploy your functions using any tool and any platform. This one does not require you to install any special tools other than the Azure CLI on your build server. In this step, rather than trying to do everything from one file, i.e. the ARM template, I decided to go with the 2 step approach: Deploy the ARM template with the Application Service and Function(s) structure Deploy the Function(s) code. …[read more]


DevOps with Azure Functions - a holistic approach

Azure Functions is Microsoft's answer the serverless architecture. They are very popular due to the incredible integration they provide with Azure Services, SaaS providers and on-premise application. It definitely drives the whole microservice architecture design which is built on top of Azure's established Platform-as-a-Service. And enables developers to think about APIs and integration in a totally different way - serverless (even though there are still servers under the hood). It's even more exciting seeing so many organisations embarking in larger scale projects that take advantage of Functions and LogicApps. If you want to know more about the whole serverless design, …[read more]


Install and run the Azure CLI on the Windows Subsystem for Linux (WSFL)

I've [blogged before](GHOST_URL/working-with-bash-on-ubuntu-on-windows-10/" target="_blank) about the tremendous work that the Windows team has done to bring a truly integrated Linux subsystem on Windows 10. That's right, you can use the native Linux (user and kernel modes) inside Windows without the need of a VM, Container or any other emulator. This has opened up so many possibilities and brings a very powerful tool to Windows. Using native Bash is a dream come true for many people and even me, whose use of it is limited to 0.05% of its true capabilities!!! Do I care? …[read more]


Invoke Azure LogicApp over HTTPS with HTTP triggers

Ah [LogicApps](https://docs.microsoft.com/en-us/azure/app-service-logic/app-service-logic-what-are-logic-apps" target=_blank), the IFTT of Azure, the very young and lightweight "cousin" of Microsoft BizTalk. LogicApps is a great integration and workflow service that works great not only with Azure services but also with many SaaS products and 3rd party services. Think of LogicApps as a tool that you attach connectors to communicate with various components (sFTP, blob storage, email, Twitter etc) and grab data that you can manipulate or pass directly to another service. What I described here is IFTT but for enterprises with scalability, performance …[read more]


List all RBAC permissions for all resources in Azure

I wanted to figure out how to obtain a list of all Resource Based Access Control[RBAC](https://docs.microsoft.com/en-us/azure/active-directory/role-based-access-control-configure" target="_blank) permissions for all the resources in one of my Azure subscription. This is a great way for Azure administrators to run reports that can quickly identify any issues with wrongly assigned permissions. To do this quickly and efficiently while automating the whole process I'll use PowerShell. The PoSH script is fairly straightforward and only requires a few steps: Login to Azure Select the right subscription (optional, if more than one) Retrieve …[read more]


2016 in review

2016, what a year! I know that for many, including celebrities, it hasn’t been the best of years. We lost quite a few along the way. However, I'll try to put a positive spin as I look back through 2016. I like to do this because it sets the tone for 2017, the year to come. So, this is my retrospective on 2016, a year that has been incredible for me, from many perspectives. I've included both my failures and successes as I hold myself accountable to my promises. 2016 promises and resolutions My primary goal was to intensify …[read more]