本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Function 】系列。
前言
随着无服务计算的兴起和大数据环境中的数据集成需求, 需要使用某些轻量级的服务,来实现一些简单操作。因此Azure Function就成了微软云上的一个必不可少的组成部分。
下面先简单创建环境,并且在过程中介绍一些知识。
创建Azure Function
在Azure Portal 上搜索Function APP, 点击create:
这里简要介绍一下Azure Function, Function App, Function:
- Azure Function:是服务名, 入Azure VM, Azure Storage Account等。 简单理解就是“种类”。
- Function App: 是Azure Function的一个实例。就如某一个SQL DB, 某一个具体的Storage Account。
- Function: 是用代码编写的功能,一个funcion app可以有多个function(完整功能的代码)。
但是一般情况下,Azure Function和Function App是可以混用的。
Hosting Plans
接下来就是选择hosting plan, 虽然azure function是serverless, 但是不代表真的没有server, 它总要有一个地方运行服务和代码,只是不需要你管理而已。
当前版本中有下面的几种plan, 这些plan也指定了代码所能运行的操作系统平台,比如Python, 只能运行在Linux上,同时plan也带有了scale up, out 的特点。
- Consumption:是默认的hosting plan, 通常用于开发和测试环境。
- Premium:适用于连续运行的,需要更多CPU, 内存还有网络安全要求的环境,可以运行更久的function和更快的启动时间(Azure Function并不设计用于运行长时间的代码, 所以会有比较短的超时时间)
由于这些计划的变更频率较快,为了获得最新更新,建议使用前检查官方链接:
https://learn.microsoft.com/zh-cn/azure/azure-functions/functions-scale
不同的plan具有不同的基础架构,通常是各种VM,所以产生的费用也有很大区别,建议如果是学习,应该对比一下费用再创建。
这里使用consumption plan和python语言(OS 只能选择Linux)。 同时保持其他默认配置。
创建完成后,可以看到会有一个Function App, 一个Storage Account(这里使用了现有的,所以没有额外创建), 还有一个App Service Plan。 到此为止,我们就有了一个初步的Azure Function 环境。
背景
接下来介绍一些Azure Function的背景。Azure Function 是微软的事件驱动无服务解决方案。
从下图可以看到,用户可以通过编写代码部署到Azure Function中。
Azure Function 通过App Service Plan来运行代码。
当文件上传(或其他操作,基于触发器的种类),触发了事件时,就会调用对应的代码(function)执行操作,也可能会调用Logic app等其他支持的服务进行操作,最终展示结果给用户。
Azure Function是事件驱动(Event-driven), 意味着它会被某些事件所触发, 这些事件会跟触发器(trigger)关联。
触发器负责执行某个function,常见的trigger可见下图:
Bindings:
Azure Function是Azure服务, 往往需要跟其他外部服务, 资源交互。Bindings用于Function中连接不同 Azure 服务中的数据。我们可以在同一函数中连接到多个服务。这个过程需要编写代码实现,但是只需定义属性并输入请求的参数即可。
上图展示了Bindings和Trigger与Azure Function之间的关系。
Input Bindings: 可以读取已连接的服务的数据并处理。
Output Bindings:用于发送到相关服务的处理后的数据。
小结
本文简要介绍了Azure Function,并搭建了一个最简单的环境。后续将在演示过程中融入更多的信息。