是否可以使用Azure功能应用程序来执行多个功能?



我用QueueTrigger创建了一个Azure函数。在这里,我计划在通过ASP向Azure队列添加条目时执行一些功能。. NET Core WebAPI Controller.

public void Run([QueueTrigger(QUEUE_NAME, Connection = "StorageConnectionString")] string queueMessage)
{
_log.LogInformation($"Azure Function App call started...: {queueMessage}");

// Connect to the database and fetch the data via Stored Procedure

// Bind the data to Excel spreadsheet

// Upload the spreadsheet to Azure Blob Storage and get the filename

// Send a mail to the recepient including link to the filename

_log.LogInformation($"Azure Function App call completed...: {queueMessage}");
}

我创建了一个单独的类库项目,其中包含上述Azure功能应用程序所需的功能。我向Azure功能应用程序添加了对类库项目的引用,并对发送邮件的一个功能进行了验证。

我想知道这是一个很好的做法,以完成一个单一的Azure功能应用程序的功能列表,或者有任何其他好的选择。

关于这个场景,有人能提供他们的指导吗?

我不认为这是一个很好的做法,我认为函数应该保持简单和可重复,以防出现问题。你可以稍微扩展一下单一责任原则,但在这种情况下,我认为你做得太过分了。假设邮件服务器由于某种原因宕机,每次发送邮件都失败。你的函数将被重新请求,必须获取数据,绑定excel并一遍又一遍地上传电子表格,只是在发送邮件时再次失败。有大量的计算和存储丢失,可能孤立的文件,即使你没有解释它。因此,我至少将其分成两部分,并在文件发布到blob存储时创建另一个触发器,并让另一个函数处理本例中的电子邮件发送。我的两分钱。

最新更新