In this post let's see how we can use binding expressions in an .NET
8.0 Isolated Azure Function and how to consume the binding expression values
from Azure App Configuration (AAC).
Binding expressions are basically something like this. Let's take a simple
ServiceBus trigger function.
[Function(nameof(ServiceBusTrigger))]
public static void ServiceBusTrigger( [ServiceBusTrigger("%Messaging:Topic%", "%Messaging:Subscription%")] ServiceBusReceivedMessage serviceBusReceivedMessage)
{
// TODO: Process the received message
}
Here the %Messaging:Topic% and %Messaging:Subscription% are binding expressions and its value doesn't have to be a compile time
constant.
In In-Process Azure functions, it's pretty straightforward, you can just add
Azure App Configuration as another configuration provider in the Startup, and
it will work.
But in Isolated functions at least as of today (20th February 2024), you can't
do that (Support expression resolution from configuration sources registered by the
worker #1253). While it's a bit disappointing (after having Isolated functions available
for a couple of years), you can use the following workaround.
Let's say I have the following values in my Azure App Configuration.
I can use the following notation to access AAC values.
Azure App Configuration Values |
@Microsoft.AppConfiguration(Endpoint=https://aac-temp-001.azconfig.io; Key=<key>)
// if you want to choose a particular Label
@Microsoft.AppConfiguration(Endpoint=https://aac-temp-001.azconfig.io; Key=<key>; Label=<label>)
So I can update Function App settings in Azure as follows. Make sure the
identity of the function app (system-assigned managed identity or
user-assigned managed identity) can read the configuration from AAC.
Function App Configuration |
Use App Configuration references for App Service and Azure Functions (preview)
Related issues:
Hope this helps.
Happy Coding.
Regards,
Jaliya
Jaliya
No comments:
Post a Comment