本篇文章內容來自 https://charliedigital.com/2021/07/01/dapr-and-azure-functions-part-1-hello-world/ ,是按這篇文章的操作記錄。
使用 Azure Functions Core Tools 可以在本地計算機上通過命令提示符或終端開發和測試函數。 本地函數可以連接到實時 Azure 服務,你可以在本地計算機上使用完整的 Functions 運行時調試函數。安裝使用 Azure Functions Core Tools: https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-run-local?tabs=v4%2Cwindows%2Ccsharp%2Cportal%2Cbash%2Ckeda
第一步:創建 函數項目:
創建一個項目文件夾 dapr-func,使用Visual Studio code 打開並運行下面的命令
func init --name HelloWorldFunc --worker-runtime dotnet
第二步:添加HelloWorld 函數
運行命令 func function new --name HelloWorld --authlevel anonymous ,選擇
HttpTrigger
運行命令 func start 測試函數
瀏覽器訪問 http://localhost:7071/api/HelloWorld
第三步: 用Dapr 來運行函數
使用下列命令通過Dapr 邊車運行函數
dapr run --app-id helloworldfuncdapr --app-port 7071 --dapr-http-port 7070 func start
--app-id helloworldfuncdapr
是一個應用標識符,他將是服務URL的一部分--app-port 7071
是應用程序將與 Dapr 通信的端口--dapr-http-port 7070
是 Dapr 通過 sidecar 暴露應用程序端口(在本例中爲 7071)的地方func start
運行函數應用程序
我們仍然可以使用 直接訪問 Function http://localhost:7071/api/HelloWorld
,但現在我們也可以使用 Dapr sidecar 訪問它http://localhost:7070/v1.0/invoke/helloworldfuncdapr/method/api/HelloWorld
讓我們分解網址:
http://localhost:7070/v1.0/invoke
注意我們指定的端口 7070--dapr-http-port
/helloworldfuncdapr
是我們之前指定的--app-id
/method/api/HelloWorld
是到 Functions 端點的路由
Dapr 和 Functions 在本地機器上的不同進程中運行,Dapr 充當轉發代理。func.exe
正在運行我們的 Functions 應用程序,而 Dapr 在這一點上或多或少像一個簡單的 HTTP 轉發代理。