Author a component recipe in YAML or JSON specifying ComponentName, ComponentVersion, a Manifests section with the platform selector, Lifecycle commands (Install, Run), and an Artifacts list pointing to your S3 URI.
Upload the component artifact (binary or archive) to an S3 bucket accessible by the Greengrass core device's IAM role.
Publish the component to AWS IoT Greengrass using the CreateComponent API or 'aws greengrassv2 create-component-version --inline-recipe' for small recipes.
Create a deployment targeting a single core device or a thing group, specifying the component name and version in the components map; optionally provide configuration merge updates.
The Greengrass nucleus on the device polls for deployments, downloads the artifact from S3, runs the Install lifecycle command, then starts the Run command.
Verify deployment status via GetDeployment or the Greengrass console; check the component log in /greengrass/v2/logs/COMPONENT_NAME.log on the device for runtime errors.
Known gotchas
The Greengrass core IAM role must have s3:GetObject permission on the artifact bucket path or the nucleus cannot download the artifact even if the deployment is accepted.
Component version strings must follow semantic versioning; once a version is published it is immutable — increment the version for any code or recipe change.
Local deployments via 'greengrass-cli deployment create' are useful for development but do not persist across nucleus restarts; use cloud deployments for production.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp