什麼是 Azure Functions?
- 7 分鐘
您觀察 Tailspin Space Game 網頁團隊,他們討論如何最佳地實現由管理層驅動的新行銷需求。 小組需要將一些無伺服器技術,特別是 Azure Functions 整合到其 DevOps 程式中。
您可以向團隊報告情況。
新的需求
歐文: 感謝您能在如此短的通知下前來開會。 事情正在升溫,行銷團隊已經做出了一些承諾,這可能會讓我們的處境變得複雜。 他們真的很喜歡我們的網站。 他們認為在最終發表和後續活動中,可利用排行榜來推廣遊戲。 他們希望大幅擴展規模,遠超我們原本計劃的範圍。
瑪拉: 這太棒了,對吧? 我們位於 Azure 上,因此我們可以視需要相應放大服務。
歐文: 他們只想讓任何人能夠將排行榜數據整合到自己的應用程式中。 他們認為,在我們的網站上、遊戲中、遊戲評論網站上,甚至外部部落格和個人網站上擁有相同的排行榜選項,這真的很酷。 其中一項挑戰是遊戲引擎小組目前擁有我們提取排行榜數據的生產資料庫。 他們認為他們應該在未來開發並擁有 API。
安 迪: Mara,你有什麼想法嗎?
瑪拉: 我相信我們可以想出一些東西。 以下是我的筆記:
- 我們需要快速提供,因此我們必須找到一個解決方案,讓我們可以使用我們的程式代碼和技能。
- 我們需要將一小部分功能重構為獨立的服務。
- 我們需要將生產環境中的系統管理額外負荷降到最低。
- 我們需要擴大規模,但不需要投入大量資源。
小組點頭表示同意。
其在我的電腦上可行
會議結束了。 第二天早上,安迪興奮地跳進馬拉的辦公室,進行即興聊天。
安迪: 我有了! 我找到的解決方案符合排行榜 API 的所有需求。 它是稱為 Azure Functions 的無伺服器供應專案。
瑪拉: 真棒! 我們要多久才能有可以展示的成果?
Andy:我已經完成一些工作。我派生了 GitHub 存放庫,並將排行榜程式碼重構為新的 Azure Functions 專案。 它會透過簡單的 HTTP GET 要求公開排行榜數據。 我也更新了網站,在要求排行榜時會使用該端點,而其他人都可執行相同的動作。
瑪拉: 這聽起來就像我們需要的。 我可以協助擴充現有的 CI/CD 管線,以支援建置和部署它,就像我們針對主要網站專案所做的一樣。
備註
本課程模組不會著重於如何將應用程式連線至 Azure Functions。 如果您有興趣, 請檢閱原始程式碼。 此程式代碼會使用 適用於 C# 的 Azure Functions 運行時間 ,從 Azure Functions 讀取排行榜數據。
什麼是 Azure Functions?
Azure Functions 是 Azure 無伺服器運算技術更廣泛範圍內的特定供應專案。 它為開發人員提供一種簡單的方法,在無狀態、無伺服器的環境中建置簡單的函式。 您可以使用各種方法觸發函式,例如 HTTP 要求、記憶體中數據的變更,以及從佇列接收訊息。 您可以在 Azure Functions 觸發程式和系結概念中深入瞭解觸發程式系結。
Tailspin 小組為此案例選取了 Azure Functions,因為它符合其所有需求:
- 我們需要快速提供,因此我們必須找到一個解決方案,讓我們可以使用我們的程式代碼和技能。
- 我們可以快速建置解決方案,以 ASP.NET 核心應用程式來套用我們已經擁有的程序代碼。
- 我們需要將一小部分功能重構為獨立的服務。
- 我們可以提供獨立函式,而不需要擔心其他應用程式的影響範圍。
- 我們需要將生產環境中的系統管理額外負荷降到最低。
- 使用 Azure Functions 可以免去對託管環境的擔憂。
- 我們需要擴大規模,但不需要投入大量資源。
- 無伺服器技術具有幾乎無限制的規模,可以比虛擬機或應用程式服務更快自動增加和減少。
Azure Functions 和其他無伺服器技術不一定適合每個解決方案。 稍後,瞭解您可以在哪裡找到資源,以協助您為作業選取正確的技術。