Azure Functions 解决方案设计

已完成

Azure Functions 是一个无服务器应用程序平台。 当你想要在云中运行一小段代码时,可以使用函数,而无需担心基础结构方面的问题。

有关 Azure Functions 的注意事项

让我们回顾一下 Azure Functions 的一些优点和方案,它们使其成为生成新工作负载的出色计算解决方案。

Flowchart for selecting Azure Functions solutions to build new workloads.

  • Azure Functions 提供固有的可伸缩性。 你仅需为所使用的资源付费。

  • 通过 Azure Functions,可以使用选择的语言编写函数代码。

  • Azure Functions 以两种重要方式支持“按需计算”

    • Azure Functions 允许你将系统的逻辑实现为易于使用的代码块。 这些代码块(函数)可以在需要响应关键事件的任何时候运行。

    • 随着请求的增加,Azure Functions 会根据需要提供尽可能多的资源和函数实例来满足需求。 请求完成后,会自动去除任何多余的资源和应用程序实例。

  • Azure Functions 是处理事件触发的特定可定义操作的理想解决方案。 函数可以处理 API 调用,并将处理的数据存储在 Azure Cosmos DB 中。 发生数据传输后,另一个函数可以触发通知。

    Diagram that shows how Azure Functions responds to API calls and outputs data to Azure Notification Hubs.

使用 Azure Functions 时的注意事项

让我们看一下使用 Azure Functions 的一些最佳做法。 在考虑这些建议时,请考虑在 Tailwind Traders 基础结构中使用 Azure Functions 的优势。

  • 考虑长时间运行的函数。 避免可能引发意外超时问题的长时间运行的大型函数。 尽可能地将大函数重构为较小的函数集,这些函数集可以协同工作并更快地返回响应。 消耗计划函数的默认超时为 300 秒,并且任何其他计划的默认超时为 30 分钟。

  • 考虑持久函数。 使用持久函数和较小的函数集解决配置中的超时问题。 使用持久函数可以编写有状态函数。 在幕后,该函数可以管理应用程序状态、检查点和重启。 持久函数的一种示例应用模式是函数链。 函数链按特定的顺序执行一系列函数。 一个函数的输出应用于另一个函数的输入。

  • 考虑性能和缩放。 计划如何将具有不同负载配置文件的函数分组。 假设有两个函数。 一个函数处理数千个排队消息,其内存要求较低。 另一个函数只是偶尔调用,但其内存要求较高。 在此场景中,你可能需要部署单独的函数应用程序,其中每个函数都有自己的一组资源。 单独的资源意味着可以独立缩放函数。

  • 考虑防御函数。 设计处理异常的函数。 下游服务、网络中断或内存限制可能导致函数失败。 编写函数,使其在发生故障时能够继续运行。

  • 考虑不共享存储帐户。 通过为每个函数应用程序使用单独的存储帐户来最大限度地提高性能。 创建函数应用时,将其与唯一存储帐户相关联。 如果函数生成大量的存储事务,请务必使用唯一存储帐户。

业务应用程序

请花几分钟时间阅读其他 Azure Functions 最佳做法

可以访问代码示例页来获得有关如何使用 Azure Functions 的更多思路。