Dapr 和 Azure Functions : Hello world

2022年01月15日 阅读数:6
这篇文章主要向大家介绍Dapr 和 Azure Functions : Hello world,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

本篇文章内容来自 https://charliedigital.com/2021/07/01/dapr-and-azure-functions-part-1-hello-world/ ,是按这篇文章的操做记录。git

使用 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%2Ckedawindows


第一步:建立 函数项目:api

建立一个项目文件夹 dapr-func,使用Visual Studio code 打开并运行下面的命令 浏览器

func init --name HelloWorldFunc --worker-runtime dotnetbash


第二步:添加HelloWorld 函数app

运行命令 func function new --name HelloWorld --authlevel anonymous ,选择 HttpTrigger ide

运行命令 func start 测试函数函数

image

浏览器访问 http://localhost:7071/api/HelloWorld测试

image


第三步: 用Dapr 来运行函数代理

使用下列命令经过Dapr 边车运行函数

dapr run --app-id helloworldfuncdapr --app-port 7071 --dapr-http-port 7070 func start

  1. --app-id helloworldfuncdapr 是一个应用标识符,他将是服务URL的一部分
  2. --app-port 7071 是应用程序将与 Dapr 通讯的端口
  3. --dapr-http-port 7070 是 Dapr 经过 sidecar 暴露应用程序端口(在本例中为 7071)的地方
  4. func start 运行函数应用程序

image

咱们仍然能够使用 直接访问 Function http://localhost:7071/api/HelloWorld,但如今咱们也能够使用 Dapr sidecar 访问它http://localhost:7070/v1.0/invoke/helloworldfuncdapr/method/api/HelloWorld

让咱们分解网址:

  1. http://localhost:7070/v1.0/invoke 注意咱们指定的端口 7070 --dapr-http-port
  2. /helloworldfuncdapr是咱们以前指定的--app-id
  3. /method/api/HelloWorld 是到 Functions 端点的路由


image


image

Dapr 和 Functions 在本地机器上的不一样进程中运行,Dapr 充当转发代理。func.exe 正在运行咱们的 Functions 应用程序,而 Dapr 在这一点上或多或少像一个简单的 HTTP 转发代理。