前言

[Azure 筆記] 前言


原文

Discover Azure Functions


What is Azure Functions

Azure Functions 是 Azure 提供的一種 serverless solution

Azure Functions 會為你管理程序的運行環境 (e.g. 操作系統、Node.js)
例如保持你的運行環境總是在使用最新的版本
提供一些方便的 deploy 方式
提供相應的運算資源(e.g. CPU, memory) 等等

所以在使用 Azure Functions 時
你可以撰寫較少的程式碼、維護較少的基礎結構,並節省成本
也不需要擔心部署和維護伺服器

 

Azure Functions 支援 trigger(觸發) 和 binding(繫結)
Trigger 就是你啟動你的程序的方式 (e.g. 定時、HTTP request)
Binding 就是設定你的 function 的 input(輸入) 來源和 output(輸出) 目的地 (e.g. 從 message queue 中取得資料作輸入然後把結果輸出到 database)


Compare Azure Functions and Azure Logic Apps

Azure Functions 和 Azure Logic 都是 Azure 的 serverless 的服務
但它們的定位有一點不同

Azure Functions 是 serverless computing service
而 Azure Logic Apps 就是 serverless workflow integration platform

兩者都可以被用作建立複雜的協調流程(orchestrations)
什麼是協調流程?
說實話我也不太明白
我猜大概就是可以把各種各樣的 Azure 服務整合到你的工作流程中
如果大家知道些什麼的話也非常歡迎在下面留言交流
我之後若是知道些什麼的話也會在這樣更新的

它們主要的區別是
Azure Functions 的主要運行邏輯是通過編程(coding) 並使用 Durable Functions extension 完成的
而 Azure Logic Apps 則是主要通過 GUI 完成的

下表是它們的一些區別

TopicAzure FunctionsLogic Apps
DevelopmentCode-first (imperative)Designer-first (declarative)
ConnectivityAbout a dozen built-in binding types, write code for custom bindingsLarge collection of connectors, Enterprise Integration Pack for B2B scenarios, build custom connectors
ActionsEach activity is an Azure function; write code for activity functionsLarge collection of ready-made actions
MonitoringAzure Application InsightsAzure portal, Azure Monitor logs
ManagementREST API, Visual StudioAzure portal, REST API, PowerShell, Visual Studio
Execution contextRuns in Azure, or locallyRuns in Azure, locally, or on premises

Compare Functions and WebJobs

Azure Functions 和 Azure App Service WebJobs 都是針對開發員的 Code First (以編程為主) 的整合服務
兩者都是建立在 Azure App Service 之上
也支援 source control integration, authentication, and monitoring with Application Insights integration 等功能

Azure Functions 是建立於 WebJobs SDK 之上的
所以它們會有很多相同的 event triggers (事件觸發程序)
以及跟其他 Azure services 的連接方式

在選擇使用那個服務時請考慮下列的因素

FactorFunctionsWebJobs with WebJobs SDK
Serverless app model with automatic scalingYesNo
Develop and test in browserYesNo
Pay-per-use pricingYesNo
Integration with Logic AppsYesNo
Trigger eventsTimer
Azure Storage queues and blobs
Azure Service Bus queues and topics
Azure Cosmos DB
Azure Event Hubs
HTTP/WebHook (GitHub
Slack)
Azure Event Grid
Timer
Azure Storage queues and blobs
Azure Service Bus queues and topics
Azure Cosmos DB
Azure Event Hubs
File system

一般而言,Azure Functions 都是更好的選擇
但在下列兩個情況
WebJobs 可能是更好的選擇

  • 你想要更充分的掌控 JobHost object (listens for events 的程式碼)
    Azure Function 只能通過 host.json 來自訂 JobHost 的行為
    有些行為是不能通過這程方式設定的
    例如只有 WebJobs SDK 可讓您為 Azure Storage 設定自訂的 retry policy
  • 有要運行程式碼的 App Service app 並想要在相同的 Azure DevOps 環境中一起管理

Reference

https://learn.microsoft.com/en-us/azure/azure-functions/functions-compare-logic-apps-ms-flow-webjobs#summary

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Trending