c# - Azure 函数最佳实践

标签 c# azure azure-functions

详细信息

我是 Azure 函数的新手。我正在尝试创建 azure 函数来发送(电子邮件、短信和通知)。我首先为此创建了 3 个不同的 Http 触发函数。我的问题是,有一种好方法可以为所有上述函数创建一个通用函数作为一个函数,这是否是一种好方法。

最佳答案

很难为此提供答案,因为这通常取决于您申请的详细信息,但我可以提供以下一般指导:

  1. 如果您让每个函数执行尽可能少的工作,您最终将获得一个更可靠的系统。因此,以您的例子为例,拥有单独的功能来发送电子邮件、短信和推送通知是一个好方法,因为其中任何一个路径出现故障都不会阻止其他路径的工作。

  2. 如果可能,请使用队列将多个函数连接在一起。仅当您的客户端需要某种响应时才尝试使用 HTTP。

我将对您的场景做出一些假设,以便我可以举例说明。假设您需要公开 HTTP 触发函数来发送通知。最大限度提高可靠性的设计可能如下所示:

  1. HTTP 触发函数接收包含目标用户和消息的有效负载,并将其写入通知队列,然后将 OK 返回给客户端
  2. 队列触发函数从notify队列中读取,然后从数据库/缓存中查找通知地址,将消息写入sms队列,电子邮件队列,根据需要推送队列。
  3. smsemailpush 的单独队列触发函数分别从队列中读取数据,然后调用相应的服务,使用消息中写入的地址详细信息。

关于c# - Azure 函数最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49262524/

相关文章:

c# - Asp.net 链接 onRowCommand 不工作

安全存储容器上的 Azure 函数应用程序

azure - 如何从 Bicep 获取 Azure Functions key

c# - Azure函数: limit the number of calls per second

c# - DefaultModelBinder 和继承对象的集合

c# - 减法后计算剩余多边形的算法

mysql - Azure应用服务:如何允许其余api访问mysql服务器?

c# - Azure 上具有 ClickOnce 应用程序的 Asp.net MVC 网站

azure - 无法将 Office 365 与 Azure 订阅关联

c# - ASP.Net MVC 3 路由损坏