Az Azure Functions runtime verziók áttekintéseAzure Functions runtime versions overview

Nincsenek az Azure Functions runtime két fő verziói: az 1.x és a 2.x.There are two major versions of the Azure Functions runtime: 1.x and 2.x. A jelenlegi verziót, ahol új funkció a munkahelyi és fejlesztések kerül sor az 2.x, abban az esetben, ha mindkét üzemi forgatókönyvek esetén támogatottak.The current version where new feature work and improvements are being made is 2.x, though both are supported for production scenarios. Az alábbi részletek néhány különbséget a két, hogyan hozhat létre minden egyes verziója, és frissítse a 1.x a 2.x-es.The following details some of the differences between the two, how you can create each version, and upgrade from 1.x to 2.x.

Megjegyzés

Ez a cikk az Azure Functions felhőalapú szolgáltatásra vonatkozik.This article refers to the cloud service Azure Functions. Az előzetes verzióban üzemel, amely lehetővé teszi Azure Functions helyi futtatását kapcsolatos információkért tekintse meg a Azure Functions Runtime áttekintése.For information about the preview product that lets you run Azure Functions on-premises, see the Azure Functions Runtime Overview.

Platformfüggetlen fejlesztésCross-platform development

A verzió 2.x verziójú futtatókörnyezet futtat a .NET Core 2, amely lehetővé teszi, hogy a .NET Core, beleértve a macOS és Linux által támogatott platformokon futtatható.The version 2.x runtime runs on .NET Core 2, which enables it to run on all platforms supported by .NET Core, including macOS and Linux. .NET Core-on futó lehetővé teszi a platformfüggetlen fejlesztésekhez és a szolgáltatási forgatókönyvek esetében.Running on .NET Core enables cross-platform development and hosting scenarios.

Ezzel a verzió 1.x modul fejlesztési és üzemeltetési az Azure Portalon vagy a Windows-számítógépeken csak támogatja.By comparison, the version 1.x runtime only supports development and hosting in the Azure portal or on Windows computers.

LanguagesLanguages

A verzió 2.x verziójú futtatókörnyezet új nyelvi bővíthetőségi modellt használ.The version 2.x runtime uses a new language extensibility model. A verzió 2.x-es, a függvényalkalmazás a függvények meg kell osztani ugyanazt a nyelvet.In version 2.x, all functions in a function app must share the same language. A függvényalkalmazás a függvények kiválasztott az alkalmazás létrehozásakor.The language of functions in a function app is chosen when creating the app.

Az Azure Functions 1.x kísérleti nyelvek kell használni az új modell 2.x-es nem támogatottak azok nem frissülnek.Azure Functions 1.x experimental languages won't be updated to use the new model, so they aren't supported in 2.x. Az alábbi táblázat azt jelzi, hogy minden egyes modul verzióját a jelenleg támogatott programozási nyelvek.The following table indicates which programming languages are currently supported in each runtime version.

NyelvLanguage 1. x1.x 2. x2.x
C#C# GA (.NET-keretrendszer 4,7)GA (.NET Framework 4.7) GA (.NET Core 2,2)GA (.NET Core 2.2)
JavaScriptJavaScript GA (6. csomópont)GA (Node 6) GA (csomópont 8 & 10)GA (Node 8 & 10)
F#F# GA (.NET-keretrendszer 4,7)GA (.NET Framework 4.7) GA (.NET Core 2,2)GA (.NET Core 2.2)
JavaJava N/A GA (Java 8)GA (Java 8)
PowerShellPowerShell KísérletiExperimental Előzetes verzió (PowerShell Core 6)Preview (PowerShell Core 6)
PythonPython KísérletiExperimental GA (Python 3.6. x)GA (Python 3.6.x)
TypeScriptTypeScript KísérletiExperimental GA (támogatott a transpiling-on keresztül a JavaScript használatával)GA (supported through transpiling to JavaScript)
BashBash KísérletiExperimental N/A
Batch (.cmd, .bat)Batch (.cmd, .bat) KísérletiExperimental N/A
PHPPHP KísérletiExperimental N/A

További információ a nyelvi támogatás tervezett változásairól: Azure-ütemterv.For information about planned changes to language support, see Azure roadmap.

További információk: Támogatott nyelvek.For more information, see Supported languages.

Futtassa a verzió 1.xRun on version 1.x

Alapértelmezés szerint az Azure Portalon létrehozott függvényalkalmazás verzióra vannak beállítva 2.x.By default, function apps created in the Azure portal are set to version 2.x. Ha lehetséges, használjon a futtatókörnyezet verziója hol kerül sor az új funkció-befektetéseit.When possible, you should use this runtime version, where new feature investments are being made. Ha kell, 1.x verzió modulban továbbra is futtathatja a függvényalkalmazást.If you need to, you can still run a function app on the version 1.x runtime. A függvényalkalmazás létrehozása után, de függvényeinek hozzáadása előtt a futtatókörnyezet-verzió csak módosíthatja.You can only change the runtime version after you create your function app but before you add any functions. A futtatókörnyezet 1.x verzióra rögzítése kapcsolatban lásd: megtekintése és frissítése az aktuális futtatókörnyezet-verzió.To learn how to pin the runtime version to 1.x, see View and update the current runtime version.

Áttelepítés a 2.x 1.xMigrating from 1.x to 2.x

Dönthet úgy, hogy használja inkább a verzió a verzió 1.x futtatókörnyezet használatával írt, meglévő alkalmazások áttelepítéséhez 2.x.You may choose to migrate an existing app written to use the version 1.x runtime to instead use version 2.x. A legtöbb végre kell hajtania a módosításokat a nyelvi futtatókörnyezetet, például C# API .NET Core 2 és a .NET-keretrendszer 4.7 között a módosításához kapcsolódó.Most of the changes you need to make are related to changes in the language runtime, such as C# API changes between .NET Framework 4.7 and .NET Core 2. Is kell, hogy a kód és a szalagtárak kompatibilisek-e a választott nyelvi futtatókörnyezetet.You'll also need to make sure your code and libraries are compatible with the language runtime you choose. Végül mindenképpen vegye figyelembe a módosításokat az eseményindító, kötéseit és emelve a funkciók.Finally, be sure to note any changes in trigger, bindings, and features highlighted below. A legjobb eredmények áttelepítési hozzunk létre egy új függvényalkalmazást verzió 2.x és port, a meglévő verzió 1.x függvény kód az új alkalmazáshoz.For the best migration results, you should create a new function app for version 2.x and port your existing version 1.x function code to the new app.

Eseményindítók és kötések változásaiChanges in triggers and bindings

Verzió 2.x meghatározott eseményindítók és kötések az alkalmazás a functions által használt a bővítmények telepítését igényli.Version 2.x requires you to install the extensions for specific triggers and bindings used by the functions in your app. A HTTP- és időzítő eseményindítóik, amelyek a bővítmény nem igénylik az egyetlen kivétel.The only exception for this HTTP and timer triggers, which don't require an extension. További információkért lásd: regisztrálása és a kötési bővítményeket telepítse.For more information, see Register and install binding extensions.

Vált továbbá néhány módosításával a function.json vagy attribútumok verziók között a függvénynek.There have also been a few changes in the function.json or attributes of the function between versions. Ha például az Event Hubs path tulajdonság már eventHubName.For example, the Event Hub path property is now eventHubName. Tekintse meg a létező kötés táblázat dokumentáció minden kötéshez mutató hivatkozásokat.See the existing binding table for links to documentation for each binding.

Szolgáltatások és funkciók változásaiChanges in features and functionality

Néhány funkcióval, amely szintén el lettek távolítva, frissített vagy az új verzióban cserélni.A few features that have also been removed, updated, or replaced in the new version. Ez a szakasz részletesen verzió látható a módosítások után kellene használt verzió 2.x 1.x.This section details the changes you see in version 2.x after having used version 1.x.

A verzió 2.x-es, a következő változások történtek:In version 2.x, the following changes were made:

  • A HTTP-végpontok hívása kulcsok mindig tárolja titkosított formában az Azure Blob storage-ban.Keys for calling HTTP endpoints are always stored encrypted in Azure Blob storage. Verzió 1.x, kulcsokat is tárolja az Azure File storage lehet alapértelmezett.In version 1.x, keys were stored in Azure File storage be default. Ha egy alkalmazás-es verzióról 1.x verzió 2.x, file storage-ban már meglévő titkokat alapértékre állnak vissza.When upgrading an app from version 1.x to version 2.x, existing secrets that are in file storage are reset.

  • A verzió 2.x verziójú futtatókörnyezet nem tartalmaz beépített támogatást nyújt a webhook-szolgáltatók.The version 2.x runtime doesn't include built-in support for webhook providers. Ez a változás történt a teljesítmény javítása.This change was made to improve performance. A webhookok végpontként továbbra is használhatja a HTTP-eseményindítók.You can still use HTTP triggers as endpoints for webhooks.

  • A gazdagép-konfigurációs fájl (host.json) legyen üres vagy tartalmazza a következő karakterláncot "version": "2.0".The host configuration file (host.json) should be empty or have the string "version": "2.0".

  • Figyelés, a WebJobs-irányítópulttal, a portálon használt javítása érdekében a AzureWebJobsDashboard beállítás váltja fel az Azure Application insights segítségével, amely használja a APPINSIGHTS_INSTRUMENTATIONKEY beállítás.To improve monitoring, the WebJobs dashboard in the portal, which used the AzureWebJobsDashboard setting is replaced with Azure Application Insights, which uses the APPINSIGHTS_INSTRUMENTATIONKEY setting. További információkért lásd: figyelése az Azure Functions.For more information, see Monitor Azure Functions.

  • A függvényalkalmazás a függvények kell osztani ugyanazt a nyelvet.All functions in a function app must share the same language. Amikor létrehoz egy függvényalkalmazást, ki kell választania egy futtatókörnyezeti verem az alkalmazáshoz.When you create a function app, you must choose a runtime stack for the app. A futtatókörnyezeti verem által meghatározott a FUNCTIONS_WORKER_RUNTIME értékét az alkalmazás beállításait.The runtime stack is specified by the FUNCTIONS_WORKER_RUNTIME value in application settings. Ez a követelmény csökkenthetik a méretük és indítási lett hozzáadva.This requirement was added to improve footprint and startup time. Amikor helyileg fejlesztésével, ezt a beállítást is fel kell a local.settings.json fájljában.When developing locally, you must also include this setting in the local.settings.json file.

  • A functions az App Service-csomag alapértelmezett időtúllépési érték 30 perc értékre módosul.The default timeout for functions in an App Service plan is changed to 30 minutes. Manuálisan módosíthatja az időtúllépési vissza a korlátlan használatával a functionTimeout host.json beállítását.You can manually change the timeout back to unlimited by using the functionTimeout setting in host.json.

  • HTTP-egyidejűség szabályozások vannak megvalósítva, példányonként 100 egyidejű kérelmek alapértelmezés szerint a használatalapú csomag funkciók alapértelmezés szerint.HTTP concurrency throttles are implemented by default for consumption plan functions, with a default of 100 concurrent requests per instance. Ez az a maxConcurrentRequests beállítása a host.json fájlban.You can change this in the maxConcurrentRequests setting in the host.json file.

  • Mert .NET core korlátozások, támogatja a F# parancsfájl (.fsx) funkciók el lettek távolítva.Because of .NET core limitations, support for F# script (.fsx) functions has been removed. Lefordított F# függvények (.fs) továbbra is támogatottak.Compiled F# functions (.fs) are still supported.

  • Event Grid eseményindító webhookok URL-cím formátuma módosult https://{app}/runtime/webhooks/{triggerName}.The URL format of Event Grid trigger webhooks has been changed to https://{app}/runtime/webhooks/{triggerName}.

Áttelepítés egy helyi fejlesztésű alkalmazásMigrating a locally developed application

Előfordulhat, hogy meglévő függvény használatával helyben 1.x verzió futásidejű fejlesztett alkalmazás projektek.You may have existing function app projects that you developed locally using the version 1.x runtime. Verzióra való frissítéshez 2.x, hozzunk létre helyi függvényalkalmazás-projekt verziója elleni 2.x és port, a meglévő kód az új alkalmazásba.To upgrade to version 2.x, you should create a local function app project against version 2.x and port your existing code into the new app. Sikerült manuálisan frissíti a meglévő projekt és a kód, a "helyszíni" frissítés egy rendezés alapjaként.You could manually update the existing project and code, a sort of "in-place" upgrade. Vannak azonban egyéb fejlesztések verziója számos 1.x és verzió 2.x, győződjön meg arról, hogy továbbra is szükséges.However, there are a number of other improvements between version 1.x and version 2.x that you may still need to make. Például a C#-ban a hibakeresési objektum módosult TraceWriter való ILogger.For example, in C# the debugging object was changed from TraceWriter to ILogger. Létrehoz egy új verzió 2.x projektet, először a legújabb verzió 2.x sablonok alapján, frissített funkciókkal.By creating a new version 2.x project, you start off with updated functions based on the latest version 2.x templates.

A Visual Studio futtatókörnyezet verziójaVisual Studio runtime versions

A Visual Studióban, válassza ki a futtatókörnyezet-verzió a projekt létrehozásakor.In Visual Studio, you select the runtime version when you create a project. Az Azure Functions tools for Visual Studio támogatja a mindkét fő futásidejű verzióját.Azure Functions tools for Visual Studio supports both major runtime versions. A megfelelő verziójú akkor használatos, ha a Hibakeresés és közzétételi projekt beállításai alapján.The correct version is used when debugging and publishing based on project settings. A verzió beállítások vannak meghatározva a .csproj fájlt a következő tulajdonságokkal:The version settings are defined in the .csproj file in the following properties:

Verzió 1.xVersion 1.x
<TargetFramework>net461</TargetFramework>
<AzureFunctionsVersion>v1</AzureFunctionsVersion>
Verzió 2.xVersion 2.x
<TargetFramework>netcoreapp2.2</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>

Hibakeresés és a projekt közzétételekor, a futásidejű megfelelő verziója szolgál.When you debug or publish your project, the correct version of the runtime is used.

A VS Code és az Azure Functions Core ToolsVS Code and Azure Functions Core Tools

Az Azure Functions Core Tools parancssori fejlesztési és a is szolgál a Azure Functions bővítmény a Visual Studio Code.Azure Functions Core Tools is used for command line development and also by the Azure Functions extension for Visual Studio Code. Verzió elleni fejleszthet 2.x-es, a telepítés verzió 2.x verzióját az Core Tools.To develop against version 2.x, install version 2.x of the Core Tools. Verzió 1.x fejlesztési verziója szükséges a Core Tools 1.x-es.Version 1.x development requires version 1.x of the Core Tools. További információkért lásd: az Azure Functions Core Tools telepítése.For more information, see Install the Azure Functions Core Tools.

A Visual Studio Code-fejlesztéshez is szükség lehet a felhasználó vonatkozó beállításainak frissítéséhez a azureFunctions.projectRuntime telepített eszközök verziójának megfelelő.For Visual Studio Code development, you may also need to update the user setting for the azureFunctions.projectRuntime to match the version of the tools installed. Ez a beállítás is frissíti a sablonokat és a függvény létrehozása során használt nyelv.This setting also updates the templates and languages used during function app creation.

Az Azure-beli alkalmazások verziója módosításaChanging version of apps in Azure

A Functions futtatókörnyezete az Azure-ban közzétett alkalmazások által használt verziójának szabja a FUNCTIONS_EXTENSION_VERSION nastavení aplikace.The version of the Functions runtime used by published apps in Azure is dictated by the FUNCTIONS_EXTENSION_VERSION application setting. Érték ~2 célozza meg, a verzió 2.x verziójú futtatókörnyezet és ~1 1.x verzió futásidejű célozza.A value of ~2 targets the version 2.x runtime and ~1 targets the version 1.x runtime. Tetszőlegesen ne módosítsa ezt a beállítást, mert más alkalmazás-beállítások módosításai és a kód módosításait az a funkciók valószínűleg szüksége.Don't arbitrarily change this setting, because other app setting changes and code changes in your functions are likely required. A függvényalkalmazás át egy másik futtatókörnyezet-verzió ajánlott módja kapcsolatos további információkért lásd: bemutatásához az Azure Functions runtime verziók.To learn about the recommended way to migrate your function app to a different runtime version, see How to target Azure Functions runtime versions.

KötésekBindings

A verzió 2.x verziójú futtatókörnyezet használja egy új bővíthetőségi modell kötése , amely ezeket az előnyöket kínálja:The version 2.x runtime uses a new binding extensibility model that offers these advantages:

  • Támogatás a külső kötési bővítményeket.Support for third-party binding extensions.

  • Elválasztás futtatókörnyezeti és a kötéseket.Decoupling of runtime and bindings. Ez a változás lehetővé teszi, hogy a rendszerverzióval ellátott és egymástól függetlenül kiadott kötési bővítményeket.This change allows binding extensions to be versioned and released independently. Például kérheti egy bővítmény, amely az alapul szolgáló SDK újabb verziója támaszkodik a verzióra frissíteni.You can, for example, opt to upgrade to a version of an extension that relies on a newer version of an underlying SDK.

  • Egy világosabb végrehajtási környezetet, ahol csak a használatban lévő kötéseket ismertek és a futtatókörnyezet által betöltött.A lighter execution environment, where only the bindings in use are known and loaded by the runtime.

HTTP- és időzítő eseményindító kivételével minden kötések kell explicit módon hozzá a függvényalkalmazás projektjét, vagy regisztrálva a portálon.With the exception of HTTP and timer triggers, all bindings must be explicitly added to the function app project, or registered in the portal. További információkért lásd: regisztrálja a kötési bővítményeket.For more information, see Register binding extensions.

Az alábbi táblázat mutatja, melyik kötések támogatottak a minden egyes modul verzióját.The following table shows which bindings are supported in each runtime version.

Az alábbi táblázat a kötések az Azure Functions runtime két fő verziói által támogatott.The following table shows the bindings that are supported in the two major versions of the Azure Functions runtime.

TípusType 1.x1.x 2.x12.x1 EseményindítóTrigger Input (Bemenet)Input KimenetOutput
Blob StorageBlob Storage
Cosmos DBCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
A HTTP és WebhookokHTTP & Webhooks
A Microsoft Graph
Excel-táblák
Microsoft Graph
Excel tables
A Microsoft Graph
OneDrive-fájlok
Microsoft Graph
OneDrive files
A Microsoft Graph
Outlookos e-mail cím
Microsoft Graph
Outlook email
A Microsoft Graph
események
Microsoft Graph
Events
A Microsoft Graph
hitelesítési jogkivonatok
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Értesítési központNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
SzolgáltatásbuszService Bus
SignalRSignalR
Table StorageTable storage
IdőzítőTimer
TwilioTwilio

1 2.x, HTTP- és időzítő kivételével az összes kötések kell regisztrálni.1 In 2.x, all bindings except HTTP and Timer must be registered. Lásd: regisztrálja a kötési bővítményeket.See Register binding extensions.

Function alkalmazás időtúllépési időtartamaFunction app timeout duration

A Function alkalmazás időtúllépési időtartamát a Host. JSON projektfájl functionTimeout tulajdonsága határozza meg.The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. A következő táblázat az alapértelmezett és a maximális értéket mutatja percben mindkét csomag esetében és mindkét futásidejű verzióban:The following table shows the default and maximum values in minutes for both plans and in both runtime versions:

FelkészülésPlan Futtatókörnyezet verziójaRuntime Version AlapértelmezettDefault MaximumMaximum
HasználatConsumption 1. x1.x 55 1010
HasználatConsumption 2. x2.x 55 1010
App ServiceApp Service 1. x1.x KorlátlanUnlimited KorlátlanUnlimited
App ServiceApp Service 2. x2.x 3030 KorlátlanUnlimited

Megjegyzés

A Function app timeout beállítástól függetlenül az 230 másodperc az a maximális időtartam, ameddig egy HTTP által aktivált függvény válaszol a kérelemre.Regardless of the function app timeout setting, 230 seconds is the maximum amount of time that an HTTP triggered function can take to respond to a request. Ennek oka az Azure Load Balancer alapértelmezett üresjárati időkorlátja.This is because of the default idle timeout of Azure Load Balancer. A hosszú feldolgozási idő esetében érdemes lehet a Durable functions aszinkron mintát használni, vagy késleltetni a tényleges munkát, és azonnali választ ad vissza.For longer processing times, consider using the Durable Functions async pattern or defer the actual work and return an immediate response.

További lépésekNext steps

További információkért lásd a következőket:For more information, see the following resources: