详细信息
我是 Azure 函数的新手。我正在尝试创建 azure 函数来发送(电子邮件、短信和通知)。我首先为此创建了 3 个不同的 Http 触发函数。我的问题是,有一种好方法可以为所有上述函数创建一个通用函数作为一个函数,这是否是一种好方法。
最佳答案
很难为此提供答案,因为这通常取决于您申请的详细信息,但我可以提供以下一般指导:
如果您让每个函数执行尽可能少的工作,您最终将获得一个更可靠的系统。因此,以您的例子为例,拥有单独的功能来发送电子邮件、短信和推送通知是一个好方法,因为其中任何一个路径出现故障都不会阻止其他路径的工作。
如果可能,请使用队列将多个函数连接在一起。仅当您的客户端需要某种响应时才尝试使用 HTTP。
我将对您的场景做出一些假设,以便我可以举例说明。假设您需要公开 HTTP 触发函数来发送通知。最大限度提高可靠性的设计可能如下所示:
- HTTP 触发函数接收包含目标用户和消息的有效负载,并将其写入
通知
队列,然后将 OK 返回给客户端 - 队列触发函数从
notify
队列中读取,然后从数据库/缓存中查找通知地址,将消息写入sms
队列,电子邮件
队列,根据需要推送
队列。 sms
、email
和push
的单独队列触发函数分别从队列中读取数据,然后调用相应的服务,使用消息中写入的地址详细信息。
关于c# - Azure 函数最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49262524/