Azure功能最佳实践

Mal*_*iri 1 c# azure azure-functions

详情

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

Pau*_*tum 5

对此很难给出答案,因为它通常取决于您的应用程序的详细信息,但是我可以提供以下一般指导:

  1. 如果使每个功能完成的工作量最少,您将得到一个更可靠的系统。因此,以您的示例为例,具有单独的发送电子邮件,短信和推送通知的功能是一种不错的方法,因为这些路径中的任何一条均不会失败。

  2. 在可能的情况下,将多个功能与队列连接在一起。当您的客户端需要某种响应时,请尝试仅使用HTTP。

我将对您的情况进行一些假设,以便举例说明。假设您需要公开HTTP触发的函数才能发送通知。最大化可靠性的设计可能如下所示:

  1. HTTP触发的函数接收具有目标用户和消息的有效负载,并将其写入notify队列,然后将OK返回给客户端
  2. 队列触发的函数从notify队列中读取,然后从db / cache中查找通知地址,并根据需要将消息写入sms队列,email队列和push队列。
  3. 对于单独的队列触发的功能smsemailpush从他们的队列中的每个读取,然后再调用相应的服务,使用写入该消息的详细地址。