Azure Functions 中支援的語言Supported languages in Azure Functions

本文會說明針對可搭配 Azure Functions 使用之語言所提供的支援等級。This article explains the levels of support offered for languages that you can use with Azure Functions. 它也會描述使用原本不支援的語言來建立函式的策略。It also describes strategies for creating functions using languages not natively supported.

支援等級Levels of support

支援的層級有兩種:There are two levels of support:

  • 正式推出 (GA) - 完整支援且已核准用於生產環境。Generally available (GA) - Fully supported and approved for production use.
  • 預覽 - 尚未支援,但預期未來會正式推出。Preview - Not yet supported but is expected to reach GA status in the future.

依執行階段版本的語言Languages by runtime version

三個版本的 Azure Functions 運行時間可供使用。Three versions of the Azure Functions runtime are available. 以下表格說明每個執行階段版本支援哪些語言。The following table shows which languages are supported in each runtime version.

LanguageLanguage 1.x1.x 2.x2.x 3.x3.x
C#C# 公開推出 (.NET Framework 4.7)GA (.NET Framework 4.7) 公開推出 (.NET Core 2.2)GA (.NET Core 2.2) 公開推出 (.NET Core 3.1)GA (.NET Core 3.1)
JavaScriptJavaScript 公開推出 (Node 6)GA (Node 6) 公開推出 (Node 10 與 8)GA (Node 10 & 8) 公開推出 (Node 12 與 11)GA (Node 12 & 11)
F#F# 公開推出 (.NET Framework 4.7)GA (.NET Framework 4.7) 公開推出 (.NET Core 2.2)GA (.NET Core 2.2) 公開推出 (.NET Core 3.1)GA (.NET Core 3.1)
JavaJava N/AN/A 公開推出 (Java 8)GA (Java 8) 公開推出 (Java 111 與 8)GA (Java 111 & 8)
PowerShellPowerShell N/AN/A 公開推出 (PowerShell Core 6)GA (PowerShell Core 6) 公開推出 (PowerShell 7 與 Core 6)GA (PowerShell 7 & Core 6)
PythonPython N/AN/A 公開推出 (Python 3.7 與 3.6)GA (Python 3.7 & 3.6) 公開推出 (Python 3.8、3.7 與 3.6)GA (Python 3.8, 3.7, & 3.6)
TypeScriptTypeScript N/AN/A 公開推出2GA2 公開推出2GA2

1 語言版本支援目前為預覽版。1 Language version support is currently in preview.
2 透過轉譯成 JavaScript 而支援。2 Supported through transpiling to JavaScript.

如需語言支援變更規劃的相關資訊,請參閱 Azure 藍圖For information about planned changes to language support, see Azure roadmap.

自訂處理常式 (預覽) Custom handlers (preview)

自訂處理常式是從 Azure Functions 主機接收事件的輕量 web 伺服器。Custom handlers are lightweight web servers that receive events from the Azure Functions host. 任何支援 HTTP 基本專案的語言都可以執行自訂處理常式。Any language that supports HTTP primitives can implement a custom handler. 這表示自訂處理常式可用來建立未正式支援之語言的函式。This means that custom handlers can be use to create functions in languages that aren't officially supported. 若要深入瞭解,請參閱 Azure Functions (preview) 的自訂處理常式 To learn more, see Azure Functions custom handlers (preview).

語言擴充性Language extensibility

從2.x 版開始,執行時間是設計來提供 語言擴充性。Starting with version 2.x, the runtime is designed to offer language extensibility. 2.x 執行階段中的 JavaScript 和 Java 語言是使用此擴充性來建置。The JavaScript and Java languages in the 2.x runtime are built with this extensibility.

接下來的步驟Next steps

若要深入瞭解如何以支援的語言開發函式,請參閱下列資源:To learn more about how to develop functions in the supported languages, see the following resources: