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

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

相关文章:

  • 【人工智能】Agent未来市场与技术潜力分析
  • 【网络原理】TCP协议如何实现可靠传输(确认应答和超时重传机制)
  • C++项目 —— 基于多设计模式下的同步异步日志系统(5)(建造者模式)
  • [操作系统] 信号
  • 2025.04.20
  • 代码随想录训练营第36天 ||1049. 最后一块石头的重量 II 494. 目标和 474. 一和零
  • 无回显RCE
  • 凤凰架构-数据管理与存储
  • 节点流和处理流基本使用
  • 探索 Model Context Protocol (MCP):它如何影响 AI 的表现?
  • Go语言--语法基础4--基本数据类型--浮点数类型
  • Cherry Studio配置MCP服务全流程解析
  • Unity3D仿星露谷物语开发37之浇水动画
  • 色谱图QCPColorMap
  • React Router V7使用详解
  • 用于手部康复设备的TinyML语音分类嵌入式人工智能模块
  • OpenCV 对图像进行阈值处理 cv2.threshold
  • 【Rust 精进之路之第11篇-借用·实践】切片 (Slices):安全、高效地引用集合的一部分
  • Opencv图像处理:轮廓检测、轮廓近似、绘制外接圆外接矩形
  • 嵌入式学习——opencv图像库编程
  • 青海玉树州杂多县发生4.6级地震,震源深度10千米
  • 女子伸腿阻止列车关门等待同行人员,被深圳铁路警方行政拘留
  • 张宝亮履新临沂市委书记表态:不断提升在全省全国经济版图中的发展位势
  • 上海崇明“人鸟争食”何解?检察机关推动各方寻找最优解
  • “30小时不够”,泽连斯基建议延长停火至30天
  • 石黑一雄《莫失莫忘》与“克隆人”:殖民地的记忆与行动