在JavaOne大會上,微軟宣布Azure Functions(讓用戶可以在云上運行小段的代碼)支持Java。這增加了Azure Functions所支持的語言的數量,在較大的云提供商中,微軟成為第二個支持無服務器Java的。
在Ignite大會上,微軟宣布將Azure Functions移植到了.NET Core 2.0,實現了.NET跨平臺可用性,提供了支持其他編程語言的運行時。Java支持現在尚處于公開預覽階段,這也是使用Azure Functions的開發人員長期以來最希望增加的特性之一。
微軟還發布了一個用于Maven構建自動化的新插件,讓開發人員可以從當前基于Maven的項目里創建、構建及部署Azure Functions。
大約一年之前,微軟發布了Azure Functions這個運行事件驅動應用程序的無服務器計算特性。開發人員可以使用C#、F#、JavaScript(Node.js)、PowerShell、PHP、Python和 Bash等編程語言及腳本語言編寫Azure Functions,也可以上傳可執行的CMD或BAT文件作為一個函數運行。Functions可以集成其他的Azure服務,如Cosmos DB、服務總線、存儲,也可以集成第三方服務,如GitHub。Azure服務可以觸發一個函數執行一段邏輯,或者通過可配置的綁定作為輸入和輸出。微軟還提供了一套任務模板,如用于Azure Event Nubs接收新事件、運行特定的調度以及處理服務總線消息。
Azure Functions支持通過標準的OAuth提供商進行身份驗證,包括Azure活動目錄、微軟賬戶、Facebook、Google及Twitter。Java將共享同樣的特性,Azure應用服務項目管理合伙人總監Nir Mashkowski在微軟開發者博客中是這樣描述的:
新的Java運行時將共享Azure Functions提供的所有差異化特性,如各種觸發選項、數據綁定、自動擴展的無服務器執行模型以及按執行次數計費。
對于Java支持,開發人員不需要使用新工具。他們可以借助IDE及類似Eclipse、 IntelliJ和VS Code這樣的編輯器,使用自己的機器在本地構建和調試Azure Functions。
圖片來源:https://azure.microsoft.com/en-us/blog/announcing-the-preview-of-java-support-for-azure-functions/
比較大的云提供商都在投資無服務器平臺,進一步促進其他服務的使用。這些其他服務(包括數據庫和存儲)的事件會觸發無服務器計算實例運行,不管是Azure Functions、AWS Lambda、Google Cloud,還是新的Oracle Fn平臺。
平臺之間從部署到計費都不一樣。例如,Azure Functions提供了人工或計量擴展(應用服務計劃)或亞秒級的自動擴展(消費計劃),而AWS Lambda和Google Cloud僅提供自動擴展。語言支持方面的差別也很顯著,Azure Functions和Oracle Fn支持的語言更多,而Google Cloud僅支持JavaScript,AWS Lambda僅支持C#、 JavaScript、Java和Python。此外,Java在RedMonk和Stack Overflow上都位居排名最高的語言之列,因此,對于大多數的無服務器平臺而言,支持Java很有價值。
近日,Pund-IT首席分析師Charles King這樣評價了微軟和Oracle的Java支持:
微軟新增的Azure Functions Java支持和Oracle最近的JavaOne/OpenWorld大會都發映出圍繞Java的不斷創新以及Java社區的活力。
查看英文原文: Azure Functions Now Support Java