本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
受管整合通知
受管整合通知可提供來自裝置的更新和金鑰洞察。通知包括連接器事件、裝置命令、生命週期事件、OTA Over-the-Air) 更新和錯誤報告。這些洞見提供可行的資訊,可用來建立自動化工作流程、立即採取行動,或存放事件資料以進行故障診斷。
目前,僅支援 Amazon Kinesis 資料串流做為受管整合通知的目的地。您必須先設定 Amazon Kinesis 資料串流,並允許受管整合存取資料串流,再設定通知。
為通知設定 Amazon Kinesis
Amazon Kinesis 設定步驟
若要為受管整合通知設定 Amazon Kinesis,請遵循下列步驟:
步驟 1:建立 Amazon Kinesis 資料串流
Amazon Kinesis Data Stream 可以即時擷取大量資料、長期存放資料,並讓資料可供應用程式使用。
建立 Amazon Kinesis 資料串流
-
若要建立 Kinesis 資料串流,請遵循建立和管理 Kinesis 資料串流中概述的步驟。
步驟 2:建立許可政策
建立允許受管整合存取 Kinesis 資料串流的許可政策。
建立許可政策
-
若要建立許可政策,請複製以下政策,並遵循使用 JSON 編輯器建立政策中概述的步驟
{ "Version": "2012-10-17", "Statement": [ { "Action": "kinesis:PutRecord", "Resource": "*", "Effect": "Allow" } ] }
步驟 3:導覽至 IAM 儀表板,然後選取角色
開啟 IAM 儀表板,然後按一下角色。
導覽至 IAM 儀表板
-
開啟 IAM 儀表板,然後按一下角色。
如需詳細資訊,請參閱《 AWS Identity and Access Management使用者指南》中的建立 IAM 角色。
步驟 4:使用自訂信任政策
您可以使用自訂信任政策來授予 Kinesis 資料串流的受管整合存取權。
使用自訂信任政策
-
建立新的角色,然後選擇自訂信任政策。按一下下一步。
下列政策允許 受管整合擔任 角色,而
Condition
陳述式有助於防止混淆代理人問題。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotmanagedintegrations.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
123456789012
" }, "ArnLike": { "aws:SourceArn": "arn:aws:iotmanagedintegrations:ca-central-1
:123456789012
:*" } } } ] }
步驟 5:套用您的許可政策
將您在步驟 2 中建立的許可政策新增至角色。
新增許可政策
-
在新增許可頁面上,搜尋並新增您在步驟 2 中建立的許可政策。按一下下一步。
步驟 6:輸入角色名稱
-
輸入角色名稱,然後按一下建立角色。
設定受管整合通知
通知設定步驟
若要設定受管整合通知,請遵循下列步驟:
步驟 1:授予使用者呼叫 CreateDestination API 的許可
-
授予使用者呼叫
CreateDestination
API 的許可下列政策定義使用者呼叫 CreateDestination API 的需求。
請參閱《 AWS Identity and Access Management 使用者指南》中的授予使用者將角色傳遞至 AWS 服務的許可,以取得受管整合的傳遞許可。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::
accountID
:role/ROLE_CREATED_IN_PREVIOUS_STEP
", "Condition":{ "StringEquals":{ "iam:PassedToService":"iotmanagedintegrations.amazonaws.com" } } }, { "Effect":"Allow", "Action":"iotmanagedintegrations:CreateDestination", "Resource":"*" } ] }
步驟 2:呼叫 CreateDestination API
-
呼叫
CreateDestination
API在您建立 Amazon Kinesis 資料串流和串流存取角色之後,請呼叫 CreateDestination API 來建立通知目的地,以便將通知路由到該目的地。對於
DeliveryDestinationArn
參數,請使用來自新 Amazon Kinesis 資料串流arn
的 。{ "DeliveryDestinationArn": "Your Kinesis arn" "DeliveryDestinationType": "KINESIS" "Name": "DestinationName" "ClientToken":
"string"
"RoleArn": "arn:aws:iam::accountID
:role/ROLE_CREATED_IN_PREVIOUS_STEP
" }注意
ClientToken
是等冪符記。如果您重試最初使用相同用戶端字符和參數成功完成的請求,則重試嘗試將成功,而無需執行任何進一步的動作。
步驟 3:呼叫 CreateNotificationConfiguration API
-
呼叫
CreateNotificationConfiguration
API最後,使用 CreateNotificationConfiguration API 建立通知組態,將所選事件類型路由到 Kinesis 資料串流所代表的目的地。在
DestinationName
參數中,使用與最初呼叫CreateDestination
API 時相同的目的地名稱。{ "EventType": "DEVICE_EVENT" "DestinationName" // This name has to be identical to the name in createDestination API "ClientToken":
"string"
}
受管整合監控的事件類型
以下是使用受管整合通知監控的事件類型:
-
DEVICE_COMMAND
-
SendManagedThingCommand API 命令的狀態。有效值是
succeeded
或failed
。{ "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_COMMAND", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"2017-12-22T18:43:48Z", "region":"ca-central-1", "resources":[ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718" ], "payload":{ "traceId":"1234567890abcdef0", "receivedAt":"2017-12-22T18:43:48Z", "executedAt":"2017-12-22T18:43:48Z", "result":"failed" } }
-
-
DEVICE_COMMAND_REQUEST
-
Web 即時通訊 (WebRTC) 的命令請求。
WebRTC 標準允許兩個對等之間的通訊。這些對等可以傳輸即時視訊、音訊和任意資料。受管整合支援 WebRTC,可在客戶行動應用程式和最終使用者裝置之間啟用這些類型的串流。如需 WebRTC 標準的詳細資訊,請參閱 WebRTC
。 { "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_COMMAND_REQUEST", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"2017-12-22T18:43:48Z", "region":"ca-central-1", "resources":[ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718" ], "payload":{ "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0" }] }] } }
-
-
DEVICE_DISCOVERY_STATUS
-
裝置探索狀態。
{ "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_DISCOVERY_STATUS", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"2017-12-22T18:43:48Z", "region":"ca-central-1", "resources":[ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718" ], "payload":{ "deviceCount": 1, "deviceDiscoveryId": "123", "status": "SUCCEEDED" } }
-
-
DEVICE_EVENT
-
發生裝置事件的通知。
{ "version":"1.0", "messageId":"2ed545027bd347a2b855d28f94559940", "messageType":"DEVICE_EVENT", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"1731630247280", "resources":[ "/quit/1b15b39992f9460ba82c6c04595d1f4f" ], "payload":{ "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0", "properties":[{ "name":"ActuatorEnabled", "value":"true" }] }] }] } }
-
-
DEVICE_LIFE_CYCLE
-
裝置生命週期的狀態。
{ "version": "1.0.0", "messageId": "8d1e311a473f44f89d821531a0907b05", "messageType": "DEVICE_LIFE_CYCLE", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2024-11-14T19:55:57.568284645Z", "region": "ca-central-1", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/d5c280b423a042f3933eed09cf408657" ], "payload": { "deviceDetails": { "id": "d5c280b423a042f3933eed09cf408657", "arn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/d5c280b423a042f3933eed09cf408657", "createdAt": "2024-11-14T19:55:57.515841147Z", "updatedAt": "2024-11-14T19:55:57.515841559Z" }, "status": "UNCLAIMED" } }
-
-
DEVICE_OTA
-
裝置 OTA 通知。
-
-
DEVICE_STATE
-
更新裝置狀態時的通知。
{ "messageType": "DEVICE_STATE", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "1731623291671", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/61889008880012345678" ], "payload": { "addedStates": { "endpoints": [{ "endpointId": "nonEndpointId", "capabilities": [{ "id": "aws.OnOff", "name": "On/Off", "version": "1.0", "properties": [{ "name": "OnOff", "value": { "propertyValue": "\"onoff\"", "lastChangedAt": "2024-06-11T01:38:09.000414Z" } } ]} ]} ]} } }
-