Provides device software to integrate IoT devices into AWS IoT cloud services
How devices and apps access AWS IoT
AWS IoT Device SDKs: Build applications on devices that send messages to and receive messages from AWS IoT
AWS Command Line Interface CLI: Run commands for AWS IoT on Windows that allow users to create and manage thing objects, certificates, rules, jobs, and policies
It enables users to interact with AWS services using commands in the command-line shell
AWS IoT API: Allows users to build IoT applications using HTTP or HTTPS requests -> these actions allow users to programmatically create and manage thing objects, certificates, rules and policies
Allows users to program devices to act locally on the data they generate, run predictions based on machine learning models, and filter and aggregate device data
It provides pre-built software modules called 'components' that allows users to easily extend edge device functionality
Components enable users to connect to AWS services and third-party applications at the edge
After developing IoT applications, Greengrass allows users to remotely deploy, configure and manage those applications
A representation of a specific device or logical entity. Information about a thing is stored in the AWS IoT registry
A Greengrass core device is an AWS IoT Thing
Greengrass core device
A device that runs the AWS IoT Greengrass Core software. Users can add multiple core devices to AWS IoT thing groups to create and manage groups of Greengrass core devices
The core device can process, filter, and aggregate data from client devices that connect to it
The core device can be configured to relay MQTT messages between client devices, the AWS IoT Core cloud service and Greengrass components
When custom components are deployed to a core device, the device downloads the following resources to run the component:
Recipe: A JSON/YAML file that describes the software module by defining component details, configuration and parameters
Artifact: The source code, binaries or scripts that define the software that will run on the device - these can be made from scratch or made using a Lambda function, a Docker container or custom runtime
Dependency: Relationship between components enables the enforcement of automatic updates or restarts of dependent components
Greengrass client device
A device that connects to and communicates with a Greengrass core device over MQTT
The client device is also an AWS IoT thing
Client devices can use the AWS IoT Device SDK to get information about core devices to which they can connect
Greengrass component
A software module that is deployed to and runs of a Greengrass core device -> all software that is developed/deployed with AWS IoT Greengrass is modeled as a component
Greengrass provides pre-built public components that provide features and functionality that you can use in your applications
Custom components can also be developed on a local device or in the cloud
After a custom component is developed, users can use the AWS IoT Greengrass cloud service to deploy it to single or multiple core devices
Deployment
Refers to the process to send components and apply the desired component configuration to a destination target device, which can be a single Greengrass core device or a group of Greengrass core devices
They automatically apply any updated component configurations to the target and include any other components that are defined as dependencies
This refers to the software installed on a core device, it comprises the following:
Nucleus: Provides the minimum functionality of the AWS IoT Greengrass Core software. It manages deployments, orchestration and lifecycle management of other component
It also facilitates communication between AWS IoT components locally on an individual device
Optional components: Enable additional features on edge devices. These include data streaming, local machine learning inference, or a local command line interface.
The Greengrass nucleus component, containing the minimum installation of the AWS IoT Greengrass Core software -> manages deployments, orchestration, and lifecycle management of Greengrass components
Greengrass development tools, used to create, test, build, publish and deploy custom Greengrass components
AWS IoT Greengrass Core software features:
Process data streams on the local device with automatic exports to the AWS Cloud
Support MQTT messaging between AWS IoT and components
Interact with local devices that connect and communicate over MQTT
Support local publish and subscribe messaging between components
Deploy and invoke components and Lambda functions
Manage component lifecycles, such as with support for install and run scripts
Perform secure, over-the-air software updates of the AWS IoT Greengrass Core software and custom components
Secure connections between devices and the AWS Cloud with device authentication and authorisation