Calling Azure Functions Runtime from Logic Apps - azure

I have on-premise azure functions create via the Azure Functions Runtime. How do I call these functions from a logic apps resource on the cloud. Based on what I have been reading I need to install the on-premise data gateway first. This will be the way logic apps will communicate to on-premise resources. However this communication seems to only be possible for local data sources sqlserver, biztalk server etc. How exactly do i angagne with my local functions. Is there a connector for this?

You can expose your local machine using a tool such as:
Ngrok
Localtunnel
Serveo
Teleconsole
Pagekite
and use the provided url as a proxy to call your local function. So your Logic App will call one of those services, which will route the request to your function.

I assume your functions are HTTP triggered.
Calling on-prem HTTP resources directly from Logic Apps can be done, as you suggested, via the on-premises data gateway. You just need to create a custom connector for this.
There are tutorials under the official documentation, but as an external blog this one explains the required steps (for SOAP endpoint): https://www.codit.eu/blog/connecting-to-on-premise-http-endpoints-from-logic-app/

Related

Is service to service call inside Deployment with Confident env supported by Cloud SDK Java?

Does Cloud SDK Java support Service to Service call (e.g. micro service A issues OData call to micro service B) inside Deployment with Confident environment? I do not see anything about this part in the documentation and after going through the doc it seems we have to use destination to issue the OData call but this is not the case inside DwC env. And also I don't know how to handle mTLS, DwC headers propagation and target micro service route determination when using Cloud SDK instead of RestTemplate. Thanks.
Yes, this is possible. You can use:
DefaultHttpDestination
.builder("https://your.service/to/call")
// this enables mTLS
.securityConfiguration(SecurityConfigurationStrategy.FROM_PLATFORM)
// this forwards the DwC Headers
.headerProviders(DwcHeaderProvider.getInstance())
.build();
You can find the documentation here (link available only SAP internally).

Deploying an WebAPI project (including swagger) into Azure Function

I know that the Azure function supports HTTP trigger and we can write a function that can be exposed like an API. I'm looking for an option to host a complete C# WebAPI project (multiple Rest endpoints including swagger definition) into a single Azure function.
Is this feasible? and supported? I see this scenario is completely supported in AWS Lambda. Where we can deploy a whole WebAPI project into a single lambda. Here is the demo of
the same.
I have watched the provided Video and I observed the same functionality is also available in Azure Functions.
As Direct way is not available like publishing the Web API to the Functions but migration of Web API to Functions is possible if the Web API is authenticated with any option like Open API, etc and using the APIM Service we can manage all the operations in it.
And as per the Microsoft Update, Startup.csand program.cs is unified to the program.cs file. So, I have added the required swagger configuration code in the file program.cs and tested it, working successful locally.
Another approach is you can call the Web APIs from Azure Functions securely, here is one of my approaches along with few other ways to do it.
Refer to #VovaBilyachat alternative solution on publishing .NET Core Web API to Azure that provides the glimpse of using Containers instead Functions.

How should I approach the implementation of health checks in Azure for my application?

I would like to know how to create health checks for some Azure services? Is this possible? I thought of creating time-triggered Azure functions that would test the end-to-end connectivity of for example my Azure storage, Azure map, and Event Hub but it would fail if suddenly my Azure functions would stop working.
I would like to have some kind of Cachethq, but for all the Azure services that I use for my application.
Is there a best practice for this?
Kind Regards,
Normally you would have an endpoint that checks any relevant subsytem for errors. This could be a public available /health endpoint. Some frameworks like Asp.Net Core has built-in support for health checks.
An http triggered Azure function like you propose could also do the trick.
Then you need something like a watchdog that calls the health endpoint at a given interal. In Azure you can use an availability test. If you want you can create alers based on this availability and create dashboards that show the status over a given period.
If you are hosting your app using Azure Web App you can use the built-in health system as described here
If you have a load balancer or gateway in front of your app you can use the /health endpoint for health probe endpoints of those balancers/gateways.

How to host in azure?

Looking for some advice on the best and cheapest way to host in azure and I’ve never used it before so I’m finding it fairly confusing if I’m honest. But here’s where I’m at...
I have a Vue.js front-end which calls an azure function back end (API in .net core using VS) which is connected to mysql workbench running as a windows service currently, which ultimately returns all data back to my front end.
I set up a free trial tonight, I’ve created a resource group and set up an azure function and pushed my API up to it. I then created an azure for mysql instance and managed to connect my DB up (again from mysql workbench running as a windows service) to my azure mysql instance and connected this also with credentials to my API.
I need to now host the Vue.js app and connect this to my azure function but how are the endpoints exposed ?
Also, I have registered a domain and I’d assume I’d have to connect this to the Vue.js app once it’s hosted but any tips ?
I need to keep this as cheap as possible.
One of the cheapest ways to host your website is using a Azure blob storage. You can set it up for static websites, I've done this a couple of times for Angular applications. blob documentation
As for exposing your API. Make sure that your Azure function has a http trigger and the correct authorization level. You can obtain an url as prescribed here.
Please let me know if you need anything else :).

How to secure Azure Serverless Microservice Architecture?

I am trying to build Serverless Microservice Architecture
Azure services used by me are:
Azure CDN
Azure Active Directory
Azure Logic Apps
Azure Functions
Azure Event Grid
Azure SignalR Service
Which below tools do I need mange and secure my API in Azure Serverless Microservice Architecture?
Azure Traffic Manager
Azure Application Gateway
Azure API Management
Azure Function Proxy
Links Referred by me are :
https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/serverless/web-app
https://learn.microsoft.com/en-us/dotnet/standard/serverless-architecture/serverless-design-examples
Please help
Edit:
I understand above tools and it purpose but what I can't understand is do I require them, if yes in what order, all I am developing is an Angular 2+ app, post a Command Event to Azure Functions/Logic Apps using REST api returning RequestId (and triggering chain of events) and subscribing to that RequestId to listen for Domain Event.
This is very broad Architecture question. All the services you mentioned have specific purpose. You can even secure your functions without using any of them by simply turning on authentication on functions.
I would suggest reading all of them in details can help you identify which service may suit your needs in this case. e.g. Traffic manager is used for cross region traffic distribution and may not be required in your case. Function proxies and Api management overlap in few cases and really depends on what you are trying to achieve. To get better idea you may need to share your architecture diagram.

Resources