A lot of technical terms in the name of the article, right? Let's dive into it!
Why Azure Function App?
It is not a serious question! Azure Function App is a fantastic serverless infrastructure that allows you to execute your code within a secure environment.
What if you need to perform a maintenance task by schedule? Or execute a PowerShell script within your Azure subscripton to perform a specific operation?
Azure Function App might perform it for you!
There are challenges, of course. This article explains how to overcome them and have an automated pipeline that creates infrastructure and then builds and deploys Azure Function to the correct place!
Why private VNET?
That is the weirdest part. However, some companies prohibit the use of any Azure service with a publicly accessible interface!
There will be more on that later in this article.
Why Flex Consimption?
Microsoft
Having an Azure Storage Account is a must. The Azure Function App uses the Storage Account to store the Azure Function Code. However, Azure Storage Account is a publicly available service!
The Function App must be able to access the green circle on the next schema. But that means absolutely everyone (who has the permission, of course) can access it too!
More details you can find in the official Microsoft document
The pipeline first creates infrastructure according to all the steps mentioned above. Then, the pipeline deploys the code of the Azure Function to the infrastructure created on the first step.
The same pipeline supports two environments: DEV and PROD. The plan is to push all changes to the dev or dev_bicep branches to the DEV environment. Any changes made to the main branch will then be sent automatically to both the DEV and PROD environments.
You might find more details in the .
project.
I really prefer to use Terraform, and as soon as it supports Flex Consumption network integration, I will try to revive this project.
So, Terraform fails. But you can set up that Azure Function App configuration manually via the Portal. This implies that either the ARM Template or Bicep should function properly. I took the Microsoft Official Bicep Template, modified it to support network integration, and here it is, up and running.
As a result, I spent so many hours setting everything up, so I decided to share the findings and working example.
Questions, suggestions...
As you may have noticed, there are numerous areas for improvement. Or I could make a mistake that slipped out of my consciousness.
Please feel free to ask questions or share your suggestions. In fact, I need your feedback to understand where to dig next!
SOCIAL SHARE CARD GENERATOR