-
Notifications
You must be signed in to change notification settings - Fork 268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blob content instead of blob url in the output for the large output #665
Comments
I am getting this issue. One of my Azure Functions puts some JSON into a .json blob file, I was originally making sure that the file was no larger than 50kb. I have another Azure Function that is called from a SPFX webpart that fetches this Blob at a later stage and returns the file contents as string. Because of this large file (32kb) limit, the content is just being zipped up again as another blob file. I would really like this to have a parameter to be able to allow my Orchestration to return either contents or link to blob. |
This should be tagged as a bug and not an enhancement... this bug forces the caller to understand internal implementation of Durable Functions. Moreover, the way to detect that we are facing that situation is to parse a JToken and figure out it contains an URL, not friendly at all... Copying my comment from #693 (comment) :
|
Has anyone coded up a workaround for this? I guess a function in front of the durable function that detects the blob URL and pulls the content back to the consumer? |
@grahamrb, exactly. I never expose Durable Function HTTP APIs to my clients, simply because that would leak my internal implementation, I don’t want to be coupled with Durable Function to make sure I can remove it if I am not satisfied with the direction/responsiveness of the product or at least workaround issues like this one. |
Thanks for the feedback. I think it has been made clear that this behavior can be pretty painful to deal with. @ConnorMcMahon is currently looking at changing this behavior for an upcoming release. |
Excellent! Thanks Chris! |
Any news on the ETA for this? Really hoping to use the newest package since there's quite a few improvements, but this is currently a big blocker for my team. |
This will be included in our 1.8.3 release, which should be ready sometime next week if all goes according to plan. |
Will this fix handle the same problem for large inputs? |
@CastleArg the problem you're encountering appears to be specific to the JavaScript library. I believe that will require a separate fix. |
@cgillum - any updates on the 1.8.3 release? Is it still scheduled for this week? Do you have a date planned for this? Thanks |
There is a PR for fixing this issue, but it's still currently being worked on. We're still hoping to have a release out by the end of this week: Azure/durabletask#303. |
Is there an anticipated release date for this fix? We've just retested and it isn't working as yet within our subscription. |
Have your upgraded to the 1.8.3 nuget package version? The fix was included as part of that release. https://github.com/Azure/azure-functions-durable-extension/releases/tag/v1.8.3 |
I met the same issue today but I'm writing duration functions with JavaScript. Does v1.8.3 only solve the problem for C#? |
Hi @wisesimpson, v1.8.3 should solve this for both C# and JavaScript. |
@cgillum Thanks for your reply. I got a very silly question: |
You can update the Durable Task extension using the Functions CLI tool with the following command
Note that you will need .NET Core installed on your dev device to run this command. This is tracked here. |
@ConnorMcMahon You just made my day! Thank you so much |
|
Description of the issue
If the output is large enough (60KB) then the function returns in the output the url of the blob in which the actual response is stored. This creates an extra work for the end clients and extra responsibility for them to extract the blob if the expected output is of json.
Expected behavior
It's expected to set the behaviour in the application settings or a config class whether the durable function returns the actual blob url to the end client or the content of the blob by reading from the blob storage. It's clear that the large response cannot be stored in the queue so there was a workaround to store the large response in the blob storage. What is expected is if the output is stored in the blob storage, the durable function needs a setting so as to return the content of the blob rather than the url to reduce the work and avoid a prospect subsequent call from the end client to the blob storage.
Actual behavior
It returns the url of the blob if the response is large enough
Known workarounds
#26
The text was updated successfully, but these errors were encountered: