入門チュートリアル - AWS IoT Core

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

入門チュートリアル

このチュートリアルでは、センサーの温度を監視し、潜在的な異常を検出するために、フリートメトリクスを作成します。フリートメトリクスを作成するときは、華氏80度を超える温度を持つセンサーの数を検出する集計クエリを定義します。クエリを 60 秒ごとに実行するように指定し、クエリ結果が に出力されます。これにより CloudWatch、高リスクの可能性があるセンサーの数を表示し、アラームを設定できます。このチュートリアルを完了するには、AWS CLIを使用します。

このチュートリアルの学習内容は次のとおりです。

このチュートリアルの完了には 15 分ほどかかります。

前提条件

セットアップする

フリートメトリクスを使用するには、フリートインデックス作成を有効にします。指定されたデータソースと関連付けられた設定を持つモノ、またはモノのグループに対してフリートのインデックス作成を有効にするには、「モノのインデックス作成の管理」と「モノのグループのインデックス作成の管理」にある手順に従ってください。

をセットアップするには
  1. 次のコマンドを実行して、フリートインデックス作成を有効にし、検索元のデータソースを指定します。

    aws iot update-indexing-configuration \ --thing-indexing-configuration "thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.temperature,type=Number},{name=attributes.rackId,type=String},{name=attributes.stateNormal,type=Boolean}],thingConnectivityIndexingMode=STATUS" \

    前の CLI コマンドの例は、AWS_Things インデックスを使用して、フリートインデックス作成に、レジストリーデータ、シャドウデータ、およびモノの接続ステータスの検索サポートをさせます。

    設定の変更が完了するまで数分かかることがあります。フリートメトリクスを作成する前に、フリートインデックス作成が有効になっていることを確認してください。

    フリートインデックスが有効になっているかどうかを確認するには、次の CLI コマンドを実行します:

    aws --region us-east-1 iot describe-index --index-name "AWS_Things"

    詳細については、「モノのインデックス作成を有効にする」をご覧ください。

  2. 次のbashスクリプトを実行して、10個のものを作成し、それらを記述します。

    # Bash script. Type `bash` before running in other shells. Temperatures=(70 71 72 73 74 75 47 97 98 99) Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6) IsNormal=(true true true true true true false false false false) for ((i=0; i < 10; i++)) do thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[@]:$i:1},rackId=${Racks[@]:$i:1},stateNormal=${IsNormal[@]:$i:1}}") aws iot describe-thing --thing-name "TempSensor$i" done

    このスクリプトは、10 個のセンサーを表す 10 個のものを作成します。それぞれのモノは、次の表で説明されているようtemperaturerackId、 およびstateNormalの属性を持っています。

    属性 データタイプ 説明
    temperature 温度値 (華氏)
    rackId 文字列 センサーを含むサーバーラックの ID
    stateNormal ブール値 センサーの温度値が正常かどうか

    このスクリプトの出力には、10 個の JSON ファイルが含まれています。JSON ファイルのうちの 1 つが次のようになります。

    { "version": 1, "thingName": "TempSensor0", "defaultClientId": "TempSensor0", "attributes": { "rackId": "Rack1", "stateNormal": "true", "temperature": "70" }, "thingArn": "arn:aws:iot:region:account:thing/TempSensor0", "thingId": "example-thing-id" }

    詳細については、「モノの作成」を参照してください。

フリートメトリクスを作成します

フリートメトリクスを作成します
  1. 次のコマンドを実行して、high_temp_FMという名前のフリーメトリクスを作成します。フリートメトリクスを作成して、 で温度が華氏 80 度を超えるセンサーの数をモニタリングします CloudWatch。

    aws iot create-fleet-metric --metric-name "high_temp_FM" --query-string "thingName:TempSensor* AND attributes.temperature >80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count

    –-メトリクス名

    データ型 – 文字列 --metric-nameパラメーターは、フリートメトリクス名を指定します。この例では、high_temp_FMという名前のフリートメトリクス を作成しています。

    --query <string>

    データ型 – 文字列 --query-stringパラメーターは、クエリ文字列を指定します。この例では、クエリ文字列 は、名前が で始まり、温度が華氏 80 度を超えるすべてのモノTempSensorをクエリすることを意味します。詳細については、「クエリ構文」を参照してください。

    –-期間

    データ型: 整数 --periodパラメーターは、集計データを取得する時間を秒単位で指定します。この例では、作成するフリートメトリクスが 60 秒ごとに集計データを取得するように指定します。

    –aggregation-field

    データ型:文字列 --aggregation-fieldパラメーターは、評価する属性を指定します。この例では、温度属性を評価します。

    –-aggregation-type

    --aggregation-typeパラメーターは、フリートメトリクスに表示する統計概要を指定します。モニタリングタスクでは、異なる集計タイプ ([Statistics] (統計)、[Cardinality] (濃度)、および [Percentile] (パーセンタイル)の集計クエリプロパティをカスタマイズできます。この例では、集計タイプと統計の数を指定して、クエリに一致する属性を持つデバイスの数、つまり、温度が華氏 80 度TempSensorを超える名前で始まるデバイスの数を返します。詳細については、「集計データのクエリ」をご覧ください。

    このコマンドの出力は以下のようになります。

    { "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "metricName": "high_temp_FM" }
    注記

    データポイントが に表示されるまでに時間がかかる場合があります CloudWatch。

    フリートメトリクスの作成方法については、「フリートメトリクスの管理」を参照してください。。

    フリートメトリックスを作成できない場合は、「フリートメトリクスのトラブルシューティング」を参照してください。

  2. (オプション) 次のコマンドを実行して、high_temp_FMという名前のフリートメトリクスを記述します。

    aws iot describe-fleet-metric --metric-name "high_temp_FM"

    このコマンドの出力は以下のようになります。

    { "queryVersion": "2017-09-30", "lastModifiedDate": 1625249775.834, "queryString": "*", "period": 60, "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "aggregationField": "registry.version", "version": 1, "aggregationType": { "values": [ "count" ], "name": "Statistics" }, "indexName": "AWS_Things", "creationDate": 1625249775.834, "metricName": "high_temp_FM" }

でフリートメトリクスを表示する CloudWatch

フリートメトリクスを作成したら、 でメトリクスデータを表示できます CloudWatch。このチュートリアルでは、 で始まる名前のセンサーの数TempSensorと、温度が華氏 80 度を超えるセンサーの数を示す メトリクスが表示されます。

でデータポイントを表示するには CloudWatch
  1. https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。

  2. 左側のパネルの CloudWatch メニューで、メトリクス を選択してサブメニューを展開し、すべてのメトリクス を選択します。これにより、上半分はグラフが表示され、下半分は4つのタブ付きセクションが表示されたページが開きます。

  3. 最初のタブ付きセクション「すべてのメトリクス」には、グループで表示できるすべてのメトリクスが一覧表示され、「 IoTFleetMetrics」を選択します。これにはすべてのフリートメトリクスが含まれます。

  4. [All metrics] (すべてのメトリクス) タブの [Aggregation type] (集計タイプ) セクションで、[Aggregation type] (集計タイプ) を選択して、作成したすべてのフリートメトリクスを表示します。

  5. フリート指標を選択して、[Aggregation type](集計タイプ)セクションの左側にグラフを表示します。[メトリクス名] の左に、値 カウントが表示されます。これは、このチュートリアルの「フリートメトリクスを作成する」セクションで指定された集約タイプの値です。

  6. [All metrics](すべてのメトリクス) タブの右にある[Graphed metrics](グラフ化したメトリクス)という名前の2番目のタブを選び、前のステップで選んだフリートメトリクスを表示します。

    以下の通り、華氏 80 度以上の温度を持つセンサーの数を表示するグラフを確認できます。

    AWS IoT フリートメトリクス
    注記

    Period 属性は CloudWatch デフォルトで 5 分です。これは、 に表示されるデータポイント間の時間間隔です CloudWatch。必要に応じて、[Period](期間)設定を変更する事ができます。

  7. (オプション)メトリクスアラームを設定できます。

    1. 左側のパネルの CloudWatch メニューで、アラーム を選択してサブメニューを展開し、すべてのアラーム を選択します。

    2. [Alarms](アラーム) ページで、右上のコーナーの [Create alarm ] (アラームを作成する)を選びます。コンソールの[Create alarm](アラームを作成する)の指示に従って、必要に応じてアラームを作成します。詳細については、「Amazon CloudWatch アラームの使用」を参照してください。

詳細については、「Amazon CloudWatch メトリクスの使用」を参照してください。

にデータポイントが表示されない場合は CloudWatch、「フリートメトリクスのトラブルシューティング」を参照してください。

クリーンアップ

フリートメトリクスを削除するには

delete-fleet-metricCLI コマンドを使用して、フリートメトリクスを削除します。

high_temp_FM という名前のフリートメトリクスを削除するには、次のコマンドを実行します。

aws iot delete-fleet-metric --metric-name "high_temp_FM"

モノをクリーンアップするには

delete-thing CLIコマンドを使用してモノを削除します。

作成した 10 個のモノを削除するには、次のスクリプトを実行します。

# Bash script. Type `bash` before running in other shells. for ((i=0; i < 10; i++)) do thing=$(aws iot delete-thing --thing-name "TempSensor$i") done

でメトリクスをクリーンアップするには CloudWatch

CloudWatch では、メトリクスの削除はサポートされていません。メトリクスは、保持スケジュールに基づいて期限切れになります。詳細については、「Amazon CloudWatch メトリクスの使用」を参照してください。