亚马逊云物联网AWS IoT初体验

时间:2021-08-22 18:50:30

文章内容简介:
主要对AWS IoT做一个初步的介绍,提供有用的资料入口,以及使用MQTT客户端接入平台。

1、AWS 简介

AWS - 亚马逊公司旗下云计算服务平台,为全世界各个国家和地区的客户提供一整套基础设施和云解决方案。AWS面向用户提供包括弹性计算、存储、数据库、物联网在内的一整套云计算服务,能够帮助企业降低IT投入成本和维护成本。

主要产品:计算/存储/数据库/迁移/网络和内容分发

亚马逊的产品实在是太多了……
亚马逊云物联网AWS IoT初体验


2、AWS IoT简介

AWS IoT 是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。AWS IoT 可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。借助 AWS IoT,您的应用程序可以随时跟踪所有设备并与其通信,即使这些设备未处于连接状态也不例外。

借助 AWS IoT,您可以轻松使用 AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch、AWS CloudTrail 和内置 Kibana 集成的 Amazon Elasticsearch Service 等 AWS 服务来构建 IoT 应用程序,以便收集、处理和分析互连设备生成的数据并对其执行操作,且无需管理任何基础设施。

这个博客有详尽的介绍
国外物联网平台初探(一)——亚马逊AWS IoT


3、连接第一个设备

(在第一次使用亚马逊云物联网之前,建议先使用百度IoT Hub体验下,因为两者有较多类似的地方,而亚马逊的使用体验要差很多)
3.1 正确打开方式

入门科普-AWS IOT常见问题
详细看上面那个文档
AWS IoT开发人员指南
根据开发人员指南中的-AWS IoT入门教程开始配置

3.2 配置流程:
这次我们使用虚拟设备MQTT.fx进行配置。(下载地址文末有)

具体教程请留言开发人员指南中的 “AWS IoT入门”

在这里仅做重点介绍

亚马逊云物联网AWS IoT初体验


主要要配置一下三个东西:事物thing/证书certificate/策略policy,在控制台中进行配置。

亚马逊云物联网AWS IoT初体验


先创建事物,再创建证书。在创建证书时,仅有一次机会下载该事物的证书,公匙,私匙。另外还需要下载自签的根证书(应该是用于对该事物证书进行授权)

亚马逊云物联网AWS IoT初体验


下载完后将根证书重命名为:root-CA.crt
而事物证书应为:
xxxxx.certificate.pem.crt

ps:.crt后缀就是说明文件类型为“安全证书”,若不对请修改文件后缀

公匙和私匙应该是
xxxx.privivata.pem.key
xxxx.public.pem.key


再按照教程对事物进行附加关系的添加

亚马逊云物联网AWS IoT初体验

3.3 MQTT.fx的配置
亚马逊云物联网AWS IoT初体验


注意要在policy里面给相应的publish和subscribe权限,如果要使用规则引擎的话还需要给IAM权限


亚马逊云物联网AWS IoT初体验

接下来就可以正常的订阅和发送数据啦,这里我使用通配符#订阅了话题topic下面的子话题。然后在topic/1里面publish helloworld,就可以在订阅栏里面看到啦。

到这里基本上就全部搞定了,接下来介绍下其他功能。


4、平台功能介绍

4.1规则引擎(触发器)
4.1.1语法
AWS IoT的规则引擎使用SQL语法: SELECT…FROM…WHERE
4.1.2功能
因为亚马逊本身云服务做的比较好,因此他的数据后续处理功能就非常的强大了~

  1. 转发(republish)
  2. 数据库(DynamoDb)
  3. 存储
  4. SNS发布(Social Networking Serivces)可以发短信,但中国好像不得行
  5. 数据流处理
  6. 机器学习
  7. 模型预测

4.2安全措施
http和mqtt都使用TLS加密。

以我这几天对通信安全浅薄的理解… …大概是这样一个流程:
1、使用CA证书对产品证书认证
2、使用产品证书认证
3、使用私匙签名
4、交换AES对称加密密匙
5、通信


5、其他

5.1收费
5.1.1注册收费
注册的时候,aws会问你是要basic账号还是developer账号,建议选择basic,虽然说明是basic好像只能浏览文档,不能进行开发,但现在有12个月 免费云服务套餐可以使用,直接百度AWS就可以看到。注册过程中好像要绑定信用卡,扣1美元来看你的卡能不能正常试用。

亚马逊云物联网AWS IoT初体验

我一开始就注册的developer账号,一下就扣了我25刀…不过后来在给力的印度客服的帮助下切换回了basic账号,并且还给了我24刀= =

5.1.2使用过程收费预警
亚马逊音乐和亚马逊prime都是免费试用,然后到期不取消的话自动续费。这次在AWS IoT的试用中,虽然物联网服务是免费的,但免费使用的资源是有限的,用超过了会自动收费,然后我真没找到“免费试用”的设置。只能设置一个“当费用超过0.01美元的时候自动发邮件给我预警”

5.2使用感受
虽然说功能强大,但实在是…太难用了,在国内网站上基本没找到一点有用的资料…我搞了几天都没能搞定规则引擎的触发…

5.3 技术支持
只有付费的developer才能享受技术支持哟~

5.4哪里可以找到资料
aws documents
instructable:有少量爱好者连接上AWS IoT的教程
youtubu:aws的官方账号有一系列教学视频

姿势水平:
1、关于对称加密和非对称加密
2、Arduino Using AWS IoT Serivce
3、Secure IOT With AWS and Hornbill ESP32 Using Arduino
4、百度关于MQTT.fx的介绍(及下载地址)
5、国外物联网平台初探(一)——亚马逊AWS IoT


wiki:

  • IAM (Identity and Access Management): 身份识别和访问管理

  • Policy 策略:需要在里面提供如:Publish,Subscribe等基本权限
    (可以使用通配符如#,+以减少工作量)

  • CLI (Command Line Interface)工具: 在命令行环境下接入

  • Shadow 设备影子: 每个实体设备都有其对应的影子,可以随时读取和设置设备状态,而离线设备会在重连后重新实施该状态。因此在get和post的时候获取和更新的都是影子的状态,而不用每次都和设备连接。
    影子的好处:支持异步同步,克服了网络不稳定的困难,

  • endpoint :REST API操作的接口

  • MQTT 不解释

  • Qos : Qox=1代表至少要发送到1次

  • TLS

  • CA 根证书

  • RSA和AES 非对称加密和对称加密手段

  • x509

  • SigV4

  • 规则引擎

  • SQL 结构化编程语言