AWS IoT SiteWise ルールアクションのトラブルシューティング - AWS IoT SiteWise

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

AWS IoT SiteWise ルールアクションのトラブルシューティング

で AWS IoT SiteWise ルールアクションをトラブルシューティングするには AWS IoT Core、次のいずれかの手順を実行します。

  • Amazon CloudWatch Logs の設定

  • ルールの再パブリッシュエラーアクションを設定する

次に、エラーメッセージとこのトピックのエラーを比較して、問題のトラブルシューティングを行います。

AWS IoT Core ログの設定

さまざまなレベルの情報を CloudWatch ログ AWS IoT に記録するように を設定できます。

CloudWatch ログを設定してアクセスするには
  1. のログ記録を設定するには AWS IoT Core、「 AWS IoT デベロッパーガイド」の CloudWatch 「ログによるモニタリング」を参照してください。

  2. CloudWatch コンソール に移動します。

  3. ナビゲーションペインで、[ロググループ] を選択します。

  4. AWSIotLogs グループを選択します。

  5. 最近のログストリームを選択します。デフォルトでは、 は最新のログストリームを最初に CloudWatch 表示します。

  6. ログエントリを選択して、ログメッセージを展開します。ログエントリは、次のスクリーンショットのようになります。

    CloudWatch AWS IoT 「ログ」のスクリーンショット。
  7. エラーメッセージとこのトピックのエラーを比較して、問題のトラブルシューティングを行います。

再発行エラーアクションを設定する

エラーメッセージを処理するために、ルールにエラーアクションを設定できます。この手順では、MQTTテストクライアントでエラーメッセージを表示するエラーアクションとして再発行ルールアクションを設定します。

注記

再パブリッシュエラーアクションでは、ERROR レベルログと同等のログのみが出力されます。さらに詳細なログが必要な場合は、 CloudWatch ログ を設定する必要があります。

再パブリッシュエラーアクションをルールに追加するには
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションペインで [Act (アクト) ] を選択し、[ルール] を選択します。

  3. ルールを選択します。

  4. [エラーアクション] で、[アクションの追加] を選択します。

  5. AWS IoT トピック にメッセージを再発行を選択します

    AWS IoT Core 再発行アクションが強調表示された「アクションの選択」ページのスクリーンショット。
  6. ページの下部にある [アクションの設定] を選択します。

  7. トピック に一意のトピック ( など) を入力しますsitewise/windfarm/rule/error。 はこのトピックにエラーメッセージを再発行 AWS IoT Core します。

  8. Select を選択して、エラーアクションを実行するための AWS IoT Core アクセス権を付与します。

  9. ルールに作成したロールの横にある [選択] を選択します。

  10. [ロールの更新] を選択して、追加のアクセス許可をロールに追加します。

  11. [アクションを追加] を選択します。

    ルールのエラーアクションは、次のスクリーンショットのようになります。

    AWS IoT Core 「ルール」ページのエラーアクションの再発行のスクリーンショット。
  12. コンソールの左上にある戻る矢印を選択して、 AWS IoT コンソールのホームに戻ります。

再発行エラーアクションを設定したら、 のMQTTテストクライアントでエラーメッセージを表示できます AWS IoT Core。

次の手順では、MQTTテストクライアントのエラートピックをサブスクライブします。MQTT テストクライアントでは、ルールのエラーメッセージを受信して問題をトラブルシューティングできます。

エラーアクショントピックをサブスクライブするには
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションページで、テストを選択してMQTTテストクライアントを開きます。

  3. [トピックのサブスクリプション] フィールドに、前に設定したエラートピック (sitewise/windfarm/rule/error など) を入力し、[トピックへのサブスクライブ] を選択します。

    AWS IoT Core MQTT「トピックへのサブスクライブ」ボタンが強調表示された「クライアント」ページのスクリーンショット。
  4. エラーメッセージが表示されるまで監視し、エラーメッセージで failures 配列を展開します。

    次に、エラーメッセージとこのトピックのエラーを比較して、問題のトラブルシューティングを行います。

ルールの問題のトラブルシューティング

ルールの問題をトラブルシューティングするには、次の情報を使用します。

Error: Member must be within 604800 seconds before and 300 seconds after the current timestamp (エラー: メンバーは、現在のタイムスタンプ前の 604800 秒以内で、現在のタイムスタンプ後の 300 秒以内でなければなりません)

タイムスタンプが、現在の Unix エポック時間と比較して、7 日より前か、5 分より後です。次の操作を試してください:

  • タイムスタンプが Unix エポック (UTC) 時間であることを確認します。別のタイムゾーンでタイムスタンプを指定すると、このエラーが表示されます。

  • タイムスタンプが秒単位であることを確認します。 AWS IoT SiteWise は、タイムスタンプを秒単位 (Unix エポック時間) に分割し、ナノ秒単位でオフセットします。

  • 過去に 7 日以内のタイムスタンプが設定されたデータをアップロードしていることを確認します。

Error: Property value does not match data type <type> (エラー: プロパティ値がデータ型 <type> と一致しません)

ルールアクションのエントリのデータ型が、ターゲットアセットプロパティとは異なります。たとえば、ターゲットアセットプロパティが DOUBLE で、選択したデータ型が [整数] であるか、値を integerValue に渡したとします。次の操作を試してください:

  • AWS IoT コンソールからルールを設定する場合は、エントリごとに正しいデータ型が選択されていることを確認します。

  • API または AWS Command Line Interface (AWS CLI) からルールを設定する場合は、valueオブジェクトが正しい型フィールド (DOUBLEプロパティdoubleValueの場合など) を使用していることを確認します。

エラー: ユーザー: <role-arn> は実行する権限がありません: iotsitewise:BatchPutAssetPropertyValue on resource

ルールにターゲットアセットプロパティにアクセスする権限がないか、ターゲットアセットプロパティが存在しません。次の操作を試してください:

  • プロパティエイリアスが正しいことと、指定されたプロパティエイリアスを持つアセットプロパティがあることを確認します。詳細については、「産業データストリームをアセットプロパティにマッピングする」を参照してください。

  • ルールにロールがあることと、ターゲットのアセットプロパティ (ターゲットアセットの階層など) への iotsitewise:BatchPutAssetPropertyValue アクセス許可がロールによって許可されていることを確認します。詳細については、「必要なアクセス権を付与 AWS IoT する」を参照してください。

エラー: iot.amazonaws.com が実行できません: sts:AssumeRole on リソース: <role-arn>

ユーザーには、 AWS Identity and Access Management () のルールでロールを引き受ける権限がありませんIAM。

作成されたルールで、そのロールに対する iam:PassRole へのアクセス許可がユーザーに許可されていることを確認します。詳細については、[AWS IoT Developer Guide] (デベロッパーガイド) の[Pass role permissions] (ロールアクセス許可を渡す) を参照してください。

Info: No requests were sent. (情報: リクエストは送信されませんでした。) PutAssetPropertyValueEntries 置換テンプレートを実行した後、 は空でした。

注記

このメッセージは INFO レベルのログです。

リクエストに、必須パラメータをすべて含むエントリが少なくとも 1 つ含まれている必要があります。

置換テンプレートなどのルールのパラメータが空でない値になることを確認します。置換テンプレートは、ルールクエリステートメントの AS 句に定義されている値にアクセスできません。詳細については、[AWS IoT Developer Guide] (デベロッパーガイド) の[Substitution templates] (置換テンプレート) を参照してください。

ルールのトラブルシューティング (AWS IoT SiteWise)

CPU および のメモリ使用量データが想定 AWS IoT SiteWise どおりに表示されない場合は、この手順のステップに従ってルールをトラブルシューティングします。この手順では、MQTTテストクライアントでエラーメッセージを表示するエラーアクションとして再発行ルールアクションを設定します。 CloudWatch Logs へのログ記録を設定してトラブルシューティングすることもできます。詳細については、「AWS IoT SiteWise ルールアクションのトラブルシューティング」を参照してください。

再パブリッシュエラーアクションをルールに追加するには
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションペインで [メッセージルーティング] を選択し、[ルール] を選択します。

  3. 先ほど作成したルールを選択し、[編集] を選択します。

  4. [エラーアクション - オプション] で、[エラーアクションの追加] を選択します。

  5. AWS IoT トピック にメッセージを再発行を選択します

  6. トピック で、エラーへのパス ( など) を入力しますsitewise/rule/tutorial/error。 AWS IoT Core はこのトピックにエラーメッセージを再発行します。

  7. 前に作成したロールを選択します (例: SiteWiseTutorialDeviceRuleRole)。

  8. [Update] (更新) を選択します。

再発行エラーアクションを設定したら、 のMQTTテストクライアントでエラーメッセージを表示できます AWS IoT Core。

次の手順では、MQTTテストクライアントのエラートピックをサブスクライブします。

エラーアクショントピックをサブスクライブするには
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションページで、MQTTテストクライアントを選択してMQTTテストクライアントを開きます。

  3. [トピックのフィルター] で、sitewise/rule/tutorial/error と入力し、[サブスクリプション] を選択します。

エラーメッセージが表示された場合は、エラーメッセージで failures 配列を表示して問題を診断します。考えられる問題とその解決方法の詳細については、「AWS IoT SiteWise ルールアクションのトラブルシューティング」を参照してください。

エラーが表示されない場合は、ルールが有効になっていて、再パブリッシュエラーアクションで設定したトピックと同じトピックにサブスクライブしていることを確認します。それでもエラーが表示されない場合は、デバイススクリプトが実行され、デバイスのシャドウが正常に更新されていることを確認します。

注記

デバイスのシャドウ更新トピックをサブスクライブして、 AWS IoT SiteWise アクションが解析するペイロードを表示することもできます。これを行うには、次のトピックをサブスクライブしてください。

$aws/things/+/shadow/update/accepted

ルールのトラブルシューティング (DynamoDB )

デモのアセットデータが想定通りに DynamoDB テーブルで表示されない場合は、ここに記載されているステップに従って、ルールをトラブルシューティングします。この手順では、MQTTテストクライアントでエラーメッセージを表示するエラーアクションとして再発行ルールアクションを設定します。 CloudWatch Logs へのログ記録を設定してトラブルシューティングすることもできます。詳細については、「 AWS IoT デベロッパーガイド」の CloudWatch 「ログによるモニタリング」を参照してください。

再パブリッシュエラーアクションをルールに追加するには
  1. AWS IoT コンソールに移動します。

  2. 左側のナビゲーションペインで [アクト] を選択し、[ルール] を選択します。

  3. 先ほど作成したルールを選択します。

    AWS IoT Core の「ルール」ページのスクリーンショット。
  4. [エラーアクション] で、[アクションの追加] を選択します。

  5. AWS IoT トピック にメッセージを再発行を選択します

    AWS IoT 再発行アクションが強調表示された Core 「アクションの選択」ページのスクリーンショット。
  6. ページの下部にある [アクションの設定] を選択します。

  7. [Topic] (トピック) で、windspeed/error と入力します。 AWS IoT Core はこのトピックにエラーメッセージを再発行します。

    AWS IoT 「トピック」が強調表示された Core 「再発行アクションの設定」ページのスクリーンショット。
  8. Select を選択して、前に作成したロールを使用してエラーアクションを実行するためのアクセス権限を AWS IoT Core に付与します。

  9. ロールの横にある [選択] を選択します。

    AWS IoT ロール選択ボタンが強調表示された Core 「再発行アクションの設定」ページのスクリーンショット。
  10. [ロールの更新] を選択して、追加のアクセス許可をロールに追加します。

    AWS IoT ロールの更新ボタンが強調表示された Core 「再発行アクションの設定」ページのスクリーンショット。
  11. [アクションの追加] を選択して、エラーアクションの追加を終了します。

  12. コンソールの左上にある戻る矢印を選択して、 AWS IoT Core コンソールのホームに戻ります。

再発行エラーアクションを設定したら、 AWS IoT Core のMQTTテストクライアントでエラーメッセージを表示できます。

次の手順では、MQTTテストクライアントのエラートピックをサブスクライブします。

エラーアクショントピックをサブスクライブするには
  1. AWS IoT Core コンソールの左側のナビゲーションページで、テスト を選択します。

  2. [トピックのサブスクリプション] フィールドで、windspeed/error と入力し、[トピックへのサブスクリプション] を選びます。

    AWS IoT MQTT「トピックへのサブスクライブ」ボタンが強調表示されたコア「クライアント」ページのスクリーンショット。
  3. エラーメッセージが表示されるのを監視し、エラーメッセージで failures 配列を調べて、次の一般的な問題を診断します。

    • ルールクエリステートメントのタイプミス

    • ロールのアクセス許可の不足

    エラーが表示されない場合は、ルールが有効になっていて、再パブリッシュエラーアクションで設定したトピックと同じトピックにサブスクライブしていることを確認します。それでもエラーが表示されない場合は、デモの風力発電所アセットが存在し、風速プロパティで通知が有効になっているかを確認します。デモアセットの有効期限が切れて から消えた場合は AWS IoT SiteWise、新しいデモを作成し、更新されたアセットモデルとプロパティ を反映するようにルールクエリステートメントを更新できますIDs。