当前位置: 首页 > backend >正文

aws(学习笔记第三十九课) iot-core

文章目录

  • aws(学习笔记第三十九课) iotcore(Internet Of Thing)
  • 学习内容:
    • 1. 整体架构
      • 1.1 代码链接
      • 1.2 整体架构(概要)
      • 1.3 整体架构(详细 )
    • 2. 代码解析
      • 2.1 创建`IOT thing`
      • 2.2 创建`AWS IOT certificate`证书
        • 2.2.1 创建`lambda`需要的`role`
        • 2.2.2 创建`lambda`
        • 2.2.3 `lambda`的函数处理
        • 2.2.4 创建`customResource`
        • 2.2.5 创建证书权限(`policy`)
        • 2.2.6 将`policy`赋予到证书`certificate`
        • 2.2.7 将`certificate`设定到`IOT thing`上
      • 2.3 创建`cloudwatch`相关设定
        • 2.3.1 创建`IOT`重定向`rule`的权限(`role`)
        • 2.3.2 创建`cloudwatch`的`log group`
        • 2.3.2 创建`iot_topic_rule`
    • 3 开始执行`cdk`
      • 3.1 执行`CDK`
      • 3.2 准备证书`certificate`和`private key`
        • 3.2.1 为什么要准备`certificate`和`private key`
        • 3.2.2 保存`certificate`证书和`private key`
      • 3.3 确认`AWS IOT`的`endpoint`
      • 3.4 `client(device)`端的模拟程序
      • 3.5 执行`client(device)`端的模拟程序
      • 3.6 删除测试`stack`

aws(学习笔记第三十九课) iotcore(Internet Of Thing)

  • 使用iotcore

学习内容:

  • 使用iotcore
  • 学会使用CA证书

1. 整体架构

1.1 代码链接

  • 代码链接(cdk_iot_thing)

1.2 整体架构(概要)

在这里插入图片描述

1.3 整体架构(详细 )

在这里插入图片描述

  • 创建AWS IOT things
  • 定义customResource,用来执行lambda,创建AWS IOTcertificateprivate key
  • lambda里面,同时将创建的certificateprivate key存储到AWS Secret Manager
  • 定义CdkIOTCloudWatchAccessRole,用于赋予权限给topicRule,能够将收到的IOT Message转发到CloudWatch
  • 创建topicRule,可以将AWS things接受的message发送到CloudWatch

2. 代码解析

2.1 创建IOT thing

  # Environment variablesaccount=Aws.ACCOUNT_IDregion=Aws.REGIONiot_thing_name="CdkThing001"# Create an IoT Thingcfn_thing=iot.CfnThing(self, "MyCdkThing",thing_name=iot_thing_name)

这里,创建IOT thing,但是topic不需要特别创建。
在这里插入图片描述

2.2 创建AWS IOT certificate证书

2.2.1 创建lambda需要的role

这里采用customResource->lambda的方式,所以提前创建lambda执行需要的role

    # Lambda role for creating certs and keyslambda_role = iam.Role(self, f"{iot_thing_name}LambdaRole", assumed_by=iam.ServicePrincipal("lambda.amazonaws.com"))lambda_role.add_to_policy(iam.PolicyStatement(actions=["secretsmanager:CreateSecret","secretsmanager:DeleteSecret"],resources=["arn:aws:secretsmanager:*:*:secret:*"]))lambda_role.add_to_policy(iam.PolicyStatement(actions=["iot:CreateKeysAndCertificate", "iot:UpdateCertificate"],resources=["*"]))

可以,看出,ServicePrincipallambda.amazonaws.compolicy都是和创建iot certificate证书相关的设定。
在这里插入图片描述

2.2.2 创建lambda
 # Custom Lambda to create IoT certificate and storing in secrets managercert_lambda = _lambda.Function(self,"CertHandler",function_name="CertHandlerFunction",runtime=_lambda.Runtime.PYTHON_3_11,code=_lambda.Code.from_asset("lambda"),handler="cert_handler.lambda_handler",role=lambda_role,log_retention=logs.RetentionDays.ONE_DAY,timeout=Duration.seconds(60))
2.2.3 lambda的函数处理
def on_create(event):response = iot.create_keys_and_certificate(setAsActive=True)certificate_id = response['certificateId']certificate_pem = response['certificatePem']key_pair = response['keyPair']if not certificate_id or not certificate_pem or not key_pair:raise ValueError('Faile
http://www.xdnf.cn/news/769.html

相关文章:

  • JavaScript 性能优化
  • 【Java面试系列】Spring Cloud微服务架构中的分布式事务解决方案与Seata实现原理详解 - 3-5年Java开发必备知识
  • 小刚说C语言刷题——1049 汉译英
  • leetcode 1143. Longest Common Subsequence
  • 利用OLED打印调试信息: 控制PC13指示灯点灯的实验
  • Kubernetes相关的名词解释Dashboard界面(6)
  • CentOS stream 中部署Zabbix RPM软件包公钥验证错误
  • Java中订阅消费模式(发布-订阅模式)和观察者模式的区别
  • 进程管理,关闭进程
  • Linux进程管理:进程查看与控制核心指南
  • 硬件电路(25)-过温保护器件ksd9700温控开关
  • 命令行参数·环境变量·进程地址空间(linux+C/C++)
  • 位运算,状态压缩dp(算法竞赛进阶指南学习笔记)
  • Web前端:常用的布局属性
  • 聊一聊接口测试后垃圾数据如何清理?
  • 【Sa-Token】学习笔记05 - 踢人下线源码解析
  • Few-shot medical image segmentation with high-fidelity prototypes 论文总结
  • 计算机网络综合实验指南
  • 【Rust 精进之路之第14篇-结构体 Struct】定义、实例化与方法:封装数据与行为
  • 【操作系统原理06】虚拟存储器
  • CLion编译器中配置ARM嵌入式开发环境教程
  • 面试题:循环引用两个节点相互引用,如何判断哪个用 shared_ptr?哪个用 weak_ptr?
  • ThreadLocal - 原理与应用场景详解
  • 蓝桥杯 二进制问题 刷题笔记
  • 一个旅行攻略需要调用多少个MCP的服务?
  • 松灵Cobot Magic双臂具身遥操机器人(基于ROS的定位建图与协同导航技术)
  • 网工_DHCP协议
  • AI与思维模型【67】——元认知
  • 使用docker任意系统编译opengauss
  • Vue.js 入门教程