Introduction

AWS IoT Greengrass V2 components

Components are building blocks that enable easy creation of complex workflows such as machine learning inference, local processing, messaging and data management. AWS IoT Greengrass also offers pre-built components such as Stream Manager that supports data export to local and cloud targets. These components help accelerate application development so you don’t have to worry about understanding device protocols, managing credentials, or interacting with external APIs. You can interact with AWS services and third-party applications without writing code. In addition, you can also build your own components on top of AWS IoT Greengrass. All components are designed to enable ease of use, as they can be configured and managed through the AWS Greengrass console. These components enable you to re-use common business logic from one AWS IoT Greengrass device to another, as you can easily discover, import, configure, and deploy components at the edge.

Greengrass Core device

A device that runs the AWS IoT Greengrass Core software. A Greengrass Core device is an AWS IoT thing. You can add multiple Core devices to AWS IoT thing groups to create groups of Greengrass Core devices.

Greengrass component

A Greengrass component is a software module that is deployed to and runs on a Greengrass Core device. All software that is developed and deployed with AWS IoT Greengrass is modeled as a component. AWS IoT Greengrass provides pre-built public components that provide features and functionality that you can use in your applications. You can also develop your own custom components.

  • Recipe: A JSON or 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 your device. You can create artifacts from scratch or you can create a component using a Lambda function, a Docker container or a custom runtime.

  • Dependency: The relationship between components that enables you to enforce automatic updates or restarts of dependent components. For example, you can have a secure message processing component dependent on an encryption component. This ensures that any updates to the encryption component automatically update and restart the message processing component.

Architecture

Deployment

It’s the process to send components and apply the desired component configuration to a destination target device (at the edge), which can be a single Greengrass core device or a group of Greengrass core devices. Deployments automatically apply any updated component configurations to the target and include any other components that are defined as dependencies. You can also clone an existing deployment to create a new deployment that uses the same components, but is deployed to a different target. Deployments are continuous, which means that any updates you make to the components or the component configuration of a deployment automatically get sent to all destination targets. Deploy AWS IoT Greengrass components to devices.

  • Nucleus (Core component) This “required” component provides the minimum functionality of the AWS IoT Greengrass Core software. The nucleus manages deployments, orchestration, and lifecycle management of other components. It also facilitates inter-process communication between AWS IoT Greengrass components locally on an individual device.

  • Optional components These configurable components are provided by AWS IoT Greengrass and enable additional features on your edge devices. Depending on your requirements, you can choose the optional components that you want to deploy to your device, such as data streaming, local machine learning inference or a local command line interface. For more information see AWS-provided components.