span8
span4
下载
flood-notification-scenario.zip
将zip文件解压到培训机器上的Downloads文件夹中
在这种情况下,我们创建了一个自动提醒框架,将客户发出潜在的洪水。在这种情况下,保险公司拥有包含所有客户的数据库表。我们创建了一个工作流程,亚搏在线获取客户的地址,地理位置它,然后将其与潜在的洪水区进行比较。如果客户位于洪水区内,我们使用Twilio发送自动短信警告它们。
客户可通过AWS托管的API访问:
https://h9nht9dzsl.execute-api.us-west-2.amazonaws.com/dev/api
探索API文档。该API提供了四个调用,允许您从数据库中创建、读取、更新和删除(CRUD)客户。
添加一个JSONFragmenter变压器,此变形金机将JSON文本的部分提取为特征。在参数中,设置:
如果你再次在web浏览器中查看API,你会发现它有6个属性。
单击省略号属性暴露打开“输入值”对话框。每一行输入:姓名,电话,地址,customer_id,电子邮件和registered_for_alerts.确保拼写正确,以便与API完全匹配。
我们只对我们在上一步中添加的属性感兴趣(姓名、电话、地址、customer_id、电子邮件和registered_for_alerts),所以我们要加一个AttributeKeeper只保留这些属性。
API仅具有地址,没有任何与其相关的几何形状,因此我们必须通过地理域运行地址。
我们现在将从国家海洋和大气管理局(NOAA)的潮汐和当前数据中检索,这些数据是基于美国的,但温哥华相当接近边境,所以在这个例子中,我们将调用来自华盛顿州Cherry Point的数据。
您将在上面的URL中注意到有一个?,然后是键/值对的列表。这些被称为查询字符串参数,它们用于将数据传递给web服务器。在httpcaller.可以直接将查询字符串参数粘贴到请求URL.框中带有URL。或者你可以把它们放在查询字符串参数表中请求部分。使用该表的好处是它使事情更容易理解和维护。我们两者都要做。
名称:站
值:9449424
连接一个JSONFragmenter到输出端口httpcaller..设置以下:
先进的
要生成JSON查询(JSON [“DATA”] [*]),您可以使用与FeatureReader的技巧。
现在我们将计算水位范围的汇总统计数据。添加一个StatisticsCalculator并将“Attributes to Analyze”设置为v。
在这个场景中,我们需要考虑气候变化的因素,因为我们使用的是实时api,目前这个地区还没有洪水泛滥。在导航窗口,右键单击用户参数,然后单击“添加参数...”,输入以下内容:
类型 | 数量 |
的名字 | ClimateFactor |
发表 | 是的 |
可选 | 是的 |
迅速的 | 气候变化因素: |
配置 | “范围:0,12” |
默认值: | 5 |
现在我们将在一起将DEM和NOAA API合并。
提示由于只有一个特性进入Requester和Supplier端口,将值设置为1只是将这两个特性合并在一起。
为了利用ClimateFactor参数,我们将气候因子的值添加到真实的水位中。添加一个AttributeCreator,将其连接到FeatureMerger上的Merged Output端口。在参数中设置如下:
@ value (_max) + $ (ClimateFactor)
接下来,我们需要模拟洪水并提取一个代表洪水区域的多边形。要做到这一点,需要一些相对复杂的光栅计算。我们已经为您完成了这个,以节省时间。如果您对它的工作原理感兴趣,请查看自定义转换器,您也可以查看这个博客发布或查看许多文章中的一篇知识中心
添加泛洪孔肿瘤仪Transformer(自定义Transformer安装在虚拟机上,但您也可以从本文下载和安装)。连接到输出端口的AttributeCreator变压器。将洪水级别参数设置为刚才创建的洪水级别属性。
连接一个Inspector变压器并运行工作区并查看输出。你应该看到一个代表洪水范围的多边形。
现在我们将决定谁会受到洪水的影响。
正如你所看到的,即使气候变化系数被设定为12,我们也没有多少客户会受到影响。同样,在客户属性中,没有人注册获得洪水警报(registered_for_alerts属性)。我们需要为我们的场景创建一些新的客户,以使其有效。为了做到这一点,我们将使用POST命令在API中添加记录到数据库。
打开一个新的工作区,添加一个Creator转换器和一个AttributeCreator。在AttributeCreator中输入下表。对于(括号)中的值,请输入您自己的信息或编造一些内容,只要确保地址是有效的Vancouver, BC地址即可。
新属性 | 属性值 |
的名字 | (输入你的名字) |
电子邮件 | (输入您的电子邮件) |
电话 | (如果你想在下一节收到短信提醒,请输入你的电话号码[包括区号,即+441423868626]) |
地址 | (输入您的地址或有效的不列颠哥伦比亚省温哥华地址) |
有两种方法可以写入API。您可以添加我们创建的自定义变压器(更简单的方法),或者高级方式是添加一个HttpCaller并自己配置它。选择更简单或高级方法。
更简单的方法
先进的
添加一个httpcaller.连接到AttributeCreator.POST HTTP方法与数据库世界中的UPDATE类似。当你将数据发布到URL时,你通常会使用传入的数据创建一个新对象。设置如下参数HTTPCaller。
请求URL: | https://h9nht9dzsl.execute-api.us-west-2.amazonaws.com/dev/api/customers/ |
HTTP方法 | 帖子 |
上传数据: | 具体上传的身体 |
上传的身体: | { “名称”:“@ value(名字)”, “电话”:“@ value(电话)”, “地址”:“@ value(地址)”, :“customer_id @UUID()”, “电子邮件”:“@Value(电子邮件)”, “registered_for_alerts”:真的 } |
内容类型: |
JSON (application / JSON) |
然后将日志记录器连接到每个Output端口并运行转换。打开API浏览器并向API发出请求。一旦JSON返回,使用ctrl-f (command-f)在API中找到您的名字,以确认工作空间有效。
我们将使用为什么Twilio当发生洪水时,提醒注册警报的客户。Twilio是一款SaaS产品,可以很容易地发送语音、视频和短信。他们创建了一套非常强大的api,抽象了复杂性,允许开发者在他们的应用程序中添加通信功能(Lyft、Airbnb和Netflix都在使用它)。
现在我们已将我们的信息添加到数据库中,我们希望在洪水迫在眉睫时将呼叫消息给我们的手机。
registered_for_alerts = true
电子邮件= <您的电子邮件>
我们还在设置电子邮件的原因测试人员因为否则每次你运行你的工作区时,它都会通知洪水区的每个人(房间里的每个人)。
最后一步是使用Twilio API对洪水区内的所有客户进行自动调用。有两种方法可以这样做:
提示:即使您不构建转换器,我也建议您右键单击它,单击编辑并查看它是如何工作的。它与这里定义的调用交互API文档.
右键单击画布并单击Create Custom Transformer。这将在Workbench中打开一个新窗口。设置以下:
在导航器,右键单击“用户参数”,单击“添加参数”。我们将这样做五次,输入每个表到一个新的用户参数。
类型 | 密码 |
的名字 | Twilio_AccountSID |
发表 | 是的 |
可选 | 没有 |
迅速的 | AccountSID(必需): |
属性赋值 | 默认的 |
类型 | 密码 |
的名字 | Twilio_Auth_Token |
发表 | 是的 |
可选 | 没有 |
迅速的 | Twilio认证令牌(必选) |
属性赋值 | 默认的 |
类型 | 文本 |
的名字 | Twilio_URL |
发表 | 是的 |
可选 | 没有 |
迅速的 | Twilm URL: |
属性赋值 | 默认的 |
类型 | 文本 |
的名字 | Twilio_Tel_Number_From |
发表 | 是的 |
可选 | 没有 |
迅速的 | 来自: |
属性赋值 | 默认的 |
类型 | 文本 |
的名字 | twilio_tel_number_to. |
发表 | 是的 |
可选 | 没有 |
迅速的 | : |
属性赋值 | 默认的 |
在我们配置HTTPCaller之前,让我们看一下API文档.这是相当标准的文档,说明我们必须将几个参数POST到API端点才能进行电话调用。
添加一个创造者变压器和连接httpcaller..基于API文档,看看您是否可以自己配置HttpCaller。参数需要设置如下:
请求
请求URL. | https://api.twilio.com/2010-04-01/Accounts/ (Twilio_AccountSID) / Calls.json美元 |
HTTP方法 | 帖子 |
上传数据 | 具体上传的身体 |
上传身体 | = $ (Twilio_Tel_Number_To)只限= (Twilio_Tel_Number_From) url = (Twilio_URL)美元 |
内容类型 | URL编码(应用程序/ x-www-form-urlencoded) |
回复
将响应体保存到 | 属性 |
响应正文属性 | _response_body |
响应主体编码 | <来自HTTP标头的自动检测>(自动检测) |
验证
使用身份验证 | 是的 |
身份验证方法 | 基本的 |
HTTP身份验证的用户名 | $ (Twilio_AccountSID) |
HTTP身份验证密码 | $ (Twilio_Auth_Token) |
将jsonflattener添加到httpcaller的输出端口。在参数中,设置:
JSON文档:_response_body
递归地平对象/数组:是的
公开的属性:
错误处理是在使用API时思考的一个非常重要的事情。如果您做错了什么,API通常会给您有用的消息。亚搏在线您构建的工作流应捕获这些消息并将其显示给用户。
添加一个jsonextractor,并将其连接到HTTPCaller上的Rejected Output端口。为JSON文档:将其设置为属性_response_body
然后提取查询,输入下表:
表属性 | JSON查询 |
_error_code | json(“代码”) |
_错误信息 | json(“信息”) |
_error_more_info | json(“more_info”) |
最后,我们需要为我们的自定义变压器创建输入和输出。
右键单击画布并单击插入变压器输入。连接Input到httpcaller..
控件上添加一个Output并将其连接到Output端口JSONFlattener。设置参数为:
属性输出:指定的属性只
取消选中:
添加另一个Output,将其重命名为Rejected,并将其连接到jsonextractor.设置参数为:
属性输出:指定的属性只
取消选中:
回到主工作空间,确保刚刚创建的TwilioViceCaller连接到测试仪变压器。TwilioviceCaller与FMehub上的Twiliocaller略有不同。您可以下载一款工作的TwilioviceCaller这里.
现在是时候运行工作区了,用自动电话通知洪水区域内的每个人。在此之前,我们需要配置TwilioVoiceCaller(或者如果您从FME集线器下载它),或TwilioCaller)。
使用以下值。确保你在浏览器中访问TwimlURL并查看它。这是一个XML,它包含了在进行电话呼叫时将要说出的单词。
AccountSID | (在READ ME中找到AccountSID) |
twilioauthtoken. | (在READ ME中找到TwilioAuthToken) |
TwimlURL | http://twimlbin.com/external/fc4624e40ddce240 |
从 | + 16042103586 |
来 | @ value(电话) |
现在是运行工作区的时候了。注意,这将调用数据库中洪水区域内的每个用户。你可能想用测试人员来过滤掉你的用户。
保存工作区,也将保存自定义变压器。切换回主选项卡,即原始工作区。运行提示测试工作区。
©2020 S亚搏在线afe Software Inc |法律