斯潘8
span4
下载
将zip文件解压缩到训练机上的下载文件夹中
在这个场景中,我们创建了一个自动警报框架,它将给客户打电话,警告他们可能发生洪水。在这种情况下,保险公司有一个包含所有客户的数据库表。我们创建了一个使用客户地亚搏在线址的工作流,对其进行地理编码,然后将其与潜在洪水区进行比较。如果客户位于洪泛区内,我们使用Twilio发送自动短信警告他们。
客户可以通过AWS上托管的API进行访问:
https://h9nht9dzsl.execute-api.us-west-2.amazonaws.com/dev/api
浏览API文档。API提供了四个调用,允许您创建阅读,从数据库中更新和删除(CRUD)客户。
添加一个JSONFrimeMnter变压器,这个转换器将JSON文本的一部分提取到特性中。在参数中,设置:
如果您再次在Web浏览器中查看API,您可以看到有六个属性。
单击省略号for要公开的属性调出“输入值”对话框。在单独的行中输入:姓名,电话,地址,customer_id,电子邮件和registered_for_alerts.确保拼写正确,以便与API完全匹配。
我们只对前面步骤中添加的属性感兴趣(姓名,电话,地址,customer_id,电子邮件,和registered_for_alerts),所以我们将添加一个AttributeKeeper只保留这些属性。
API只有地址,没有任何与之相关的几何图形,所以我们必须通过地理编码器来运行这些地址。
我们现在将从国家海洋和大气管理局(NOAA)获取潮汐和当前数据,这些数据来自美国,但是温哥华离边境很近,所以对于这个例子,我们将调用Cherry Point的数据,华盛顿。
您会注意到在上面的URL中有一个吗?在URL中,然后是键/值对的列表。这些参数称为查询字符串参数,用于将数据传递到Web服务器。在电视传真机您可以将查询字符串参数粘贴到请求URL带有URL的框。或者你可以把它们放在查询字符串参数表中请求部分。使用该表的优点是,它使事情更易于理解和维护。我们两个都做。
名称:车站
值:9449424
连接一个JSONFrimeMnter到上的输出端口电视传真机.设置以下内容:
先进的
要生成json查询(json[“data”][*]),你可以用一个技巧来对付那个壮汉。
我们现在将计算水位范围的汇总统计数据。添加一个统计计算器并将要分析的属性设置为v。
在这个场景中,我们需要将气候变化考虑在内,因为我们使用的是实时api,而该地区目前还没有洪水泛滥。让我们设置一个用户参数。在导航窗口,右键单击用户参数,然后单击添加参数…,输入以下内容:
类型 | 数量 |
的名字 | 气候因子 |
出版 | 是的 |
可选的 | 是的 |
提示 | 气候变化因素: |
配置 | 范围:[0,12] |
默认值: | 5 |
现在我们将把DEM和NOAA API合并在一起。
小费:因为只有一个特性进入请求者和供应商端口,将值设置为1将两个功能合并在一起。
为了利用气候因子参数,我们将把气候因子值加到实际水位上。添加一个属性创建器,将其连接到FeatureMerger上的合并输出端口。在参数中设置以下内容:
@ value(_max)+ $(ClimateFactor)
接下来,我们需要模拟洪水并提取一个表示被淹区域的多边形。要做到这一点,需要进行一些相对复杂的光栅计算。为了节省时间,我们已经完成了这项工作。如果你对它的工作方式感兴趣,看看自定义变压器,你也可以检查这个博客的许多文章之一张贴或检查知识中心
添加FloodPolygonExtractor变压器(自定义变压器安装在虚拟机上,但您也可以从本文下载和安装)。将其连接到属性创建器变压器。将“洪水位”参数设置为刚创建的“洪水位”属性。
连接一个InspectorTransformer并运行工作区并查看输出。您应该看到一个表示洪水范围的多边形。
现在我们将决定谁受到洪水的影响。
正如你所看到的,我们没有很多客户会受到影响,即使气候变化系数设置为12。也,在客户属性中,没有人注册以收到洪水警报(已注册\用于\警报属性)。我们需要创建一些新客户以使我们的方案有效。为此,我们将使用邮政指挥部在API中向数据库添加记录。
打开一个新的工作区,添加创建者转换器和属性创建器。在attributeCreator中输入下表。对于(括号)中的值,请输入您自己的信息或编造一些内容,只要确保地址是有效的温哥华,BC地址。
新属性 | 属性值 |
的名字 | (输入您的名字) |
电子邮件 | (输入您的电子邮件) |
电话 | (输入您的电话号码[包括区号,即+441423868626]如果您想在下一节中接收短信息警报) |
地址 | (请输入您的地址或有效的温哥华,不列颠哥伦比亚省地址) |
有两种方法可以写入API。您可以添加我们创建的自定义转换器(更简单的方法),或者,高级方法是添加一个httpcaller并自己配置它。选择简单方法或高级方法。
简单方法
先进的
添加一个电视传真机连接到属性创建器.PostHTTP方法与数据库世界中的更新类似。当您将数据发布到一个URL时,通常会使用您传入的数据创建一个新对象。在。上设置下列参数HTTPCaller。
请求URL: | https://h9nht9dzsl.execute-api.us-west-2.amazonaws.com/dev/api/customers/ |
HTTP方法 | 柱 |
上传数据: | 具体上传主体 |
上传体: | { “name”:“@value(name)”, “电话”:“@ value(电话)”, “address”:“@value(address)”, “customer_id”:“@uuid()”, “电子邮件”:“@ value(电子邮件)”, “已注册\警报”:真 } |
内容类型: |
JSON(应用程序/JSON) |
然后将记录器连接到每个输出端口并运行转换。打开API浏览器并向API发出请求。一旦JSON返回,使用ctrl-f (command-f)在API中查找您的名字,以确认工作区是否工作。
我们将使用特威利奥当洪水泛滥时,提醒已注册警报的客户。Twilio是一个SaaS产品,它使得发送语音变得非常容易,视频和短信。他们已经创建了一组非常强大的API,这些API抽象了复杂性,并允许开发人员向他们的应用程序添加通信功能(lyft,Airbnb和Netflix都使用它)。
现在我们已经将信息添加到数据库中,当洪水即将来临时,我们希望能收到一条呼叫信息。
registered_for_alerts = true
电子邮件=
我们设置电子邮件的原因测试器否则每次运行工作区时,它会通知洪水区的每个人(房间里的每个人)。
最后一步是使用twilio API对洪水区内的所有客户进行自动调用。有两种方法可以做到这一点:
提示:即使你不造变压器,我建议用鼠标右键点击它,单击编辑并查看其工作原理。它与此处定义的调用交互API文档.
在画布上单击鼠标右键,然后单击“创建自定义转换器”。这将在工作台中打开一个新窗口。设置以下内容:
在领航员,右键单击“用户参数”,然后单击“添加参数”。我们要做五次,在新用户参数中输入以下每个表。
类型 | 密码 |
的名字 | 斜纹布帐户ID |
出版 | 是的 |
可选的 | 没有 |
提示 | 帐户ID(必需): |
属性赋值 | 违约 |
类型 | 密码 |
的名字 | twilio-au认证令牌 |
出版 | 是的 |
可选的 | 没有 |
提示 | Twilio身份验证令牌(必需) |
属性赋值 | 违约 |
类型 | 文本 |
的名字 | TwiteLoURL |
出版 | 是的 |
可选的 | 没有 |
提示 | Twilm URL: |
属性赋值 | 违约 |
类型 | 文本 |
的名字 | twilio电话号码来自 |
出版 | 是的 |
可选的 | 没有 |
提示 | 来自: |
属性赋值 | 违约 |
类型 | 文本 |
的名字 | Twilio_Tel_Number_To |
出版 | 是的 |
可选的 | 没有 |
提示 | 到: |
属性赋值 | 违约 |
在我们配置httpcaller之前,让我们看看API文档.这是相当标准的文档,它显示我们必须将几个参数发布到API端点才能进行电话呼叫。
添加一个造物主变压器和连接电视传真机.根据API文档,看看您是否可以自己配置HTTPCaller。参数设置如下:
请求
请求URL | https://api.twilio.com/2010-04-01/accounts/$(twilio_accountsid)/calls.json |
HTTP方法 | 柱 |
上传数据 | 具体上传主体 |
上传体 | to=$(twilio_tel_number_to)&from=$(twilio_tel_number_from)&url=$(twilio_url) |
内容类型 | URL编码(应用程序/ x-www-form-urlencoded) |
响应
将响应正文保存到 | 属性 |
响应主体属性 | γ反应体 |
响应体编码 |
|
认证
使用身份验证 | 是的 |
身份验证方法 | 基本的 |
HTTP身份验证用户名 | $ (Twilio_AccountSID) |
HTTP身份验证密码 | 美元(twilio_auth_token) |
向httpCaller的输出端口添加jsonFlatener。在参数中,设置:
JSON文档:γ反应体
递归展平对象/数组:是的
要公开的属性:
使用API时,错误处理是一个非常重要的考虑事项。如果您做了错误的事情,API通常会给您提供有用的消息。亚搏在线构建的工作流应该捕获这些消息并将其显示给用户。
添加一个JSONExtractor到工作区,并将其连接到httpcaller上被拒绝的输出端口。为JSON文档:将其设置为属性“响应”正文
然后为了提取查询,输入下表:
表属性 | JSON查询 |
错误码 | JSON [代码] |
错误消息 | json(“信息”) |
_错误\更多\信息 | JSON[更多信息] |
最后,我们需要为我们的定制变压器创建输入和输出。
在画布上单击鼠标右键,然后添加单击“插入变压器输入”。将输入连接到电视传真机.
添加输出并将其连接到JSONFLATENER。将参数设置为:
要输出的属性:指定的属性只
取消检查:
添加另一个输出,将其重命名为“已拒绝”,并将其连接到JSONExtractor.将参数设置为:
要输出的属性:指定的属性只
取消检查:
回到主工作区,确保您刚刚创建的twiliovoicecaller已连接到测试变压器。twiliovoicecaller与fmehub上的twiliocaller略有不同。你可以下载一个工作中的twiliovoicecaller在这里.
现在是时候运行工作区并用自动电话提醒泛洪区内的每个人了。在我们这样做之前,我们需要配置微音呼叫者(或者,如果您从FME集线器下载了twiliocaller)。
使用以下值。一定要在网页浏览器中找到twimlurl并查看它。这是一个XML文件,其中包含在进行电话呼叫时将要说的单词。
会计人员 | (在read me中找到accountsid) |
双令牌 | (在“读我”中找到twilioauthtoken) |
扭曲网址 | http://twimlbin.com/external/fc4624e40ddce240 |
从 | + 16042103586 |
到 | 值(电话) |
现在是运行工作区的时候了。请注意,这将调用洪泛区内数据库中的每个用户。您可能想使用测试器过滤掉你的用户。
保存工作区,这也将保存自定义转换器。切换回主选项卡,这是原始工作区。运行提示测试工作区。
©2019安全亚搏在线软件公司|合法的