提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:郑恭琳|2021-03-24 11:19:27.497|阅读 123 次
概述:如果您像我一样,就会不断想象完全实现的物联网生态系统的未来可能性。在家庭环境中,我想象我的汽车,GPS和Nest可以一起工作,以预测我的到来并对气候控制进行适当的调整。或是冰箱,打蛋器和Amazon Fresh在我什至不知道需要它们之前就毫不费力地互相订购鸡蛋,这是什么未来。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
如果您像我一样,就会不断想象完全实现的物联网生态系统的未来可能性。在家庭环境中,我想象我的汽车,GPS和Nest可以一起工作,以预测我的到来并对气候控制进行适当的调整。或是冰箱,打蛋器和Amazon Fresh在我什至不知道需要它们之前就毫不费力地互相订购鸡蛋,这是什么未来。
在其他时候,我坚信物联网将带来反乌托邦式的未来(如Wired令人发指的详细描述)。
幸运的是,我们处于这种互连水平上的某些方式。物联网的发展还处于起步阶段,物联网开发人员必须克服一些关键的挑战。
似乎已经达成共识,环境复杂性是一个重大挑战,这是一个棘手的挑战,因为复杂性是物联网领域的重点–作为物联网设备的开发者,我可能会与许多下游的第三方API集成,而其他开发人员可能会使用我公开的API。
在物联网需求增加之前,我们可能已经通过创建物理测试实验室在API和设备生态系统中测试了我们的设备。现在,这是一个过时且昂贵的主张,并且开发人员通常无法控制来自第三方API或设备的数据(这对于边缘案例测试至关重要)。
这就是为什么服务虚拟化是解决方案的关键部分。我们可以模拟下游API并控制设备消耗的数据,以验证集成测试中的异常情况。
在本文中,我将使用Amazon Echo演示这些功能,因为它可以成为家庭IoT生态系统的中心枢纽(也许您甚至可以像我一样拥有一个)。
首先,我将指导您完成使用AWS Lambda实施自己的Alexa技能的步骤。通过此电话,您可以询问Alexa的天气状况,以获取邮政编码。
然后,我们将在Azure中部署Parasoft虚拟服务,以模拟来自Weather API的响应,以进行边缘案例测试。 (例如,当有雷雨或外面有101 F时,Alexa会怎么说?)
跟随自己的先决条件:
互联网连接(很明显)
您自己的Amazon Echo或Echo Dot可以改善体验,但您也可以使用模拟器。
一个Amazon开发人员帐户(//developer.amazon.com/)和Amazon Web服务帐户(//aws.amazon.com/)。
在//openweathermap.org/api上以开发人员身份注册,以获取开放天气API的API密钥。
一个用于访问Microsoft Azure的Microsoft帐户(//signup.live.com)。
对REST API和JSON的基本了解。
在第1部分中,我们将设置Alexa技能和Lambda函数。
用户将对Alexa说话(用户的输入称为“发言”)。
我们的Alexa技能会将这种“话语”映射为“意图”
我们的Alexa技能将向我们的AWS Lambda函数发送一个JSON请求。 Lambda是Amazon的一项强大功能,可让您上传一些代码并按需在云中执行它。您只需要在执行时付费即可。在此示例中,Lambda函数将决定如何处理我们的Intent请求,并具有代表Alexa为用户创建响应消息的逻辑。
要创建响应,我们的Lambda函数必须调用开放天气API来获取当前的天气信息。
在第2部分中,我们将在Azure中部署Parasoft虚拟服务器。然后,我们将在Lambda函数和OpenWeatherMap API之间放置一个Parasoft代理。该代理将使我们能够控制来自AWS Lambda的天气请求,将其发送到真正的OpenWeatherMap API或带有罐装响应的虚拟表示。
1. 首先,我们需要确保我们位于Amazon Web Services控制台(//console.aws.amazon.com)的“美国东部(弗吉尼亚北部)”地区。当前,这是Lambda可用的唯一区域:
2. 首先创建Lambda函数。登录(//console.aws.amazon.com/lambda/)并选择蓝色的“创建Lambda函数”按钮:
3. 在“选择蓝图”下,选择“空白功能”,然后选择Alexa技能套件作为Lambda功能的触发器。如果您在列表中没有看到“ Alexa Skills Kit”,则可能不在“美国东部(弗吉尼亚北部)”区域。
这里发生了什么事?我们必须指定调用Lambda函数的方式,Alexa Skills Kit将允许Alexa启动它(一旦它收到正确的话语,我们稍后将对其进行配置)。
4. 给该函数命名为“ virtualWeather”,然后选择“ Node.js 4.3”作为运行时。就本文而言,我们将使用我已经在此处构建的技能,因此请立即下载。如果您想查看底层的源代码,可以在这里找到。
5. 在“代码输入类型”下拉列表中,选择“上传.ZIP文件”,然后选择在步骤4中下载的virtual-weather.zip。
6. 并添加两个环境变量-host和api_key:
目前,“主机”应等于//api.openweathermap.org。 “ api_key”是当您注册为开发人员时将从OpenWeatherMap收到的32位字母数字键(有关执行此操作的信息,请参见上面的前提条件列表)。
7. 在“ Lambda函数处理程序和角色”下,在“角色”下拉菜单下选择“创建自定义角色”。在出现的新窗口中,将所有内容保留为默认值,然后选择“允许”。
8. 返回“配置功能”页面,您可以为其他所有设置保留默认选项,然后单击“下一步”。如果一切正常,在“查看”页面上,选择“创建功能”。
9. 创建函数后,请确保复制页面右上角的ARN ID。我们稍后将需要它:
10. 现在我们的Lambda函数就位了,我们必须定义一个Alexa Skill。 登录到Amazon Developer门户(//developer.amazon.com)并选择Alexa选项卡。 选择“ Alexa技能套件入门:
11. 点击“添加新技能”。 为其指定名称和“天气”的调用名称
12. 在“交互模型”下的“意图模式”下发布以下内容:
{ "intents": [ { "slots": [ { "name": "Zip", "type": "AMAZON.Number" } ], "intent": "GetWeatherForZipIntent" } ] }
13. 在示例话语下发布以下内容:
GetWeatherForZipIntent what’s the weather for zip code {Zip}
GetWeatherForZipIntent what’s the weather for {Zip}
GetWeatherForZipIntent what’s the weather in {Zip}
最后两个步骤准确地指定了我们的用户如何与我们的技能进行交互。我们的示例话语将用户的语音输入映射到Intents.Intent类型(在这种情况下为GetWeatherForZipIntent)和用户指定的邮政编码将在请求中发送给我们的Lambda函数。
14. 在配置下,选择AWS Lambda ARN(Amazon资源名称),然后输入您先前复制的函数ARN:
我们已经准备好进行测试!在“文字”标签下,输入示例“话语”,例如“ 91016的天气如何”,然后点击“询问天气”。您应该看到发送到Lambda函数的JSON请求及其响应:
如果您的Echo已连接到该帐户,并且已启用此技能以对其帐户进行测试(可以在“测试”页面上进行此操作),则也可以与Alexa交谈以进行测试。说出类似“ Alexa,询问天气,91016的天气如何”之类的内容。
这就是Alexa设置!还不错吧?
但是,本文开头提出的复杂性和外部依存关系面临的主要挑战是什么?
我们的Lambda函数依赖于提供实时,真实数据的外部API。作为物联网设备的开发人员或测试人员,我们如何确保我们接收到需要测试不同条件的下游数据?
例如,让我们看一下我们的Alexa技能weather.js的一部分:
我们这里有一些简单的逻辑,可以根据我们的天气描述添加适合天气的短语。例如,“撑一把雨伞!” JSON响应的描述字段中提到下雨时,我们对Alexa响应的响应。
那么我们将如何测试呢?除非您准备好进行可靠的雨舞,或者碰巧住在西雅图,否则这将不容易。将测试自动化(为此我们需要来自OpenWeather API的一致,可重复的数据,这不太可能)添加到组合中,我们遇到了一个非常棘手的问题。
显而易见,简单的答案是服务虚拟化。这将使我们能够模拟Weather API并测试不同的情况。 Parasoft拥有免费的服务虚拟化平台(连续测试平台),可在Azure中进行30天的免费试用。
1. 登录到您的Azure门户,然后选择“新建”以访问市场:
2. 在市场中,搜索“ Parasoft”,然后选择“按需服务虚拟化”。如果您先前已从Parasoft处获得了特殊许可,则可以选择“ BYOL”选项。单击创建。
3. 提供虚拟机的名称,然后输入用户名和密码。您可以选择为VM创建新的资源组,也可以将其添加到现有VM。所有其他选项可以保留为默认值。单击确定。
4. 选择虚拟机大小(建议为DS2_V2或更好)。单击确定。
5. 如果需要,您可以在“设置”下更改其他配置。建议不要更改默认配置,除非有特殊原因。单击确定。
6. 单击“摘要”视图上的“确定”。
7. 在购买视图上,单击购买。免费试用期结束后(前30天),我们将向您收费。 VM创建过程将需要几分钟才能完成。
8. VM的状态为“正在运行”后,选择VM并复制其公共IP地址。
9. 在浏览器中转到http:// <VM_IP_Address>。连续测试平台主菜单将出现。一旦“在线百分比”窗口小部件显示为“ 100%”,虚拟机将被完全配置并初始化:
10. 在顶部附近,单击“添加系统”:
11. 选择“从文件导入系统”,然后浏览到AlexaWeatherSystem.zip(在此处下载)。选择“AzureVirtServer”作为目标服务器,然后单击“导入”:我们现在已经导入了AlexaWeatherSkill系统,虚拟服务和相关数据。
12. 最后,将代理端点放置在Lambda函数和OpenWeatherMap API之间。代理部署在http:// <VM_IP_Address>:9080 / proxy
进入AWS Lambda(//console.aws.amazon.com/lambda/)中的virtualWeather函数,并将我们创建的环境变量更改为代理端点:
13. 在我们的环境(http:// <VM_IP_Address> / em / ui / environments / 1)中,我们现在可以控制返回到Lambda函数的数据以测试不同的条件。这将改变我们Alexa的按需行为!从OpenWeatherMap API组件下的下拉菜单中选择T-Storm,然后选择“设置”按钮:
现在,流量已定向到我们的虚拟“ T暴风”服务,并且正在返回响应(指示下雨和雷暴)。说出类似“ Alexa,询问virtualWeather 91016中的天气”之类的内容,您会听到“拿一把雨伞!蒙罗维亚有雷暴和大雨。”
现在,我们可以控制天气了!
那么,从这里去哪里呢?以下是一些可能的后续步骤:
我也强烈推荐Brian Donohue在这里撰写有关创建您的第一个Alexa技能的文章。我也推荐Ryan Ray在这里的文章。我已经针对他们在本文中使用的Lambda函数改编了他们两个教程中的代码。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢