Greengrass nucleus lite - AWS IoT Greengrass

Greengrass nucleus lite

The Greengrass nucleus lite (aws.greengrass.NucleusLite) is a device runtime for constrained edge devices optimized for minimal memory footprint (uses less than 5MB RAM). It has been introduced with AWS IoT Greengrass version 2.14.0 release and is backward compatible with AWS IoT Greengrass generic components, Greengrass V2 API, and SDK.

The Greengrass nucleus lite is offered as an alternative to the common Greengrass nucleus (aws.greengrass.Nucleus) and can be used in heterogeneous fleets of Greengrass devices.

Versions

This component has the following versions:

  • 2.0.x

Operating system

This component can be installed on core devices that run the following operating systems:

  • Linux (distributions with systemd)

For more information, see Greengrass nucleus.

Requirements

Devices must meet certain requirements to install and run the AWS IoT Greengrass nucleus lite and the AWS IoT Greengrass Core software. For more information, see Setup guide.

  • 5MB of RAM space for the nucleus runtime.

  • 5MB of storage (disk/FLASH).

Additional system dependencies are documented in the Setup Guide.

The Greengrass nucleus component is supported to run in a VPC. To deploy this component in a VPC, the following is required:

  • The Greengrass nucleus must have connectivity to AWS IoT data, AWS IoT Credentials, and Amazon S3.

Compatibility

The AWS IoT Greengrass nucleus lite is compatible with the AWS IoT Greengrass v2 API (subset of) and supported SDKs. It does not depend on any specific language runtimes/VMs but components added to a deployment can require the presence of specific runtimes (e.g.: Java JVM, Python). For more information about what features are supported with Greengrass nucleus lite, see Greengrass feature compatibility.

Download and installation

You can download an apt package, build from source, use a Yocto layer, or download a pre-built Yocto image for compatible device (e.g., RaspberryPi). From the AWS IoT Core Console you will be able to download a connection kit containing all the credentials and initial configuration for your device. Instructions on how to install are included in each specific distribution method.

You can also follow a tutorial to install the AWS IoT Greengrass nucleus lite and explore Greengrass component development. For more information, see Tutorial: Getting started with AWS IoT Greengrass V2.

Configuration

The nucleus provides the following configuration parameters. Some parameters require that the AWS IoT Greengrass Core software restarts to take effect.

iotRoleAlias

The AWS IoT role alias that points to a token exchange IAM role. The AWS IoT credentials provider assumes this role to allow the Greengrass core device to interact with AWS services. For more information, see Authorize core devices to interact with AWS services.

iotDataEndpoint

The AWS IoT data endpoint for your AWS account.

iotCredEndpoint

The AWS IoT credentials endpoint for your AWS account.

greengrassDataPlanePort

The port to use for data plane connections. For more information, see Connect on port 443 or through a network proxy.

Important

You must specify a port where the device can make outbound connections. If you specify a port that is blocked, the device won't be able to connect to AWS IoT Greengrass to receive deployments. Choose from the following options:

  • 443

  • 8443

  • Default: 8443

awsRegion

The AWS Region to use.

runWithDefault

The system user to use to run components.

Important

When you deploy a change to this configuration parameter, the AWS IoT Greengrass Core software restarts for the change to take effect.

This object contains the following information:

posixUser

The name or ID of the system user and, optionally, system group that the core device uses to run generic components. Specify the user and group separated by a colon (:) in the following format: user:group. The group is optional. If you don't specify a group, the AWS IoT Greengrass Core software uses the primary group for the user. For example, you can specify ggc_user or ggc_user:ggc_group. For more information, see Configure the user that runs components.

Local log file

Messages are logged to stdout and log files are handled by systemd.

To view this component's logs
  • Use journalctl to view logs.

Changelog

Version

Changes

2.0.2

Bug fixes and improvements
  • Fixes dependencies of the apt packages to include cgroup-tools.

2.0.1

Bug fixes and improvements
  • Adds recipe variable interpolation support for Greengrass recipe's timeout section.

  • Adds support for ValidateAuthorizationToken IPC command for stream manager.

  • Fixes warnings from Fleet provisioning.

  • Adds retry and backoff to jobs listener.

  • General bug fixes and improvements.

2.0.0

Initial version.