That Blue Cloud

5 Azure Container Apps Features Made Generally Available And What You Can Do With Them

There are some Azure Container Apps features released to GA last week, and I wanted to recap those here and explain how they can be of use to you. Especially the Secret Mounts and the Key Vault Secret References are very important if you ask me.
5 Azure Container Apps Features Made Generally Available And What You Can Do With Them

Secrets Volume Mounts

As we've been doing this in Kubernetes for a long time, we can now mount the secret values to our containers as files in a volume. This gets very useful when trying to avoid environment variables but also don't want to call a third-party API during startup and make your application key store aware. Your app depends on a file containing secrets in a folder it expects to be there.

If you're interested in where this comes from, read the official Kubernetes documentation on Secrets. Jeff Geerling also has a short blog post explaining how it is done in Kubernetes.

The announcement is here.

Azure Key Vault References For Secrets

Finally, in GA, this is a very big one. This has been a feature of Azure App Configs for a long time and other Azure services. Great to see that it makes GA.

How does this benefit you? You don't need to connect to Azure Key Vault directly from your app (or Dapr sidecar) to retrieve the secrets. That would make your app dependent on Key Vault, which is not a bad thing, but also not ideal. Now the platform does it for you and injects it as a secret. This is part of the Secrets platform and uses the Container App's Managed Identity to go and fetch the secrets. You just need to reference the KV path in your secret store.

Here's the link for the announcement.

Init Containers

Init containers are mainly used as bootstrappers: When you want to accomplish a few things but you don't want your replica to wake up yet, you have an init container that wakes up and does it for you. Rather than doing this within every container image, you do the initialisation in your init container. It's very useful. It not just reduces clutter but also allows you to make sure it runs before any of your containers. It isn't easy to accomplish this across many containers in the replica and keep it in sync without init containers.

Check out the announcement for more details.

Cross-Origin Resource Sharing (CORS)

I have to admit; I didn't know this wasn't supported. It was a surprise for me to see it's now in GA.

Now you can define more CORS rules to allow other URLs to access your Web Apps or APIs. This comes in handy in most situations and is also one of the most hated security measures of modern web/app development. Nonetheless, it's necessary, and now we have the means to accomplish this in Container Apps.

Here's the link for more details.

Session Affinity

When you can't avoid making Stateful apps despite your best efforts, you'll quickly realise what a bliss it was when we made all the apps that way (just kidding). Back in the day, you could do it via F5 load balancers (yes, I'm that old) and make the same user's requests end up at the same server because you kept the state there. You could do this on Azure App Gateways and Front Doors for a long time, and App Services and Functions also supported this.

Now also Container Apps do. Check out the announcement.

Conclusion

If you know any other recently released GA features that I might've missed, feel free to share in the comments!

Harun Legoz

Harun Legoz

I’m a cloud solutions architect with a coffee obsession. Have been building apps and data platforms for over 18 years, I also blog on Azure & Microsoft Fabric. Feel free to say hi on Twitter/X!

That Blue Cloud

Design awesome data platforms using Microsoft Fabric

That Blue Cloud

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to That Blue Cloud.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.