マネージド統合通知 - のマネージド統合 AWS IoT Device Management

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マネージド統合通知

マネージド統合通知は、デバイスからの更新と主要なインサイトを提供します。通知には、コネクタイベント、デバイスコマンド、ライフサイクルイベント、OTA (Over-the-Air) 更新、エラーレポートが含まれます。これらのインサイトは、自動化されたワークフローの作成、即時のアクションの実行、トラブルシューティングのためのイベントデータの保存に役立つ情報を提供します。

現在、マネージド統合通知の送信先としてサポートされているのは Amazon Kinesis データストリームのみです。通知を設定する前に、まず Amazon Kinesis データストリームを設定し、マネージド統合によるデータストリームへのアクセスを許可する必要があります。

通知用に Amazon Kinesis をセットアップする

マネージド統合通知用に Amazon Kinesis を設定するには、次の手順に従います。

ステップ 1: Amazon Kinesis データストリームを作成する

Amazon Kinesis Data Stream は、大量のデータをリアルタイムで取り込み、永続的に保存し、データをアプリケーションで使用できるようにすることができます。

Amazon Kinesis データストリームを作成するには

ステップ 2: アクセス許可ポリシーを作成する

マネージド統合が Kinesis データストリームにアクセスできるようにするアクセス許可ポリシーを作成します。

アクセス許可ポリシーを作成するには
  • アクセス許可ポリシーを作成するには、以下のポリシーをコピーし、「JSON エディタを使用してポリシーを作成する」で説明されているステップに従います。

    { "Version": "2012-10-17", "Statement": [ { "Action": "kinesis:PutRecord", "Resource": "*", "Effect": "Allow" } ] }

IAM ダッシュボードを開き、ロールをクリックします。

IAM ダッシュボードに移動するには
  • IAM ダッシュボードを開き、ロールをクリックします。

    詳細については、「 AWS Identity and Access Managementユーザーガイド」の「IAM ロールの作成」を参照してください。

ステップ 4: カスタム信頼ポリシーを使用する

カスタム信頼ポリシーを使用して、マネージド統合に Kinesis データストリームへのアクセスを許可できます。

カスタム信頼ポリシーを使用するには
  • 新しいロールを作成し、カスタム信頼ポリシーを選択します。Next をクリックします。

    次のポリシーでは、マネージド統合がロールを引き受けることを許可し、 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 で作成したアクセス許可ポリシーを検索して追加します。Next をクリックします。

ステップ 6: ロール名を入力する

  • ロール名を入力し、ロールの作成をクリックします。

マネージド統合通知を設定する

マネージド統合通知を設定するには、次の手順に従います。

ステップ 1: CreateDestination API を呼び出すアクセス許可をユーザーに付与する

  • CreateDestination API を呼び出すアクセス許可をユーザーに付与する

    次のポリシーは、ユーザーが CreateDestination API を呼び出すための要件を定義します。

    マネージド統合へのパスロール許可を取得するには、「 ユーザーガイド」の「 AWS サービスにロールを渡すアクセス許可をユーザーに付与する」を参照してください。 AWS Identity and Access Management

    { "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 コマンドのステータス。有効な値はsucceededfailedのどちらかです。

      { "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 Real-Time Communication (WebRTC) からのコマンドリクエスト。

      WebRTC 標準では、2 つのピア間の通信が可能です。これらのピアは、リアルタイムの動画、オーディオ、および任意のデータを送信できます。マネージド統合は 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" } } ]} ]} ]} } }