指南:创建无服务器应用程序

今天,我们正在为创建无服务器应用程序制定指南。 它包括3个主要部分:创建无服务器逻辑,设置触发器和使用绑定。 立即加入!



引言


想象一下,您正在一家自动扶梯公司工作,该公司已在物联网技术方面投入巨资,以在本地跟踪您的产品。 您可以控制自动扶梯驱动机构上温度传感器的数据处理。 您跟踪温度数据并添加一个标志,以指示驱动机构的温度过高。 在下游系统中,此数据可让您确定服务需求。

您的公司从多个地方的传感器和不同型号的自动扶梯接收数据。 这些数据有多种格式,包括发送批处理文件,数据库中的计划检索,队列中的消息以及事件中心的传入数据。 您想开发一个可重用的服务,使您可以处理来自所有这些来源的温度数据。

在使用传统的企业体系结构策略开发此类服务时,您需要事先考虑服务器基础架构及其维护:分配必要的设备,计划其安装,与IT部门协调工作以进行管理等。无服务器计算是一种选择。 借助无服务器计算,云提供商可以管理基础架构的配置和维护,使您可以完全专注于创建逻辑应用程序。 Azure Functions服务是Azure无服务器计算产品的关键组件,它使您可以在云中自行执行用您自己的编程语言编写的代码段或功能。

学习目标


在本模块中,您将学习如何执行以下任务:

  • 确定无服务器计算满足业务需求的适用性。
  • 在Azure门户上创建一个Azure功能应用程序。
  • 使用触发器执行功能。
  • 在Azure门户中跟踪和测试Azure功能

确定无服务器计算满足业务需求的适用性


为了帮助您确定是否应该应用无服务器计算,我们将首先为您提供有关此概念的一般信息。

什么是无服务器计算?


无服务器计算是一种托管在云平台上的功能即服务(FaaS)或微服务。 业务逻辑以功能格式执行,这意味着您无需手动准备或扩展基础结构。 所有基础架构管理均由云服务提供商进行。 该应用程序会根据负载自动按比例放大或缩小。 Azure提供了几种创建此类体系结构的方法。 两种最常见的方法是使用Azure逻辑应用程序和Azure功能。 在本模块中,我们将考虑它们。

什么是Azure功能?


功能Azure是一个无服务器的计算平台。 它允许开发人员实施无需准备基础结构即可执行的业务逻辑。 功能在结构上可以很好地扩展,您只需为实际使用的资源付费。 可以使用任何方便的语言(包括C#,F#和JavaScript)创建功能代码。 还支持NuGet和NPM,这使得在业务逻辑中使用许多流行的库成为可能。

无服务器计算解决方案的优势


无服务器计算是在云中托管业务逻辑代码的绝佳选择。 无服务器服务(例如Azure Functions)允许您以适合您的任何语言创建业务逻辑。 您可以进行自动扩展,而不必担心服务器管理,您只需为实际使用的资源付费,而不必为预留的时间付费。 以下是您需要考虑的无服务器解决方案的其他一些功能。

缺乏过多的基础设施分配


假设您准备了虚拟机服务器,并为它们提供了足够的资源以应对峰值负载。 在工作量较少的期间,您可能会为未使用的基础架构付费。 无服务器计算有助于解决资源过多分配的问题,因为缩放是自动执行的,您只需为功能的活跃工作付费。

无状态逻辑


无状态功能非常适合无服务器计算。 函数实例将根据请求创建和删除。 如果需要状态跟踪,则可以将其存储在适当的存储服务中。

活动管理


功能是事件驱动的。 这意味着它们仅在响应某些事件(触发)时才执行,例如,接收到HTTP请求或向队列添加消息。 触发器在功能定义中配置。 这种方法大大简化了代码库,仅允许您声明数据源(触发/输入绑定)和目标(输出绑定)。 您无需编写即可创建自己的代码以使用队列,blob,集线器等。剩下的就是创建业务逻辑。

函数可以在传统的计算环境中使用。


函数是无服务器计算的关键组成部分,但同时又充当执行任何类型代码的计算平台。 如果应用程序需要更改,则始终可以在熟悉的服务器环境中部署相同的项目,从而获得控制缩放,在虚拟网络上启动甚至完全隔离功能的灵活性。

无服务器计算解决方案的缺点


无服务器计算并非始终是托管业务逻辑的最佳选择。 以下是一些可能会影响您决定在无服务器计算中托管服务的功能。

交货时间


默认情况下,函数使用5分钟的等待时间。 可以增加,但不能超过10分钟。 如果该功能耗时超过10分钟,则可以将其托管在虚拟机上。 另外,如果您的服务以HTTP请求开头,并且您希望收到HTTP响应,则等待时间限制为2.5分钟。 最后,还有一个额外的机会来创建稳定的功能,以便在没有时间限制的情况下协调多个功能的性能。

执行频率


第二个特征是执行频率。 如果期望多个客户端一次连续执行该功能,则合理评估使用情况并相应地计算使用这些功能的成本是合理的。 在虚拟机中托管服务可能更便宜。

每10秒进行扩展时,只能创建一个功能应用程序实例,但总共不能超过200个实例。 请记住,每个实例可以同时执行多个操作,也就是说,每个实例可以处理的流量没有限制。 不同类型的触发器具有不同的缩放要求。 检查选定的触发器及其相关的限制。

在Azure门户中创建功能应用程序


本教程需要一个沙箱

沙箱提供对本教程所需的Azure资源的免费访问。 您的Azure订阅将不收费。

输入沙盒

现在您可以开始实施温度控制服务了。 在上一个模块中,您确定了无服务器解决方案最适合解决您的问题。 现在,让我们创建一个函数应用程序来存储Azure函数。

什么是功能应用程序?


函数放置在称为函数应用程序的上下文中。 功能应用程序使您可以在Azure中逻辑分组和组织功能并计算资源。 在我们的示例中,您将创建一个功能应用程序来托管电梯驱动器的温度控制服务。 要创建功能应用程序,您需要做出多项决定,包括选择服务计划和合适的存储帐户。

选择服务计划


功能应用程序可以使用两种类型的服务计划之一。 这些类型中的第一种是基于消耗的服务计划。 使用无服务器Azure应用程序平台时,此计划非常有用。 基于消耗的服务计划可提供自动扩展,并且仅在功能期间收取费用。 基于消耗的服务计划允许您配置等待时间以完成功能。 默认情况下,此期限为5分钟,但可以增加到10分钟。

第二种类型是Azure应用程序服务计划。 该计划通过在选定虚拟机上连续运行应用程序来避免等待时间。 如果使用应用程序服务计划,则需要管理功能在其中运行的应用程序的资源。 严格来说,这不允许我们考虑无服务器计划。 但是在某些情况下,例如,如果连续使用功能或需要比基于消耗的计划所提供的功能更多的处理能力或更长的执行时间,则它更适合。

存储帐户要求


创建的功能应用程序必须绑定到存储帐户。 您可以选择一个现有的存储帐户或创建一个新的。 功能应用程序将此存储帐户用于内部操作,例如功能执行日志记录和执行触发器的管理。 如果使用基于消耗的服务计划,则功能代码和配置文件也会存储在此处。

创建功能应用程序


让我们在Azure门户上创建功能应用程序。

使用与激活沙箱相同的帐户登录到Azure门户

单击Azure门户左上角的“创建资源”按钮,然后选择“入门”>“无服务器功能应用程序”以打开功能应用程序的“创建”列。 可以通过菜单项“计算”>“应用程序功能”打开同一列。



选择一个全球唯一的应用程序名称。 它将用作您的服务的基本URL。 您可以命名它,例如,escalator-functions-xxxxxxx,用字母的缩写和出生年份代替十字架。 如果此名称不是全局唯一的,请尝试其他组合。 有效字符为– z,0–9和-。

选择要在其中托管功能应用程序的Azure订阅。

选择一个名为[沙盒资源组名称]的现有资源组。

选择您的Windows操作系统。

对于“放置计划”,选择“消耗计划”,该计划用于无服务器分配。

在列表中,选择离您最近的地理位置。 在工作系统中,您需要选择最接近客户或消费者职能部门的位置。

免费的沙箱允许您在全局Azure区域的子集中创建资源。 创建任何资源时,请从以下列表中选择一个区域:

  • 美国西部2
  • 美国中西部
  • 美国中南部
  • 美国中部
  • 美国东部
  • 西欧
  • 东南亚地区
  • 东日本
  • 巴西南部
  • 东南澳大利亚
  • 印度中部

对于“运行时堆栈”参数,请从下拉列表中选择JavaScript,因为使用这种语言,我们将在本练习中实现函数示例。

创建一个存储帐户。 Azure将使用应用程序的名称自动为其命名。 您可以将该名称替换为其他名称,但始终唯一。

确保已打开Azure Application Insights,然后选择离您(或您的客户)最近的区域。

选择创建。 部署将需要几分钟。 完成后,您将收到一条通知。

验证Azure功能应用程序


从Azure门户左侧的菜单中,选择“资源组”。 然后,您将在可用组列表中看到资源组[沙盒资源组名称]。



选择资源组[沙盒资源组名称]。 出现资源列表,类似于下图。



此处指定为应用程序服务的闪电元素是新的应用程序功能。 单击它以打开新功能的详细信息。 她被分配了一个公共URL,可以在浏览器中打开该URL,并确保该功能应用程序正常运行。

您可以继续在我们的Microsoft Learn门户上学习该指南。

Source: https://habr.com/ru/post/zh-CN430194/


All Articles