Azure云计算教程03 - Functions


Azure Functions介绍

  • Azure无服架构之一
  • 收费模式可以选择Consumption Plan(运行时长不超过5分钟,可通过配置延长至10分钟)。对于Consumption Plan,只会根据调用次数,调用时长,使用内存等因素收费。
  • 收费模式也可以选择App Service Plan:可以更长时间运行function,同时使用更多内存。

触发Azure Functions的条件

  • HTTP请求 (HTTPTrigger)
  • 定时触发 (TimerTrigger)
  • BlobTrigger: 当新的文件添加到容器中时触发. 首先创建一个Storage account,在其中创建一个container。之后就可以添加一个function app,监测container中文件的变化。
  • Cosmos DB 中documents,Azure Storage blobs, Azure Queue storage消息中数据的变化
  • Azure Event Grid中的事件
  • Azure Event Hubs中的事件
  • Azure Service Bus中queue/topic中的消息

创建一个Function service

  • 创建Function App
  • 选择App Service Plan
  • 选择/创建Storage account
  • 勾选Application Insights

Output binding

可以将BlobTrigger/QueueTrigger看作是input binding。

同时也可以定义output binding,可以选择table,queue作为output。

这些可以在funcation.json中定义。

Azure Functions最佳实践

  • 避免长时间运行的任务
  • Function之间的通讯可以通过队列解决
  • Function应该都是无状态的,所有的数据都通过输入、输出传递

Durable Function

使用Durable Function,可以在无状态环境中实现含状态的函数。同时可以直到下个将被执行的函数。

  • Durable function是在Azure function的基础上,可以编写stateful function。
  • 在Durable function中,可以通过编写orchestrator function, stateful entities,来实现对状态的管理,监测,而开发人员就可以专注于商业逻辑。
  • 可以编写workflow
  • 通过durable function,可以将编写workflow的代码和实际实现代码分离,比如fan-in/fan-out模式(Fan-out/fan-in refers to the pattern of executing multiple functions concurrently and then performing some aggregation on the results)。

Durable Function的应用场景:

  • Chaining:一个函数的输出是另一个函数的输入
  • Fan-out/fan-in:等待多个并行函数的同时结束,然后再进入下一步
  • async HTTP APIs: Azure有内置API,以方便调用需要长时间运行的函数
  • 需要人工干预的工作流

添加一个Durable Function分为三个步骤:

  • 创建Durable Functions HTTP starter, 这是durable function的入口
  • 创建Durable Functions Orchestrator,这是流程控制部分
  • 创建Durable Functions Activity,这是business logic的实现部分

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !