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.pswp.cn/web/77367.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77367.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77367.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

國家新政鼓勵游戲出海,全球化安全威脅如何解

本文作者:騰訊宙斯盾DDoS防護團隊 01 政策紅利釋放:游戲出海升級為“國家戰略工程” 01 4月21日,國務院新聞辦公室發布《加快推進服務業擴大開放綜合試點工作方案》,釋放了一個信號:首次將“游戲出海”列為戰略級工程&…

MobX 在 React 中的使用:狀態管理的新選擇

🤍 前端開發工程師、技術日更博主、已過CET6 🍨 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 🕠 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 🍚 藍橋云課簽約作者、…

Idea 配置 Git

1、下載Git 下載地址: Git - Downloading Package 2、win 打開 git bash ,配置郵箱和用戶名 //配置郵箱 git config --global user.email "710419844qq.com" //配置全局用戶名 git config --global user.name "smelodys" 3、ide…

Vue3 + OpenLayers 開發教程 (四) 樣式配置與性能優化

1. 地圖樣式基礎概念 1.1 什么是地圖樣式? 地圖樣式是決定地圖要素(點、線、面)如何顯示的重要配置。在 OpenLayers 中,樣式主要包含以下幾個核心組件: Fill(填充):控制面狀要素的…

【Nacos-安全與限流機制健全06 】

文章目錄 Nacos安全機制介紹Nacos代碼實現Nacos限流機制Nacos限流的代碼實現 Nacos安全機制介紹 一、Nacos安全控制機制 Nacos 提供了多種安全控制機制,以保證服務和配置的訪問安全: 身份驗證 (Authentication) Nacos 支持用戶身份驗證來防止未授權的訪…

自建開源遠程協助服務RustDesk —— 筑夢之路

開源項目 # 服務端https://github.com/rustdesk/rustdesk-server.git# 客戶端https://github.com/rustdesk/rustdesk.git 搭建服務端 需要使用的端口、協議 hbbs - RustDesk ID 注冊服務器 hbbr - RustDesk 中繼服務器默認情況下,hbbs 監聽 21115(tcp) , 21…

Jmeter中同步定時器使用注意點

1.設置數量不可大于總線程數量,不然會一直等待 2.設置數量必須與總線程數量成整數倍數,不然還是要一直等。 3.當配置的數量小于線程數時,最好把循環打開,避免最后一次未準備好的線程數量達不到并發數。

作為高速通道光纖傳輸模式怎么理解以及到底有哪些?

光纖的傳輸模式主要取決于光纖的結構(如纖芯直徑和折射率分布),不同模式對應光波在光纖中傳播的不同路徑和電磁場分布。以下是光纖傳輸模式的主要分類及特點: 1. 單模光纖(Single-Mode Fiber, SMF) 核心特點: 纖芯直徑極小(通常為 8-10微米),僅允許光以單一模式(…

小程序Npm package entry file not found?

修改依賴包的入口文件 看是不是cjs,小程序不支持cjs

Android HAL HIDL

1 Android HAL HIDL 1.1 Android中查看有哪些HIDL HAL HIDL是Treble Interface的一部分。 adb root adb shell # lshal 1.2 Android打印C調用棧 #include <utils/CallStack.h> 在需要打印的地方加如下的定義。 android::CallStack stack("oem"); logcat | g…

【AI 加持下的 Python 編程實戰 2_11】DIY 拓展:從掃雷小游戲開發再探問題分解與 AI 代碼調試能力(下)

&#xff08;接 上篇&#xff09; 5 復盤與 Copilot 的交互過程 前面兩篇文章分別涵蓋了掃雷游戲的問題分解和代碼實現過程&#xff0c;不知道各位是否會有代碼一氣呵成的錯覺&#xff1f;實際上&#xff0c;為了達到最終效果&#xff08;如下所示&#xff09;&#xff0c;我…

游戲狀態管理:用Pygame實現場景切換與暫停功能

游戲狀態管理:用Pygame實現場景切換與暫停功能 在開發游戲時,管理游戲的不同狀態(如主菜單、游戲進行中、暫停等)是非常重要的。這不僅有助于提升玩家的游戲體驗,還能使代碼結構更加清晰。本文將通過一個簡單的示例,展示如何使用Pygame庫來實現游戲中的場景切換和暫停功…

Java后端開發day36--源碼解析:HashMap

&#xff08;以下內容均來自上述課程&#xff09; 1. HashMap&#xff08;一&#xff09; 底層&#xff1a;數組鏈表紅黑樹 1.1 前提準備 查看源碼&#xff1a;選中HashMap–ctrlB 小細節&#xff1a;快捷鍵ctrlf12–跳出目錄結構 藍色圓圈&#xff1a;class 證明是類名粉…

RT-Thread學習筆記(四)

RT-Thread學習筆記 線程間同步信號量信號量的使用和管理動態創建信號量靜態創建信號量獲取信號量信號量同步實列互斥量互斥量的使用和管理互斥量動態創建互斥量靜態創建互斥量獲取和釋放互斥量實例事件集事件集的使用和管理動態創建事件集靜態初始化事件集發送和接收事件事件集…

element ui el-col的高度不一致導致換行

問題&#xff1a;ell-col的高度不一致導致換行&#xff0c;刷新后審查el-col的高度一致 我這邊是el-col寫的span超過了24&#xff0c;自行換行&#xff0c;測試發現初次進入里面的高度渲染的不一致&#xff0c;有的是51px有的是51.5px 問題原因分析 Flex布局換行機制 Elemen…

現代化Android開發:Compose提示信息的最佳封裝方案

在 Android 開發中&#xff0c;良好的用戶反饋機制至關重要。Jetpack Compose 提供了現代化的 UI 構建方式&#xff0c;但提示信息(Toast/Snackbar)的管理往往顯得分散。本文將介紹如何優雅地封裝提示信息&#xff0c;提升代碼可維護性。 一、基礎封裝方案 1. 簡單 Snackbar …

【C++語法】類和對象(2)

4.類和對象&#xff08;2&#xff09; 文章目錄 4.類和對象&#xff08;2&#xff09;類的六個默認成員函數(1)構造函數&#xff1a;構造函數特點含有缺省參數的構造函數構造函數特點&#xff08;續&#xff09;注意事項構造函數補充 前面總結了有關對象概念&#xff0c;對比 C…

【自然語言處理與大模型】vLLM部署本地大模型②

舉例上一篇文章已經過去了幾個月&#xff0c;大模型領域風云變幻&#xff0c;之前的vLLM安裝稍有過時&#xff0c;這里補充一個快速安裝教程&#xff1a; # 第一步&#xff1a;創建虛擬環境并激活進入 conda create -n vllm-0.8.4 python3.10 -y conda activate vllm-0…

26 Arcgis軟件常用工具有哪些

一、畫圖改圖工具&#xff08;矢量編輯&#xff09;? ?挪位置工具&#xff08;移動工具&#xff09;? 干哈的&#xff1f;?選中要素?&#xff08;比如地塊、道路&#xff09;直接拖到新位置&#xff0c;或者用坐標?X/Y偏移?批量移動&#xff0c;適合“整體搬家”。 ?磁…

QNX/LINUX/Android系統動態配置動態庫.so文件日志打印級別的方法

背景 通常我們會在量產的產品上&#xff0c;配置軟件僅打印少量日志&#xff0c;以提升產品的運行性能。同時我們要考慮預留方法讓軟件能夠擁有能力可以在燒錄版本后能夠通過修改默寫配置&#xff0c;打印更多日志。因為量產后的軟件通常開啟熔斷與加密&#xff0c;不能夠輕松…