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管理注册表、身份和策略
  3. 03处理遥测与设备消息
  4. 04支持批量更新和设备状态同步
  5. 05将 IoT 数据连接到云服务

适用场景

  1. 01在 AWS、GCP 或 Azure 注册设备
  2. 02管理设备群更新和设备状态
  3. 03将遥测数据路由到后端云服务

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/iot-cloud确认已加载。

详细介绍

iot-cloud

用途

此技能可用于与主流云 IoT 平台交互,包括 AWS IoT Core、GCP IoT Core 和 Azure IoT Hub,以管理设备、摄取数据并执行设备群操作。重点在于自动化 IoT 工作流,例如配置设备和处理遥测数据。

适用场景

在云环境中管理 IoT 设备时使用此技能,例如扩展已连接设备群、将 IoT 数据与后端服务集成,或监控远程传感器。处理 AWS、GCP 或 Azure IoT 服务时,尤其是进行实时数据处理或设备群范围的更新时,可使用此技能。

主要功能

  • 在 AWS IoT Core 上配置和管理 IoT 设备,包括创建设备对象和附加策略。
  • 通过 Pub/Sub 集成,在 GCP IoT Core 中处理设备注册表和遥测数据。
  • 在 Azure IoT Hub 中管理设备身份和消息路由,包括直接方法调用。
  • 支持设备群管理功能,例如批量更新、影子同步(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 进行身份验证,然后创建设备。常见模式:使用循环执行批量操作,例如在 Python 脚本中使用 subprocess。

常用命令/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 生态系统

评论

支持 Markdown