Webhostingtalk资讯网

逻辑应用程序的介绍

2017-08-16 13:27
作者:admin

逻辑应用程序是一项托管服务,它可为您提供Azure无服务器架构的乐高块,而这种乐高块可用于创建、开发和部署基于云的集成和工作流程,且能使开发人员不费吹灰之力就能将现成的零部件组合在一起。该应用程序旨在通过几个简单且可重复的步骤来完成开发到生产的过程。目前,微软公司正在大力投资这项技术,并引进了许多满足企业集成需求的新连接器。

Azure逻辑应用程序和“功能”是Azure无服务器架构的支柱,因为它们都能允许开发人员将(可扩展、轻量且快速的)代码迅速创建和部署至云环境中。 顾名思义,Azure逻辑应用程序无需具备基础架构;至少,无服务器架构的消费者无需对基础架构加以考虑,因为它是一种完全接受托管的服务。

逻辑应用程序不仅涉及集成和编排,还涉及与其它服务的连接。 这些服务可以是基于Azure的服务,也可以是SAP应用程序或第三方解决方案(如:OneDrive和DropBox),它们甚至还可以是运行于本地环境中的定制应用程序,如Web API。

逻辑应用程序的出色之处在于它拥有可以像联锁块(如乐高)一样使用的各种预定义“连接器”和“操作”,以便您创建基于云的工作流程。 一个简单不过的例子是“每当一个新的映像被上传至OneDrive时,请将该映像复制到DropBox中”。 为了实现这一目标,我们需要使用DropBox和OneDrive连接器,并为每一端定义合适的操作,即“从。。。复制”和“复制到”。这个例子可以证明该服务的简单性、多功能性以及灵活性。

组件

逻辑应用程序由四个组件组成:连接器、触发器、条件和操作。

连接器

连接器是任何逻辑应用程序中最基本的元素。连接器是捆绑在一起,从而支持与服务建立连接的代码元素。 每个连接器都有自己专属的API,并且需要配置一些信息才能连接到相应的服务。比如,在DropBox连接器中,开发人员就需要拥有一个DropBox帐户,并提供他们的凭据才能与服务建立连接。

触发器

它们是与连接器联合使用的,其目的是为了启动逻辑应用程序工作流程。 基于上图中的DropBox示例,我们可以使用DropBox上的文件创建或文件更新功能作为触发器,从而运行逻辑应用程序。 此外,每个连接器都会自己定义触发器。

条件

您可以选择条件,并使用这些条件将一些逻辑注入到工作流程中。在某些情况下,您可能会关注逻辑应用程序的直接输入和输出,如文件副本。 但是,如果您需要对文件类型或文件名进行过滤,那条件就能为您提供这一方便的功能。

操作

逻辑应用程序定义过程中的每一步都是一项操作。这包括触发器和控制流步骤,如条件、范围、for-each循环、do-until循环、对连接器和本地操作的调用。开发人员会选择对来自于连接器的输入使用操作。 如果输入的是文件,那合适的操作就是复制或删除;如果输入的是消息,那合适的操作就是调用另一个可以处理数据的API端点。 此外,操作也是新消费定价模式中的基础计费单位。

优势

逻辑应用程序在创建基于云的工作流程方面有着明显的优势。

成本

逻辑应用程序不需要前期设置成本,也无需后续成本或基础架构成本,而且它的定价是以消费为基础的。 这意味着,您只需为执行的操作支付费用即可。对于配置了“文件修改”触发器的DropBox连接器来说,除非经过修改的文件触发了逻辑应用程序的执行,否则您无需为其支付任何费用。 另外,该应用程序也具备极高的可扩展性,因为每个触发器都将实例化一个新的逻辑应用程序。 因此,多个并发触发器将强制运行同一逻辑应用程序的多个并发实例:这样可以确保所有事件都能得到及时的处理。

开发

逻辑应用程序提供了三种开发模式。

有时候您别无选择,只能使用Azure Portal来创建逻辑应用程序。现在,您依然可以这样做,不过企业却并不适合这一方法。在Portal中,您可以在设计器和代码视图之间进行切换。“代码”视图可用于高级配置,而每个逻辑应用程序的“隐藏代码”是基于JSON的,因此您可以选择使用JSON而不是设计器来轻松地创建逻辑应用程序,不过这需要您对逻辑应用程序API进行深入了解。 代码视图如下所示:

{

“$schema”: “schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#”,

“contentVersion”: “1.0.0.0”,

“parameters”: {

“logicAppName”: {

“type”: “string”,

“minLength”: 1,

“maxLength”: 80,

“metadata”: {

“description”: “Name of the Logic App.”

}

},

“logicAppLocation”: {

“type”: “string”,

“defaultValue”: “[resourceGroup().location]”,

“allowedValues”: [

“eastasia”,

“southeastasia”,

“centralus”,

“eastus”,

“eastus2”,

“westus”,

“northcentralus”,

“southcentralus”,

“northeurope”,

“westeurope”,

“japanwest”,

“japaneast”,

“brazilsouth”,

“australiaeast”,

“australiasoutheast”,

“westcentralus”,

“westus2”,

“[resourceGroup().location]”

],

“metadata”: {

“description”: “Location of the Logic App.”

}

}

},

“variables”: {},

“resources”: [

{

“name”: “[parameters(‘logicAppName’)]”,

“type”: “Microsoft.Logic/workflows”,

“location”: “[parameters(‘logicAppLocation’)]”,

“tags”: {

“displayName”: “LogicApp”

},

“apiVersion”: “2016-06-01”,

“properties”: {

“definition”: {

“$schema”: “schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#”,

“actions”: {

“Response”: {

“type”: “Response”,

“inputs”: {

“statusCode”: 200,

“headers”: “@triggerOutputs()[‘headers’]”,

“body”: “@triggerBody()”

},

“runAfter”: {}

}

},

“parameters”: {},

“triggers”: {

“manual”: {

“type”: “Request”,

“kind”: “Http”,

“inputs”: {

“schema”: {}

}

}

},

“contentVersion”: “1.0.0.0”,

“outputs”: {}

},

“parameters”: {}

}

}

],

“outputs”: {}

}

这是开发人员在Visual Studio中看到的代码视图。

网友评论
暂无评论!