question

AmyZ-5475 avatar image
0 Votes"
AmyZ-5475 asked AmyZ-5475 commented

The design of Azure Function Proxy

Hi, we're using function app proxy as middle man between Azure APIM and Logic App (connect to Salesforce).
The structure is like following.
96158-image.png

Now a design problem bothers us when trying migration.

We haven't automate deployment process for Azure, everything for now is manual work ((Export Template ->Deploy) . And the original deployment idea is migrating Azure services from STG subscription resource group to PROD resource group.
96255-image.png

When we start to deploy , we realize function app cannot follow our idea because it should have unique name over resource groups. That makes us wonder if it's necessary to separate STG and PROD function proxy.

If we keep single function proxy, just using different route template to identify STG/PROD backend, like following concept. Is this good ? keeping single App Service plan might reduce the cost as well ? or any side-effect in the future ?

Need your advice, much appreciated!

96196-image.png


azure-functions
image.png (110.4 KiB)
image.png (63.0 KiB)
image.png (21.4 KiB)
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

1 Answer

PramodValavala-MSFT avatar image
0 Votes"
PramodValavala-MSFT answered

@AmyZ-5475 Having separate resources for staging and production is indeed the way to go and having separate function app names shouldn't be a problem since the deployment could configure APIM as well with the different URLs.

In fact, you could just have the Logic Apps directly configured to APIM to keep things simple since the function app isn't doing much. When deploying the ARM Templates, you can get the trigger URL dynamically and update the backend sub-resource of APIM. This SO post highlights how you can fetch the trigger URL for a Logic App.


5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.