-
Notifications
You must be signed in to change notification settings - Fork 5
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
[Discussion] Platform upgrade for Azure Functions v2 apps coming in October 2020 #175
Comments
Is it correct to understand that the Azure Functions Runtime version will remain v2 (maybe v2.1?) and the target .NET Core version will change to 3.1 (netcoreapp3.1)? |
@shibayan The runtime will be upgraded to V3. If the app does not use any APIs that have changed between .NET Core 2.2 and .NET Core 3.1, it should continue to run on V3 without modification. |
@anthonychu Thanks! |
This brings the question - Should .NET use the language server model like Python et al to avoid this in the future? |
@anthonychu Will |
Yes. How this will work is the runtime will get updated to V3. As long as your .NET apps are not using APIs that changed between .NET Core 2.2 and 3.1 the upgrade should be seamless. We do encourage you to perform this upgrade yourself and test your application ahead of the automatic upgrade. You can do this by setting |
Yes. This is a direction we are actively investigating for future .NET versions. |
cc @fabiocav @konstantinvlasenko - yes, the advisory is related to this announcement. V1 apps are not affected by this. |
Hi @anthonychu, can you provide more details about what exactly is being upgraded in the platform? As in what is being added, upgraded and removed.
|
Also @anthonychu, as best I can tell, this is the state of play - can you please confirm?
If this is accurate, it might be helpful to put this somewhere explicit (like on the original post) to be super clear, as the post is a little ambiguous about what's happening. |
Much clearer, thanks @johndowns. Presumably for Functions runtime v1 the .NET Framework will be patched with the rest of the Azure App Service - and even upgraded to 4.8 when that happens. |
@johndowns - No changes to V1 apps. We will be updating our documentation with upgrade instructions.
V2 runtime will exist but will only updated if critical fixes are needed.
Yes, as of now Functions V2 apps are running on .Net core 2.2
No. Existing versions will remain but no more updates.
Yes. This announcement includes all skus and ASEs |
Unfortunately, Service health alerts are only for app services that do not run on an Isolated ASP? I do not think those that have functions on Isolated ASP get these service health alerts and could potentially miss out on this? |
When I tried to pin the version to ~2.0, I get a warning message as below. I am opting out of the upgrade for now and hence the setting of ~2.0. But the warning message seems to indicate that once the support stops for the current version, it will be auto-upgraded to a major version. This message seems to contradict the announcement made here that pinning it to ~2.0 will prevent the functionapp host upgrade. Can this be clarified please |
@harisubramaniam1 - thanks for reporting warning on Portal. This appears to be a UI issue and will follow up on fixing it. |
@pragnagopa Thank you for the clarification. |
|
@pragnagopa Do you know if ASE customers were / will be notified of potentially breaking apps? |
@srininz77 - I understand you pinned runtime version due to : Azure/azure-functions-host#6558. Version 2.0.13351.0 will be available until the issue is fixed. Once the issue is fixed, if you still want to run on Functions V2, please pin runtime version to ~2.0 . Our recommendation is to move functions V3 as soon as you can. @anthonychu / @srininz77 - Our internal analysis of potential breaking apps does include ASEs. |
Just to confirm, my azure function is set to ~2 (I don't see an ~2.0 option): If I understand correctly, to test it out (I wish to stay at function V2) before the automatic upgrade, is it I can go to 'Application Settings', add: Doing above would be similar to staying at ~2 as in my runtime version setting after 31st Oct right? |
@pragnagopa @anthonychu suggest you update the announcement, as it says:
Also please confirm @johndowns's comment above. It's nice and clear so I started people linking to it, want to have official confirmation :) |
@ishepherd We’re planning to follow up with some updates in the next couple of week. We’ll try to use the opportunity to also clear up the confusion. @jeffhollan While they sound contradictory, both of those statements are true. By default, V2 apps target and are compiled against netcoreapp2.1. But they run on the V2 functions host which runs on .NET Core 2.2. The upgrade involves changing the host that runs your app. Apps with the setting updated to |
@hctan These settings will cause the app to run on the V3 runtime with compatibility mode enabled. This is equivalent to how your app will run after the upgrade if you leave it on If you want to pin the app to V2, you have to manually update |
@anthonychu thanks for clarifying this. |
Hi! We have a function that was written 4-5 years ago. That function is currently targeting framework 4.6. It is not clear to me how much of this is related to the function SDK and how much is related to .NET Core 3.1. We initially intended to just upgrade all functions to .NET Core 3.1 and function SDK v3. However, since this function actually makes calls specific to the full framework, we are wondering if this will break once the upgrade is completed in Azure. For example, this function makes calls to the log4net method GetLogger which used to have an overload that allowed you to specify only a string but this overload no loaded exists in the .NET Core 3.1 compliant log4net package. We are trying to assess the need to upgrade this function. It will be deprecated soon, however we may need to continue running it in parallel with it's replacement until after the October 31th deadline. |
@Bimmerdude can you confirm if your existing function app is running on V1 or V2? |
@pragnagopa We're using V1 for this function. |
How are functions using Docker containers affected by the update? |
@esbeneickhardt - If your app is using a custom container it will not be auto-upgraded. Please not that this means your app will be running on a runtime that will not be patched. We recommend re-building the container using Functions V3 base image |
While rolling out auto-upgrade on windows, we found upgraded apps running into a blocking issue: Azure/Azure-Functions#1370 . Issue is scoped to dotnet apps using system.data.sqlclient and that are built using older versions of nuget package: Microsoft.NET.Sdk.Functions that did not copy “functions.deps.json” file to function app’s bin directory. We have paused upgrade process on Windows. If your app is running on Linux and is facing the issue Azure/Azure-Functions#1370, please pin your app using instructions : https://github.com/Azure/azure-functions-host/wiki/Platform-upgrade-from-Azure-Functions-runtime-v2-to-v3#opting-out-for-linux-apps |
We have resumed the auto-upgrade process. Regions completed: West Central US, West US2, West Europe |
For the feedback:
I've checked that the host is upgraded. The error is related to the name resolution for the Service Bus trigger. It's similar to this issue: Azure/azure-webjobs-sdk#2063. We use the service bus trigger like this:
After upgrade we've got an error: We use The workaround with setting |
@ivan-sam - Thank you for sharing the details. We will look through the logs to see if we detect these errors and proactively pin apps to Functions V2. |
[Auto-Upgrade] broke by setting With the only hint available - the output of a logic app kicking a function app to do some stuff - i stumbled upon following error message "The type initializer for '{some}Function' threw an exception." The Platform upgrade for Azure Functions v2 announcement lead me to this discussion. So do you suggest updating our function apps to the latest and greatest (at least i hope so) v3 or will there be some fix in place? |
@sca-ai - thank you reporting issue here. Yes, we do recommend moving to Functions V3 at your earliest convenience. If possible, please do share full stack trace for the error (without secrets) - to help us investigate further. |
@pragnagopa - updating the Functions SDK version to the latest major 1.x release (1.0.38) and updating our MondoDB dependency too did the trick. With this mitigation in place next we aim for Functions V3. Thx. |
Thanks @sca-ai ! Copied mitigation steps to Azure/azure-functions-host#7059 as well |
Updated #175 (comment) above - clarifying this upgrade does not impact Functions V1 Apps. |
@pragnagopa If we have observed that a Function App has had the App Setting 'FUNCTIONS_EXTENSION_VERSION' = '~2.0' applied, but we cannot account for how that App Setting update was made, can we assume that the platform made this change as an automatic mitigation related to logging as mentioned in the comment above? #175 (comment) What is the best way to identify the source of this App Setting update? Furthermore, is there a way to identify who in any given subscription would have received notifications regarding this upgrade? In this particular case, we are trying to determine what notification was made to alert users about a potential breaking change for a Function App on ASE. |
@bumgardnera07 - We have pinned apps that we identified as breaking apps i.e. apps that are using Types or Methods that changed between .Net Core 2.2 and .Net Core 3.1 before starting the upgrade. Apart from that - as we were rolling upgrade we identified apps running into issues tracked here. We have been actively pininng these apps as well to avoid disruption. For details on why your app was pinned
For specific details on contact Id listed for your subscription, please open a support ticket as we do not have direct access to that information. |
We have a Function App, that runs on a P2v2 hosting plan that stopped working as intended after the app got restarted. The Function app uses Vnet integration to connect to our FTP server, hosted on an Azure VM. This is so that we privately communicate with the FTP (FileZilla) server. This all worked until recently, when the function app was restarted due to a change in an app setting. At the time of deployment in November 2020, it was running using We receive the error message "Unable to connect to the remote server" using the private IP and Opting-out of the platform upgrade, setting the app setting to Using any of the settings above, we are able to tcpping to connect to our FTP server using its private IP. We have checked the article Breaking changes in .NET Core 3.1, but none of the changes, as far as we see it, is applicable in this situation. Thanks for reading! 👍 |
@saibaskaran57 - opened Azure/Azure-Functions#1831 as your question is related to deployment. |
After the automatic upgrade to 3.0 our function stopped working. The error message was: We are using a WCF service(IItemInfoService), and the second time the function ran the error occured, and it kept having errors every run, until i restarted, and it worked ONCE, then errors again. The WCF service was registered as an interface in startup, and was used with DI in the function. Temp fix: Questions:
|
@lintho - Apologies for the inconvenience. The error your app ran into is not caught in our analysis. For further assistance to move to functions v3, please open issue here : https://github.com/Azure/azure-functions-host/issues and provide a simple repro. |
I reported this issue for v3 24 days ago: Azure/azure-functions-host#7033
@pragnagopa, could you please have a look at the issue Azure/azure-functions-host#7033? It contains description, simple repro, results of testing. |
Exactly the same as my scenario. Works first run after restart, then errors every run. |
Here's my observation of how Tests were made on freshly deployed function app instances: deploy FA → call Windows (same results for consumption and premium):
Linux (same results for consumption and premium):
I know for Linux to change the host runtime, |
Thank you @maximivanov ! Our function have been running fine since late 2018, today it crashed after restart with extensions/bindings not being registered:
We had ~2 in Notes:
|
1 similar comment
Thank you @maximivanov ! Our function have been running fine since late 2018, today it crashed after restart with extensions/bindings not being registered:
We had ~2 in Notes:
|
Discussion issue for: Azure/app-service-announcements#266
The text was updated successfully, but these errors were encountered: