デバイスシャドウ REST API - AWS IoT Core

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

デバイスシャドウ REST API

シャドウは、状態情報を更新URIするために以下を公開します。

https://account-specific-prefix-ats.iot.region.amazonaws.com/things/thingName/shadow

エンドポイントは に固有です AWS アカウント。エンドポイントを見つけるには、以下を実行します。

  • AWS CLIの describe-endpoint コマンドを使用します。

  • AWS IoT コンソール設定を使用します。[Settings] (設定) で、エンドポイントは [Custom endpoint] (カスタムエンドポイント) の下に表示されます

  • AWS IoT コンソールのモノの詳細ページを使用します。コンソールで:

    1. [Manage] (管理) を展開し、[Manage] (管理) で [Things] (モノ) をクリックします。

    2. モノのリストで、エンドポイント を取得するモノを選択しますURI。

    3. [Device Shadows] (デバイスシャドウ) タブをクリックし、シャドウを選択します。エンドポイントは、Device Shadow URL の詳細ページの Device Shadow セクションURIで表示できます。

エンドポイントの形式は以下のとおりです。

identifier.iot.region.amazonaws.com

シャドウは、 で説明されているのと同じHTTPSプロトコル/ポートマッピングRESTAPIに従いますデバイス通信プロトコル

注記

を使用するにはAPIs、認証のサービス名iotdevicegatewayとして を使用する必要があります。詳細については、「I oTDataPlane 」を参照してください。

を使用して、 のクエリパラメータname=shadowNameの一部として を指定することで、名前付きシャドウAPIを作成することもできますAPI。

GetThingShadow

指定したモノの Shadow を取得します。

レスポンス状態ドキュメントには、desired 状態と reported 状態との差分が含まれます。

リクエスト

リクエストには、標準HTTPヘッダーと次の が含まれますURI。

HTTP GET https://endpoint/things/thingName/shadow?name=shadowName Request body: (none)

名前なし (クラシック) シャドウでは、name クエリパラメータは必要ありません。

レスポンス

成功すると、レスポンスには標準HTTPヘッダーと次のコードと本文が含まれます。

HTTP 200 Response Body: response state document

詳細については、「レスポンス状態ドキュメントの例」を参照してください。

認可

Shadow を取得するには、呼び出し元に iot:GetThingShadow アクションの実行を許可するポリシーが必要です。Device Shadow サービスは、IAM認証情報を使用した署名バージョン 4 またはクライアント証明書を使用したTLS相互認証の 2 つの形式の認証を受け入れます。

以下に示しているのは、呼び出し元にデバイスのシャドウの取得を許可するポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:GetThingShadow", "Resource": [ "arn:aws:iot:region:account:thing/thing" ] } ] }

UpdateThingShadow

指定したモノの Shadow を更新します。

更新は、リクエスト状態ドキュメントで指定したフィールドにのみ反映されます。値が null のフィールドはすべてデバイスのシャドウから削除されます。

リクエスト

リクエストには、標準HTTPヘッダーに加えて、次の URIと本文が含まれます。

HTTP POST https://endpoint/things/thingName/shadow?name=shadowName Request body: request state document

名前なし (クラシック) シャドウでは、name クエリパラメータは必要ありません。

詳細については、「リクエスト状態ドキュメントの例」を参照してください。

レスポンス

成功すると、レスポンスには標準HTTPヘッダーと次のコードと本文が含まれます。

HTTP 200 Response body: response state document

詳細については、「レスポンス状態ドキュメントの例」を参照してください。

認可

Shadow を更新するには、呼び出し元に iot:UpdateThingShadow アクションの実行を許可するポリシーが必要です。Device Shadow サービスは、IAM認証情報を使用した署名バージョン 4 またはクライアント証明書を使用したTLS相互認証の 2 つの形式の認証を受け入れます。

以下に示しているのは、呼び出し元にデバイスのシャドウの更新を許可するポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:UpdateThingShadow", "Resource": [ "arn:aws:iot:region:account:thing/thing" ] } ] }

DeleteThingShadow

指定したモノの Shadow を削除します。

リクエスト

リクエストには、標準HTTPヘッダーと次の が含まれますURI。

HTTP DELETE https://endpoint/things/thingName/shadow?name=shadowName Request body: (none)

名前なし (クラシック) シャドウでは、name クエリパラメータは必要ありません。

レスポンス

成功すると、レスポンスには標準HTTPヘッダーと次のコードと本文が含まれます。

HTTP 200 Response body: Empty response state document

シャドウを削除しても、バージョン番号は 0 にリセットされないことに注意してください。

認可

デバイスのシャドウを削除するには、呼び出し元に iot:DeleteThingShadow アクションの実行を許可するポリシーが必要です。Device Shadow サービスは、IAM認証情報を使用した署名バージョン 4 またはクライアント証明書を使用したTLS相互認証の 2 つの形式の認証を受け入れます。

以下に示しているのは、呼び出し元にデバイスのシャドウの削除を許可するポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:DeleteThingShadow", "Resource": [ "arn:aws:iot:region:account:thing/thing" ] } ] }

ListNamedShadowsForThing

指定されたモノのシャドウを一覧表示します。

リクエスト

リクエストには、標準HTTPヘッダーと次の が含まれますURI。

HTTP GET /api/things/shadow/ListNamedShadowsForThing/thingName?nextToken=nextToken&pageSize=pageSize Request body: (none)
nextToken

次の結果セットを取得するためのトークン。

この値は、ページングされた結果で返され、次のページを返す呼び出しで使用されます。

pageSize

各呼び出しで返すシャドウ名の数。「nextToken」も参照してください。

thingName

名前の付いたシャドウを一覧表示するモノの名前。

レスポンス

成功すると、レスポンスには標準HTTPヘッダーに加えて、次のレスポンスコードと が含まれますシャドウ名リストレスポンスドキュメント

注記

名前なし (クラシック) シャドウは、このリストに表示されません。クラシックシャドウしかない、または指定したthingName が存在しない場合、レスポンスは空のリストになります。

HTTP 200 Response body: Shadow name list document
認可

デバイスのシャドウをリスト化するには、呼び出し元に iot:ListNamedShadowsForThing アクションの実行を許可するポリシーが必要です。Device Shadow サービスは、IAM認証情報を使用した署名バージョン 4 またはクライアント証明書を使用したTLS相互認証の 2 つの形式の認証を受け入れます。

以下に示しているのは、呼び出し元にモノの名前付きシャドウの削除を許可するポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:ListNamedShadowsForThing", "Resource": [ "arn:aws:iot:region:account:thing/thing" ] } ] }