how long can a logic apps webhook wait? - azure

we are evaluating logic apps for long running workflows
our process is as follows
once we receive a request (http request trigger), we call another service with the webhook action sending a callback url, now the process might take any where between 10 to 15 days to complete.
Question
can the logic app wait for 10 to 15 days ?
what happens if the callback does not happen ?
Thanks -Nen

A single HTTP request from Logic Apps will time out after 2 minutes. The default run time limit for all synchronous actions in multi-tenant Logic App is 2 minutes.
can the logic app wait for 10 to 15 days --> no
what happens if the callback does not happen ? --> Action
patterns
check below links -
calling-long-running-functions-from-logic-apps
Limits and configuration information for Azure Logic Apps

There are two points that need to be made when answering your question.
Firstly, the standard amount of time that a HTTP trigger can run for is two minutes (https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-limits-and-config?tabs=azure-portal#run-duration-and-retention-history-limits), but, that's when the request/response architecture is synchronous based. If you want to fire it in an asynchronous way (like you do) then you need to provide a Response to the calling application prior to the two minute timeout. Like thus ..
Secondly, You can see from the above image that a delay has been running for 11 minutes at the time of posting this answer which is more than the 2 minutes restriction if the response wasn't provided back.
I suspect (and would need to confirm but it would take me 10 days) that a webhook will perform for your full 10 to 15 days given there is absolutely no evidence to show it doesn't (i.e. the documentation does not explicitly state it). I believe it will stick to the 90 day period as per the full length of any multi-tenant Logic App implementation.

Related

Is polling a folder the same as polling envelopes?

Reading the Docusign API rules and limits (https://developers.docusign.com/docs/esign-rest-api/esign101/rules-and-limits/) they state a restriction of not polling an envelope more than once every 15 minutes. They provide this API call as an example:
GET /accounts/12345/envelopes/AAA/documents/1
My script is set to look at two folders:
/accounts/12345/folders/AAA
/accounts/12345/folders/BBB
Now both these folders may have the same envelope in each. If I'm polling those two folders in my script every 15 minutes, does that violate the Docusign polling rule since each folder may contain the same envelope?
If you're trying to create an effective polling rate of 7.5 minutes by polling each folder once every 15 minutes? Yes, that's against the rules.
But your case sounds like polling every 15 minutes and, in some cases not under your control, an envelope may be polled more often than once per 15 minutes. That's fine.
But use a webhook instead, and we'll all be much happier.
See my post on using aws (free usage tier) and we have code examples too.
For your use case, investigate Recipient connect webhooks since you're not the sender.

Allow DialogFlow's response time for web-service-fulfillment to be greater than 5 seconds

According to Dialogflow Docs
The response must occur within 10 seconds for Google Assistant applications or 5 seconds for all other applications, otherwise, the request will time out.
Is there any way we can increase this without going for an API WebClient approach?
I am using the dialogflow web demo as web client and need to make a call to node service to fetch data from a cloud dB.
The following limitations apply to your response:
The response must occur within 10 seconds for Google Assistant
applications or 5 seconds for all other applications, otherwise the
request will time out.
The response must be less than or equal to 64 KiB in size.
How ever there will be,
Webhook call failed. Error: DEADLINE_EXCEEDED
So you must complate your task within 5 second. and if you are not able to fetch data within 5 second then there is something wrong with your infrastructure.

Is there any method to increase the request time out for a rest api call in Azure Logic App?

I'm creating a Recurrence Azure Logic App for calling a rest API one after another in the interval of 30 minutes. The scenario is, once I call the primary API, after the response comes as 200 (status code) then only the next API should be called. But the issue I'm facing is my primary API is taking about 3 mins 40 seconds to fetch the data. So every time the request fails as by default the request timeout is 2 minutes.
Please suggest a way to create this logic app.
As of now, you don't have any option in the Logic App HTTP action to configure the timeout duration, so it is probably not possible at the moment.
May be you should consider using Durable Function with the Function Chaining Pattern.

Are Message Queue Triggers betters than Http Triggers for scalability?

2 types of triggers for Azure Functions are message queues and http triggers. I'm guessing that one difference is that with http triggers a request could be denied if there are not enough instances to service the request, whereas with message queues it will check if there is an instance available and if not spin one up before trying to process the message. Is that a correct understanding?
Not quite..! I think you're getting the information from here:
Whenever possible, refactor large functions into smaller function sets that work together and return responses fast. For example, a webhook or HTTP trigger function might require an acknowledgment response within a certain time limit; it is common for webhooks to require an immediate response.
The acknowledgement within a certain time limit is all about how long the client is willing to wait for a response. So if you were to execute some task that takes a long time (on the order of minutes), you may not receive an informative response because the client would just call the connection dead. However, your function would still execute just fine as long as it stayed within the functionTimeout limits (one a consumption plan, the default is 5 minutes, max being 10 minutes).

Instagram API calls limit

Dear Instagram developers team,
Our team is currently in the design phase of a connector to Instagram API for our application.
We bumped into a few questions related to the Instagram API limits.
Would you consider the following scenario as a bad practice?
use all 60 per hour calls for an endpoint until connector receives a 429 response code form the Instagram API
when the first 429 response is received the connector stops calling the Instagram API for 5 minutes, then try again
If the response was successful, continue from step #1, if not - increase 'sleeping time' by 5 minutes each attempt until the call is
successful and then continue from step #1
How many calls that return 429 code our connector can make in an hour
so its behavior would not be considered spammy? Can we make lets say
20 such calls in a row? The question raised because of the very last
sentence on the limits page.
You may also receive responses with an HTTP response code of 400 (Bad Request) if we detect spammy behavior by a person using your
app. These errors are unrelated to rate limiting.
Per hour limit means that at the beginning of an hour the entire limit is
reset or it means that once an API call is made, the available limit will be increased by one after one hour? The second scenario means that if I made 30 calls in one minute and then another 30 after half an hour, when one hour plus one minute passes from the first call only 30 calls will be available.
Is there a way to increase limits for POST or DELETE calls?
Thank you

Resources