如何构建你的第一个无服务器逻辑应用程序(第一部分)
在Twitter上关注我,很高兴接受您对主题或改进的建议/Chris
本文是#ServerlessSeptember的一部分。在这个关于无服务器的全系列内容中,您可以找到其他有用的文章、详细的教程和视频。九月份,社区成员和云倡导者每天都会发布新文章——没错,就是每天。
详细了解 Microsoft Azure 如何实现无服务器功能,请访问https://docs.microsoft.com/azure/azure-functions。
假设你需要构建一个应用程序。为了构建你的应用程序,你需要它与 Dropbox、Excel、Twitter、Slack、云服务等等诸多东西集成。你撸起袖子,意识到你需要花费大量时间学习如何与每个 API 交互,你需要生成 API 令牌并编写连接代码。几周后,你可能已经完成了所有集成代码的编写,并开始思考你想要实现的实际业务逻辑。停下来,完全停下来。如果这就是你的应用程序,包含一堆集成,以及一些业务逻辑,那么有一个框架适合你。它是无服务器产品的一部分,名为Logic Apps。
这是系列文章的一部分
- 第一部分,我们在这里,搭建数据库并构建逻辑应用程序
- 第二部分,本部分介绍如何构建我们的无服务器应用程序
简而言之:本文将详细阐述 Logic Apps,包括它适合哪些场景以及它由哪些部分组成。最后,我们将在其中构建一些功能。
在本文中,我们将介绍:
- 为什么?在这里,我们尝试描述逻辑应用程序等框架真正发挥作用的情况,以及何时它不发挥作用的情况,以及当您不太清楚是否要自己编写所有代码还是使用逻辑应用程序时的情况。
- 我们将描述逻辑应用程序由哪些部分组成,以便您能够很好地了解可以用它构建什么
- 演示版,我们将在 Logic 应用程序中构建一个包含 Twitter 集成和数据库的程序。构建过程非常有趣,只需花费很少的时间,并且可以轻松扩展逻辑。
资源
- 注册一个免费的 Azure 帐户如果您想构建逻辑应用程序和 Azure 功能,您将需要一个 Azure 帐户,它是免费的。
- Logic Apps 概述很棒的文档页面,概述了 Logic Apps 是什么以及一些教程链接
- 逻辑应用程序学习具有许多概念的出色介绍模块。
- 逻辑应用程序学习 II本模块将带您了解 Twitter、认知服务和 SQl Server 的真实示例。
- aka.ms/learn 上 Logic Apps 共有 5 个模块,涵盖从“Hello World”到更高级的自定义场景。
- 逻辑应用中的连接器这更深入地讨论了连接器,它们是什么,有哪些连接器
- 创建自定义连接器有关如何创建自定义连接器的出色文档
- VS Code 中的 Azure 函数
为什么
正如我们在文章开头所述:您的应用程序中需要进行大量集成,这意味着您要么花费大量时间构建与这些集成的连接点,要么依赖于 Logic Apps 和其他类似框架等集成框架。
有一个连接器
你的任务是找到一个最佳平衡点,既要使用集成框架,又要自己编写所有代码。一个明显的迹象可能是集成的数量,而一个更好的迹象是,你需要的集成都列在以下列表中:
- Salesforce
- 办公室 365
- 甲骨文
- 叽叽喳喳
- YouTube
- Dropbox
- Google 服务
- Azure 认知服务
是吗?太好了,Logic Apps 可能适合你。
不是吗?Logic Apps 有 100 多个连接点或连接器。点击这里查看更多支持哪些连接器的信息。
我们如何编写业务逻辑?
好的,所以您正在考虑逻辑应用?您接下来想到的问题可能是如何将业务逻辑放入其中。对此有两个答案:
- 控制操作,逻辑应用中有一些称为控制操作的特定操作,允许我们表达分支逻辑,例如 IF THEN.. 或 LOOP UNTIL,你懂的
- 自定义连接器:如果我们所需的集成缺失,或者我们需要执行非常具体的逻辑,那么我们可以编写自己的连接器来实现。您可以点击此处了解更多关于此案例的信息:创建自定义连接器
所有这些都变得非常理论化,所以让我们尝试解释 Logic Apps 的核心概念是什么以及它是如何工作的,以便您更好地掌握它。
什么
好的。逻辑应用。理解所有概念最简单的方法是查看我们打算转换成逻辑应用的业务流程。像这样:
上面我们有一个流程,一个社交媒体经理。它会查找关于某个主题的新推文。如果找到,我们会尝试判断其内容是正面的还是负面的。如果是正面的,我们会将推link
文存储在数据库中。如果是负面的,我们会向客户部门发送电子邮件进行跟进。
这个相对简单的过程很容易用 Logic Apps 编写,我们要做的第一件事就是确定什么是什么,过程中的哪个阶段对应哪个概念。
让我们从头开始看一下。
扳机
触发器是启动整个流程的机制,它会根据特定条件触发。在本例中,它会在特定主题的推文发布后触发。
行动
在行动步骤中,我们会执行一些操作。在本例中,我们将推文文本作为输入参数发送到认知服务,以确定其情绪,例如,它是正面的还是负面的推文。
控制
控制是一种动作,也称为控制动作。在这种情况下,它试图根据从认知服务获得的分数值来确定是否将某些内容存储在数据库中或通过电子邮件发送给客户服务。
更多操作
我们的最后一步由两个不同的操作Store link in database
和组成Email customer service
。与操作一样Detect sentiment
,这是我们需要执行的操作。
我们如何创建逻辑应用程序?
好的,现在你可能对构建模块有了更好的了解。那么我们该怎么做呢?如何创建一个逻辑应用?
我们使用一种叫做
Logic Apps Designer
这是一个可视化工具,位于 Azure 门户中,基本上可以通过拖放操作来配置组件和输入输出。但它非常强大,尤其当你能将 Slack 或 Twitter 等不同的连接器与云服务连接时。
它看起来像什么,我需要一个视觉效果,给我一个视觉效果!
您将获得视觉效果!
从上图我们可以看到,我们从顶部开始布局不同的组件/连接器。只需快速浏览一下,我们就能大致了解它们的作用。
理论已经讲得够多了,最好的学习方法就是实践。:)
演示
在此演示中我们将执行以下操作:
- 提供并创建数据库,SQL Server 数据库将包含一些列,这些列将帮助我们存储有关推文的信息
- 创建一个逻辑应用程序,该应用程序将监听来自 Google 的特定推文并将其放入数据库中
- 构建无服务器 API,无服务器函数应用程序将作为从 Sql Server 数据库读取数据的 API
- 实现 UI,我们将使用 Angular 构建一个使用无服务器 API 的 SPA 应用程序
配置并创建数据库
好的,让我们创建一个数据库。我们需要做两件事:
- 预配数据库
- 添加一个带有列的表来帮助我们存储所需的内容
预配数据库
前往portal.azure.com
。登录,然后点击Create a resource
。然后SQL Database
按如下所示进行选择。
填写所有红色字段。如果您需要创建服务器,您将看到New Server
右侧的对话框。
最后按下Review and Create
。这将带您进入一个屏幕,要求您检查所有内容是否正确。在最后一个屏幕上按下Create
,它应该会开始配置。
添加表格
说到数据库,我们还有一件事要做。它需要一个表。那么我们需要哪些列?这个表应该用来做什么?我们打算用它来存储推文信息,所以下面的代码就比较合适:
- 推文 ID,以便我们可以在需要时找到实际的推文
- 推文日期,知道推文发布的时间很重要,这样我们就能了解随着时间的推移会发生什么
- 位置,知道推文发布的位置可以让我们了解世界上哪些地方关注某个话题
- 推文文本,当然,我们需要推文内容,以便稍后进行分析
好的,那么让我们转到我们的 SQL Server 资源。
我们将被要求使用为数据库设置的凭据登录。
第一次运行会提示我们没有访问权限。要获得访问权限,我们需要设置防火墙规则。幸运的是,这很简单。只需点击Password
提示您无权访问的字段下方的蓝色链接即可。这将带您进入如下页面:
上面有一个标签Client IP Address
。标签右侧是我们机器的 IP。获取该 IP 并将其输入到字段START IP
和中END IP
。然后在字段中填写规则的名称RULE NAME
。好了,我们完成了,让我们回到登录屏幕。我们输入用户名和密码,这次我们会看到查询编辑器。
我们没有表格,但右侧有一个很大的文本区域。我们需要定义一个包含一些列的表格。
在文本区域中,添加以下内容:
create table Mentions(
id INT PRIMARY KEY IDENTITY,
TweetText varchar(500) NULL,
TweetId varchar(100),
TweetDate DATE NULL,
TweetLocation varchar(100)
);
然后按下Run
以创建我们的表格。
现在我们有了一张表。太好了,下一步是构建我们的逻辑应用程序。
创建逻辑应用
我们继续留在门户中。要创建逻辑应用,我们只需转到Create Resource
. 类型Logic App
并选择它,如下所示:
此时,您需要填写逻辑应用所需的数据,即name
、resource group
和location
。然后它应该开始配置您的逻辑应用。
此时,我们需要滚动并选择Blank Logic app
让乐趣开始吧:)
我们需要进行以下工作:
- 选择触发关键词的Twitter 触发器,例如主题标签
- 连接 SQL Server并将其列映射到 Twitter 字段。
选择 Twitter 触发器
搜索Twitter
并选择出现的 Twitter 图标,它应该显示When a new Tweet is posted
。此时应该显示以下内容:
您需要按照提示登录 Twitter。登录后,界面应该会变成这样:
指出您想要搜索的文本#brexiteer
,是的,数据库将立即填满:D
填写一个合适的间隔,我们以1
分钟为单位。
接下来,我们需要连接我们的 SQL 服务器,通过单击即可完成New Step
。
如果我们现在搜索,SQL server
我们应该得到如下结果:
下面你可以看到它SQL server
有两种版本Trigger
。Actions
如果我们想基于数据库中发生变化的内容构建应用程序,这一点值得注意,想想吧 :)
回到我们的应用程序,选择Actions
。Insert Row v2
它现在应该看起来像这样:
现在点击Manually enter connection info
:
此时选择您的Server name
、Database name
和Table name
。
现在到了有趣的部分,将 Twitter 参数与我们的专栏进行匹配 :)
首先点击Add new parameter
并检查数据库中的所有列。然后点击一个字段,右侧会弹出一个对话框,其中包含推文字段的选择。继续点击数据库字段和相应的推文字段,直到出现如下所示的内容:
按 完成Save
。逻辑应用程序部分到此结束。
概括
第一部分到此结束,下一部分我们将构建无服务器 API
鏂囩珷鏉ユ簮锛�https://dev.to/azure/how-you-can-build-your-first-logic-app-18he