List of article summaries
Extract user profile attributes from an Azure ADB2C tenant using the Microsoft Graph API
I had to retrieve a list of users from an Azure Active Directory B2C instance today. I thought I could just go through the Azure UI but that’s limited to short pages of data and limited attributes.
There is a CSV export provided on the UI but you won’t get the required identity objects in the csv output if you need a user’s signin email address.
I had to use the Microsoft Graph Api to get what I needed. This is a bit hacky but it does the trick!
Force restart your Azure App service site and host
Sometimes your Azure App service host will need to be restarted. You can do this but it’s hidden away in the Azure resource manager site. Here’s how to find it!
Scheduling a feature toggle using no-code with Azure Logic Apps
I use launch darkly to toggle features on an app. There is one third-party dependency that has regular scheduled maintenance and I need to toggle the feature on and off on schedule.
Launch Darkly has built in scheduling to handle this scenario but you have to be on the enterprise plan to use it. The enterprise plan is too expensive to upgrade to for scheduling alone so I needed to find a different way to automate this.
Automate Jira releases from Azure DevOps pipelines and save 1 hour per day
My team uses Jira as a project management tool and we use the “Releases” feature to audit our releases and to update our customers.
Atlassian provides a UI to create releases on Jira but we wanted to automate these types of things as much as possible to maintain our level of continuous delivery.
If you use Node.js and Azure devops you can use Semantic Release to create the release in Jira. I had some trouble figuring out the Jira key format and wanted to share that bit with you. Otherwise the plugin does all the work!
We save an estimated 1 hour per day depending on how many releases we create in a day. Usually 4-5 releases.
By automating a process like this you know it will always be accurate (and not forgotten about)!
Ensure Node.js version is consistent on Azure services and devops pipelines
I got caught out with Microsoft recently setting the default version of Node.js from 12 to 14 on Azure pipelines linux build agent images (ubuntu-latest). Here are some tips for ensuring Node.js versions are set correctly in some of the popular Azure PaaS offerings.
A snippet for exporting an Azure App Service ssl certificate for use with Azure front door
Azure app service ssl certificates do not have a password but other Azure services only allow importing of certificates with passwords set. So this is the openssl snippet required to export the certificate and add a password
Performance measurement decorator for Azure Application Insights on a Node.js app
I’ve been writing lots of Node.js apps on Azure recently. Azure provides an instrumentation product called Application Insights. The App Insights client hooks in to Node.js requests and other popular parts of the Node.js ecosystem like postgres with almost no configuration.
However If you want to use the performance measurement api you have to actually call the app insights Node.js client api method. I figured since this was measuring some wrapped code anyway it would be a great candidate for an es6 decorator.
How to use a private NPM repo in Azure Pipelines Deploy
If you have a private a npm library you need to authenticate to get the packages you need. Pipelines provides a specific task for this but you also need to take another step to get the package when installing on the host…
Semantic versioning a Node.js app on Azure DevOps CI
Using semantic versioning allows you to completely automate updating versions in package.json and remove any arguments in your team about versioning. Here is how I use it in my Node.js apps.
Azure App Service reuse Node.js modules on host for speed
If you are deploying a Node.js app to Azure App Services you can deploy the node_modules folder as part of the deploy, or you can reinstall the runtime Node.js modules on the host each time. There are some advantages and disadvantages to taking either option.
How I enhance pull request quality on GitHub and Azure DevOps
Code reviews and PRs are deservedly known as a fantastic way to improve code and product quality.
I find that having a checklist is super handy for remembering all the checks to perform and the context to give a reviewer.
How to send a slack webhook message for an Azure DevOps pipeline task
I wanted to send a slack message when a deployment completed on Azure. It’s fairly straightforward but there are a couple of things I had to pull together from documentation on slack, PowerShell and azure.
Here is the script I finished with.
Dynamically setting IP to deploy assets to an Azure storage account behind a firewall from DevOps agents
If you try to deploy a static React app to an Azure static site on a storage account that’s behind a firewall you need to allow all the IPs that will be connecting to the storage.
The problem is that the range of possible IPs the devops agents use is huge and changes regularly.
Npm timeout when deploying Node.js app to azure app service using yarn
I was trying to deploying a Node.js app to azure app service recently but it kept timing out trying to download all the required modules.
I was able to fix this by specifying an explicit network timeout for the npm install in my azure-pipelines.yaml file
Adding a junit formatter to jest test results for a Node.js app on Azure Pipelines
If you’re publishing a Node.js app on Azure pipelines you will want to publish the output of your tests. The publish tests task on Azure has limited format support so you have to convert the test results to XML for processing.
How to configure a pipeline on Azure Devops to build and deploy serverless graphql and react client
I need to automate deploys on Azure Devops for a project I’m working on. I want it to work as cheaply as possible so serverless or PaaS was desirable. Read on to see the azure-pipelines.yaml file I used to make this work.