由于對腳本語言的熟悉,一些Windows廠商將PowerShell與Azure Functions一起使用。這里有一些技巧和注意事項,在開始實施之需要要注意。 函數即服務產品,比如Azure Functions,只不過是純代碼而已。
不過,這不僅僅是為了開發者, 一些腳本語言也為管理員和系統分析人員創造了新機會。
Azure Functions的腳本選擇
Azure Functions是一組事件驅動的應用程序組件,它可以與其他Azure服務進行交互。對于異步任務,如數據提取和處理、抽象、轉換和加載進程或其他數據管道,以及微服務或云服務集成,都非常有用。
一般而言,Functions非常適合作為傳統企業應用的集成和腳本工具,因為它們具有事件驅動、輕量級和基礎設施靈活的特點。使用熟悉的語言,如PowerShell、Python和Node.js的能力,使這種情況更加強大。由于PowerShell在Windows IT廠商和Azure用戶中很受歡迎,下面的最佳實踐側重于特定的腳本語言,但也適用于其他語言。
PowerShell支持演進作為開源Azure WebJobs軟件開發工具包的一部分,2016年推出的支持Azure Functions的PowerShell支持仍被認為是實驗性的,可能會發生變化。 GitHub的一位微軟開發人員指出,一個潛在的障礙是沙盒安全模型——它作為交付Functions的交付共享服務是必須的,它并不能與多個PowerShell用戶與環境交互時保持一致。
微軟建議在生產場景中使用Azure Automation over Functions,直到微軟增強PowerShell支持。 盡管如此,IT團隊仍然可以將PowerShell功能用作許多復雜應用的一部分。
Azure Functions的PowerShellPowerShell最初在Azure Functions中實現的是PowerShell版本4,而且只支持腳本(PS1文件),不能支持模塊(PSM1 文件),這最好地簡化了任務,加速了開發。為了在Azure Functions中使用PowerShell模塊,用戶可以更新PSModulepath環境變量,指向含有定制化模塊的文件夾,并通過FTP連接它。
Azure Functions vs. Logic Apps當供應商已經提供了Logic Apps后,有些開發人員就開始質疑Azure Functions。Logic Apps具有事件驅動開發的拖放GUI。 雖然這些服務看似重疊,但它們是互補的。
Functions是由事件觸發的代碼模塊,而Logic Apps是由事件觸發的工作流。 此外,Logic Apps可以將Functions作為其工作流程的一部分。Logic Apps編輯器本身支持Functions的創建和調試,這意味著開發人員可以在單一環境中進行編碼。
Logic Apps最適合使用多個應用程序的復雜工作流,而Azure Functions最適合于自定義微服務或代碼模塊,以便快速執行并與其他服務集成。
當使用腳本時,請通過文件或環境變量將數據傳輸給PowerShell函數,因為一個函數不會存儲或緩存運行時環境。通過事件觸發器或輸入綁定,傳入到函數的數據是通過在PowerShell中通過環境變量訪問的文件傳遞的。同樣的方案民適用于數據輸出。由于輸入數據只是一個原始文件,因此用戶必須知道他們期待的是什么并進行相應的解析。函數本身不會格式化數據,但會支持大多數格式,包括:
string;int;bool;object/JavaScript Object Notation;binary/buffer;stream; andHTTPPowerShell函數可以通過HTTP請求、Azure服務隊列來觸發,如將消息添加到指定的存儲隊列或定時器(見圖1)。開發人員可以使用Azure門戶、Visual Studio——C#函數或本地代碼編輯器和集成開發環境創建Azure函數,但門戶是最簡單的選擇。
圖1 PowerShell函數觸發器
建議無論是代碼是在C#、PowerShell,還是在Python中,Azure Functions工作方式都是一樣的,這使得團隊可以使用他們擅長的語言,或更容易掌握的語言。Functions的功能源于與其他Azure服務和內置運行時環境的集成。編寫即函數比為簡單任務創建獨立的應用程序更有效率,比如從HTTP請求觸發webhook。
雖然PowerShell對于Windows團隊來說是一個很有吸引力的選擇,但還是需要謹慎行事,因為Azure Functions還 不斷進化中。然而,實施細節可能會改變。
我們一直都在努力堅持原創.......請不要一聲不吭,就悄悄拿走。
我原創,你原創,我們的內容世界才會更加精彩!
【所有原創內容版權均屬TechTarget,歡迎大家轉發分享。但未經授權,嚴禁任何媒體(平面媒體、網絡媒體、自媒體等)以及微信公眾號復制、轉載、摘編或以其他方式進行使用。】
要發表評論,您必須先登錄。