mcpField
I
iot-cloud

iot-cloud

github.com/alphaonedevクラウド・DevOps39 回インストール
リポジトリ

iot-cloud について

iot-cloud は、AWS IoT Core、GCP IoT Core、Azure IoT Hub のデバイスとデータを管理するスキルです。各プラットフォームの SDK やコマンドラインツールを使ったデバイス登録、テレメトリ、フリート運用、クラウドサービス連携を扱います。

主な機能

  1. 01複数クラウドでのデバイス登録
  2. 02レジストリ、ID、ポリシーの管理
  3. 03テレメトリとデバイスメッセージの処理
  4. 04一括更新とデバイス状態同期
  5. 05IoT データとクラウドサービスの接続

活用シーン

  1. 01AWS、GCP、Azure でのデバイス登録
  2. 02フリート全体の更新と状態管理
  3. 03テレメトリのバックエンドサービスへの転送

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill iot-cloud

インストール後、Claude Code で/iot-cloudを入力して読み込まれたか確認します。

詳細

iot-cloud

目的

このスキルを使用すると、AWS IoT Core、GCP IoT Core、Azure IoT Hub などの主要なクラウド IoT プラットフォームと連携し、デバイス管理、データ取り込み、フリート運用を行えます。デバイスのプロビジョニングやテレメトリの処理など、IoT ワークフローの自動化に重点を置いています。

使用する場面

接続されたデバイスのフリートの拡張、IoT データとバックエンドサービスの統合、リモートセンサーの監視など、クラウド環境での IoT デバイス管理にこのスキルを使用します。AWS、GCP、Azure の IoT サービスを扱う場合、特にリアルタイムのデータ処理やフリート全体への更新を行う際に適用してください。

主な機能

  • AWS IoT Core で IoT デバイスをプロビジョニングして管理します。Thing の作成やポリシーのアタッチなどを行えます。
  • Pub/Sub との統合を通じて、GCP IoT Core のデバイスレジストリとテレメトリを処理します。
  • Azure IoT Hub でデバイス ID とメッセージルーティングを管理します。ダイレクトメソッド呼び出しにも対応しています。
  • 一括更新、シャドウの同期(AWS)、デバイスツイン(Azure)などのフリート管理機能に対応しています。
  • 各プラットフォームで MQTT または HTTPS プロトコルを使用して、デバイスの状態を照会し、安全な接続を処理します。

使用パターン

まず、認証用の環境変数を必ず設定します。例:export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID。プログラムからアクセスする場合は SDK を使用します。AWS の場合は boto3 をインストールしてインポートします。基本的なパターンは、クライアントを初期化し、操作を実行して、応答を処理することです。CLI では、aws iot や gcloud iot など、プラットフォーム固有のツールをコマンドの先頭に付けます。

例 1:boto3 を使用して AWS IoT の Thing を作成します。

import boto3
iot_client = boto3.client('iot')
response = iot_client.create_thing(thingName='MySensor')
print(response['thingArn'])

例 2:Azure CLI を使用して Azure IoT Hub にデバイスを登録します。

az iot hub device-identity create --hub-name MyHub --device-id MyDevice --edge-enabled
az iot hub device-identity show --hub-name MyHub --device-id MyDevice

GCP では、スクリプト内で gcloud CLI を使用します。まず gcloud auth login で認証してから、デバイスを作成します。一括操作には、たとえば subprocess を使った Python スクリプトでループを使用するのが一般的です。

主なコマンド/API

AWS IoT Core の場合:AWS CLI または boto3 SDK を使用します。コマンド:aws iot create-thing --thing-name Device1 --thing-type Sensor。API エンドポイント:POST https://iot.us-east-1.amazonaws.com/things。`--attribute` などのフラグを追加してメタデータを設定します。例:aws iot create-thing --thing-name Device1 --attribute '{"location": "office"}'。

GCP IoT Core の場合:gcloud CLI を使用します。コマンド:gcloud iot devices create Device1 --registry=MyRegistry --region=us-central1 --project=MyProject。API エンドポイント:POST https://cloudiot.googleapis.com/v1/projects/{project}/locations/{location}/registries/{registry}/devices。設定形式:デバイス設定用の JSON ペイロード。例:{"id": "Device1", "credentials": [{"publicKey": {"format": "RSA_X509_PEM", "key": "-----BEGIN CERTIFICATE-----"}}]}。

Azure IoT Hub の場合:az CLI を使用します。コマンド:az iot hub device-identity create --hub-name MyHub --device-id Device1 --auth-method x509_ca。API エンドポイント:POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{hubName}/IotHubDevices/{deviceId}。キーには環境変数を使用します:$AZURE_IOT_HUB_CONNECTION_STRING。

一般的なパターン:認証情報は環境変数で渡します。GCP の JSON キーファイルの場合は、$GOOGLE_APPLICATION_CREDENTIALS などを使用します。

統合に関する注意

IoT サービスを他のクラウドコンポーネントに接続して統合します。AWS では AWS IoT Rules を使用してデータを S3 または Lambda にルーティングします。次のコマンドで設定します:aws iot create-topic-rule --rule-name MyRule --sql-version '2016-03-23' --sql "SELECT * FROM 'iot/topic'" --actions '{"lambda":{"functionArn":"arn:aws:lambda:region:account-id:function:function-name"}}'。GCP では Pub/Sub に接続します:gcloud pubsub topics create my-topic を実行し、デバイスレジストリでリンクします。Azure では Event Grid と統合します:az eventgrid event-subscription create --name sub1 --source-resource-id /subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.Devices/IotHubs/{hub} --endpoint-type webhook --endpoint-url https://endpoint.com/api/updates。必ずスキーマを検証し、ペイロードには JSON を使用してください。複数のプラットフォームを使用する場合は、AWS Secrets Manager などのシークレットマネージャーで認証情報を管理します。

エラー処理

まず環境変数を確認し、$AWS_SECRET_ACCESS_KEY が設定されていることを確かめるなどして、認証失敗(例:403 Forbidden)といった一般的なエラーを確認します。AWS では、boto3 の ClientError を捕捉します。

try:
    iot_client.create_thing(thingName='Device1')
except iot_client.exceptions.ResourceAlreadyExistsException:
    print("Thing already exists; update instead.")

GCP では、gcloud の終了コードで処理します。コマンドがゼロ以外の値を返したか確認し、指数バックオフで再試行します。Azure では、JSON のエラーレスポンスを解析します。たとえば、az iot hub device-identity create が「Conflict」で失敗した場合は、az iot hub device-identity update を使用します。エラーコード(例:AWS の InvalidRequestException)などの詳細を含めてエラーを記録し、ネットワークエラーなどの一時的な問題に対する再試行ロジックを組み込みます。

グラフの関連性

  • 所属クラスター:iot
  • タグ:iot
  • 関連項目:IoT エコシステム全般に関する、iot クラスター内のその他のスキル

コメント