Leonard Soetedjo
Posted on May 1, 2022
Yet another issue I found when dealing with Logic App in Azure. This time, I want to parameterise the connections.json with the values from appsettings. Specifically, it's the managedApiConnections section of connections.json as this requires a particularly new item: connectionRuntimeUrl
.
...
"managedApiConnections": {
"azureblob_1": {
"api": {
"id": "/subscriptions/xxxxxxxxxx/providers/Microsoft.Web/locations/xxxxxxxxxx/managedApis/azureblob"
},
"authentication": {
"type": "ManagedServiceIdentity"
},
"connection": {
"id": "/subscriptions/xxxxxxxxxx/resourceGroups/xxxxxxxxxx/providers/Microsoft.Web/connections/azureblob"
},
"connectionRuntimeUrl": "https://xxxxxxxxxx.azure-apihub.net/apim/azureblob/xxxxxxxxxx"
}
}
...
Looking around Microsoft's documentation on Web Connections, there don't "seem" much useful info on the list of parameters that it requires to build the connections in bicep. However, if we go down further, there're quickstart templates that we can refer to for storage or service bus queue.
As we'll be building in bicep, we start with decompiling (az bicep decompile --file azuredeploy.json
) the ARM template into bicep and try to analyse what's required.
resource serviceBusConnectionName_resource 'Microsoft.Web/connections@2018-07-01-preview' = {
location: location
name: serviceBusConnectionName
properties: {
api: {
id: subscriptionResourceId('Microsoft.Web/locations/managedApis', location, 'servicebus')
}
displayName: 'servicebus'
parameterValues: {
connectionString: serviceBusConnectionString
}
}
}
Of interest is the item under parameterValues
as it's not documented. With this, we can retrieve the service bus connection string and put it into the bicep script. Do note that the above bicep is only for service bus. We can use the other quickstart template for other resources such as azure blob which will show us a different set of required parameterValues
to build the bicep script.
Once we've the above, the next step is then to update the Logic App (Standard) connections.json
to retrieve the necessary information from e.g. appsettings. This is another journey into the uncharted which I will cover in the next post.
Posted on May 1, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.