iot-cloud
Cloud IoT platforms: AWS IoT Core, GCP IoT Core, Azure IoT Hub, fleet management
What this skill does
# iot-cloud
## Purpose
This skill enables interaction with major cloud IoT platforms, including AWS IoT Core, GCP IoT Core, and Azure IoT Hub, for device management, data ingestion, and fleet operations. It focuses on automating IoT workflows like provisioning devices and handling telemetry.
## When to Use
Use this skill for IoT device management in cloud environments, such as scaling fleets of connected devices, integrating IoT data with backend services, or monitoring remote sensors. Apply it when dealing with AWS, GCP, or Azure IoT services, especially for real-time data processing or fleet-wide updates.
## Key Capabilities
- Provision and manage IoT devices on AWS IoT Core, including creating things and attaching policies.
- Handle device registry and telemetry in GCP IoT Core via Pub/Sub integration.
- Manage device identities and message routing in Azure IoT Hub, including direct method calls.
- Support fleet management features like bulk updates, shadow synchronization (AWS), and device twins (Azure).
- Query device states and handle secure connections using MQTT or HTTPS protocols across platforms.
## Usage Patterns
Always set environment variables for authentication first, e.g., export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID. Use SDKs for programmatic access; for AWS, install boto3 and import it. Pattern: Initialize client, perform operation, handle response. For CLI, prefix commands with platform-specific tools like `aws iot` or `gcloud iot`.
Example 1: Create an AWS IoT thing using boto3:
```python
import boto3
iot_client = boto3.client('iot')
response = iot_client.create_thing(thingName='MySensor')
print(response['thingArn'])
```
Example 2: Register a device on Azure IoT Hub using Azure CLI:
```bash
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
```
For GCP, use gcloud CLI in scripts: First, authenticate with `gcloud auth login`, then create devices. Common pattern: Use loops for bulk operations, e.g., in a Python script with subprocess.
## Common Commands/API
For AWS IoT Core: Use AWS CLI or boto3 SDK. Command: `aws iot create-thing --thing-name Device1 --thing-type Sensor`. API endpoint: POST https://iot.us-east-1.amazonaws.com/things. Include flags like --attribute to add metadata, e.g., `aws iot create-thing --thing-name Device1 --attribute '{"location": "office"}'`.
For GCP IoT Core: Use gcloud CLI. Command: `gcloud iot devices create Device1 --registry=MyRegistry --region=us-central1 --project=MyProject`. API endpoint: POST https://cloudiot.googleapis.com/v1/projects/{project}/locations/{location}/registries/{registry}/devices. Config format: JSON payload for device config, e.g., {"id": "Device1", "credentials": [{"publicKey": {"format": "RSA_X509_PEM", "key": "-----BEGIN CERTIFICATE-----"}}]}.
For Azure IoT Hub: Use az CLI. Command: `az iot hub device-identity create --hub-name MyHub --device-id Device1 --auth-method x509_ca`. API endpoint: POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{hubName}/IotHubDevices/{deviceId}. Use env var for keys: $AZURE_IOT_HUB_CONNECTION_STRING.
General pattern: Pass authentication via env vars, e.g., $GOOGLE_APPLICATION_CREDENTIALS for GCP JSON key file.
## Integration Notes
Integrate by linking IoT services to other cloud components. For AWS, use AWS IoT Rules to route data to S3 or Lambda; configure via `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"}}'`. For GCP, connect to Pub/Sub: Use `gcloud pubsub topics create my-topic` and link in device registry. For Azure, integrate with 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`. Always validate schemas; use JSON for payloads. If using multiple platforms, manage credentials via a secrets manager like AWS Secrets Manager.
## Error Handling
Check for common errors like authentication failures (e.g., 403 Forbidden) by verifying env vars first, such as ensuring $AWS_SECRET_ACCESS_KEY is set. For AWS, catch ClientError in boto3:
```python
try:
iot_client.create_thing(thingName='Device1')
except iot_client.exceptions.ResourceAlreadyExistsException:
print("Thing already exists; update instead.")
```
For GCP, handle via gcloud exit codes; check if command returns non-zero and retry with exponential backoff. Azure: Parse JSON error responses, e.g., if `az iot hub device-identity create` fails with "Conflict", use `az iot hub device-identity update`. Log errors with details like error codes (e.g., AWS: InvalidRequestException) and include retry logic for transient issues like network errors.
## Graph Relationships
- Part of cluster: iot
- Tagged with: iot
- Related to: Other skills in iot cluster for broader IoT ecosystems
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.