Scanning Blob storage for viruses with Azure Functions and Docker

While working on a side project, someone asked me how to scan for viruses in a cloud native and serverless landscape. That made me think about a project I did a couple of years back. During that project we used ClamAV that was installed on a VM. We scanned files that end-users uploaded within an ASP.NET application, and everything was hosted on datacenter VMs somewhere in the Netherlands.

ClamAV® is an open source antivirus engine for detecting trojans, viruses, malware & other malicious threats.

In this blogpost I will show a proof of concept using a Docker image and Azure Functions to create a simple automated virusscanner for Azure Blob storage.

Continue reading “Scanning Blob storage for viruses with Azure Functions and Docker”

LogicApps monitoring with Log Analytics

Azure LogicApps are incredibly powerful and I believe it should be in every developers toolbox. Enterprise integrations, ready-to-use connectors and all of this with almost no code and serverless!

Alas monitoring and debugging are more complex. In this blog I will explain how to add LogicApps to Log Analytics, and even track custom properties for filtering and alerting. Keep on reading for the exciting stuff!

Continue reading “LogicApps monitoring with Log Analytics”

LogicApp Template Creator

When trying to put your LogicApp code in a CICD pipeline, it is always problematic getting your code into a proper template.
Obviously switching to ‘LogicApp Code View’ is an option, but there is a better solution to this problem.

LogicAppTemplate is a PowerShell commandlet that makes is very easy to get the content (even automatically) of the app and save it to disk.

The usage is very simple, open up a PowerShell window and execute the next command:
Check out this gist

Big thanks to Jeff Hollan who authored this!

Disappearing code in Logic Apps

Recently my team and I were building and debugging LogicApps. At one point we seemed to have disappearing code within our code of these apps.
Obviously something is wrong when we were editing these apps.

Please note that we’ve got many LogicApps with custom code and mappings that we code using the code view, because not all properties can be set using the designer.

The problem

The problem arises when you are in ‘Logic App Code View’, and switch to ‘Logic App Designer’.
When switching back, the following popup arises:

LogicAppProblem

In this case, we did not change anything, just switched to designer and back.
But, this is actually what triggers this problem.

Thanks to ‘Versions’ you can quickly see and use WinMerge (or any other tool) to compare the files:

codeview

In this sample, the ‘queueType’ magically disappeared, but in other cases other mappings of JSON object were deleted.

Conclusion

Always check, when the designer asks you to ‘Save changes’, if you actually made any changes.
I hope this helps someone out, it gave me and my team a real headache finding this out.

Debugging Azure Functions with LogicApps locally

Azure Functions are a great example of how serverless is conquering the cloud world we live in today. There are also many blogs in how-to-write-functions out there, of which the latest use the precompiled functions, in Visual Studio 2017.

Think of a scenario, where you want to test a LogicApp against your function, but that app obviously cannot connect to localhost. You have two options; You can deploy the Functions app to Azure and use remote debugging or you can use your own localhost, with the use of ngrok.

This blog will explain how to debug locally, when using other services in the cloud.
Continue reading “Debugging Azure Functions with LogicApps locally”