什麼是 Azure Functions?
Azure Functions 是雲端式計算服務。 函式可為 Azure 提供事件導向且可調整的無伺服器計算。 在某些情況下,您只需要支付函式程式碼執行時間的費用。
當您需要執行程式碼時,您可以使用 Azure Functions 來執行。 例如,您的程式碼可能會因為事件或變更而執行,例如訊息抵達佇列或儲存物件更新時。 您也可以使用 CRON 規則來定義要執行程式碼的排程間隔。
使用觸發程式來決定何時執行程式碼
Azure Functions 可讓您定義開始執行程式碼的觸發程式。 觸發程式也可以處理將資料傳遞至函式的輸入。 每個函式只能有一個觸發程式。 Azure 函式支援的一些觸發程式類型包括:
- 儲存體: 您可以在插入新的資料列時,從 Azure Cosmos DB 之類的資料庫接聽事件。
- 事件: 事件方格和事件中樞會產生可觸發程式碼的事件。
- HTTP 程式碼: Web 要求和 Webhook 可以觸發 HTTP 程式碼。
- 佇列: 也可以處理佇列訊息。
- 計時器: 可以使用特定時間間隔叫用程式碼。
使用繫結連線至資料來源。 繫結是簡化輸入和輸出資料編碼的方法。 雖然您可以使用用戶端 SDK,從函式程式碼連線到服務,但 Functions 提供繫結來簡化這些連線。 基本上,繫結是您不需要撰寫的連線程式碼。 您可以與 Azure 上的許多服務整合、解決整合問題,並將商務流程自動化。
繫結有兩種類型:輸入和輸出。 輸出繫結提供將資料寫入資料目的地的方法,例如,將訊息放在佇列或資料庫中的新資料列。 輸入繫結可用來從不同於觸發函式的資料來源,將資料傳遞至函式。
功能
有一些功能可讓 Azure Functions 成為誘人的選擇:
彈性主控方案。 有三個不同的主控方案可符合您的業務需求。
- 使用情況方案。 這是 Functions 的完全無伺服器裝載選項。 在執行函式時,Functions 可自動調整,並只需支付計算資源的費用。 此方案會對短期流程工作負載提供符合成本效益的計算,這些工作負載通常具有較不可預測的負載,並更間歇性的執行。
- 進階方案。 在此方案中,您的函式會保持初始化狀態,這表示閒置之後不會有任何延遲。 當您的函式應用程式需要執行較長期間時,這是良好的選擇方案,但您仍然需要動態調整。 此方案也可讓您更快使用比使用情況方案更多的資源來開始調整規模。 使用情況方案中也會限制執行時間,而此方案可以取代情況方案。 雖然您仍會獲得動態調整的成本優勢,但您需要支付更多費用。
- 專用方案。 您可以使用一般 App Service 方案來執行函式。 這最適合用於函式需要持續執行的案例。 另一個優點是,您可以完全控制應用程式調整的方式,並更輕鬆地預測成本。 當您有現有但使用量過低的 App Service 方案可供使用時,這也是不錯的選擇。
動態調整。 在大部分方案中,函式會根據負載動態調整。 當執行需求增加時,系統會自動將更多資源配置給服務,而當要求下降時,資源與應用程式執行個體會自動卸除。 在使用情況方案中,您完全不需要支付閒置函式的費用。
事件結構。 函式應該是小型且專注的,並可處理傳入的資料,然後結束或陸續引發新的事件。 Azure 函式的一些常見使用區域,包括傳送電子郵件、開始備份、訂單處理、工作排程,例如資料庫清除、傳送通知、訊息和 IoT 資料處理。