14

I have several Microsoft Azure functions developed. I would like to use a gateway with firewall to make my Azure functions available and protected using one public IP only.

Is there way to use Azure Functions with Azure Application Gateway or API Management?

What would be the best approach in this case?

oɔɯǝɹ
  • 7,219
  • 7
  • 58
  • 69
Dmitry Kazakov
  • 1,639
  • 3
  • 27
  • 47
  • azure functions are serverless so am not sure what you want to achieve by having a gateway. As such the security is integrated with option of using a multiple oauth providers. – Aravind Feb 03 '17 at 07:19
  • I want to have one public ip for several functions. – Dmitry Kazakov Feb 03 '17 at 08:43
  • each function app will have an unique url. you cannot have a common IP of gateway. even if you have it you would have to do the redirection of some sort. maybe you can have an api app and write some logic which can do the redirection to the actual function app. – Aravind Feb 03 '17 at 10:22
  • @DmitryKazakov do you mean you want only one Public IP to access the functions? or make them all available through one IP? – MBen Apr 05 '17 at 10:59

2 Answers2

7

Azure API management allows you to provide a single access point for all your customers.

If you've made a HTTP triggered Azure Function (or any SOAP or REST service for that matter), you can use API management to provide a central access point for this function. This allows you to do load balancing / hot swapping / rate limiting / authentication and authorization / IP whitelisting and more.

See here for some more info on HTTP triggered functions: https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-serverless-api

See here for how to create an Open API for your Azure Function: https://learn.microsoft.com/en-us/azure/azure-functions/functions-openapi-definition

oɔɯǝɹ
  • 7,219
  • 7
  • 58
  • 69
  • 2
    This link on reference architectures confirms above suggestion to use API Management - https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/serverless/web-app. However the content in the link https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-serverless-api, seems to be misleading. It uses Azure Function Proxies, not API management. Correct link for API management would be https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts – Tharanga Hewavithana Dec 19 '18 at 12:43
2

I think this could be achieved by using api management. With Api management you can add a single point of access. First you have to create an api management instance. And you can add api products as well so for the 3rd party who consume your api can subscribe to your api products. Take a look at developer portal and publisher portal in the api managment instance. Just take a look, https://azure.microsoft.com/en-us/services/api-management/

dilantha111
  • 1,388
  • 1
  • 17
  • 19
  • A link to a solution is welcome, but please ensure your answer is useful without it: [add context around the link](//meta.stackexchange.com/a/8259) so your fellow users will have some idea what it is and why it’s there, then quote the most relevant part of the page you're linking to in case the target page is unavailable. [Answers that are little more than a link may be deleted.](//stackoverflow.com/help/deleted-answers) – Bugs Nov 09 '17 at 10:47
  • thanks @Bugs and . I updated the content so that someone can understand without the link. – dilantha111 Nov 16 '17 at 04:39