

# Release: AWS IoT Greengrass Core v2.1.0 software update on April 26, 2021
<a name="greengrass-release-2021-04-26"></a>

This release provides version 2.1.0 of the Greengrass nucleus component and updates AWS-provided components.

**Release date:** April 26, 2021

**Release highlights**
+ **Docker Hub and Amazon Elastic Container Registry (Amazon ECR) integration**—The new Docker application manager component enables you to download public or private images from Amazon ECR. You can also use this component to download public images from Docker Hub and AWS Marketplace. For more information, see [Run a Docker container](run-docker-container.md).
+ **Dockerfile and Docker images for AWS IoT Greengrass Core software**—You can use the Greengrass Docker image to run AWS IoT Greengrass in a Docker container that uses Amazon Linux 2 as the base operating system. You can also use the AWS IoT Greengrass Dockerfile to build your own Greengrass image. For more information, see [Run AWS IoT Greengrass Core software in a Docker container](run-greengrass-docker.md).
+ **Support for additional machine learning frameworks and platforms**—You can deploy sample machine learning inference components that use pre-trained models to perform sample image classification and object detection using TensorFlow Lite 2.5.0 and DLR 1.6.0. This release also extends sample machine learning support for Armv8 (AArch64) devices. For more information, see [Perform machine learning inference](perform-machine-learning-inference.md).

**Topics**
+ [Platform support updates](#greengrass-2021-04-26-platforms)
+ [Public component updates](#greengrass-2021-04-26-components)

## Platform support updates
<a name="greengrass-2021-04-26-platforms"></a>


| **Platform** | **Details** | 
| --- | --- | 
| Docker | A Dockerfile and Docker image for AWS IoT Greengrass are now available.**Dockerfile**<br /> AWS IoT Greengrass provides a Dockerfile to build a container image that has AWS IoT Greengrass Core software and dependencies installed on an Amazon Linux 2 (x86\_64) base image. You can modify the base image in the Dockerfile to run AWS IoT Greengrass on a different platform architecture. <br />**Docker image**<br /> AWS IoT Greengrass provides a pre-built Docker image that has AWS IoT Greengrass Core software and dependencies installed on an Amazon Linux 2 (x86\_64) base image.  <br />For more information, see [Run AWS IoT Greengrass Core software in a Docker container](run-greengrass-docker.md). | 

## Public component updates
<a name="greengrass-2021-04-26-components"></a>

The following table lists AWS-provided components that include new and updated features. 

**Important**  <a name="component-patch-update-note"></a>
<a name="component-patch-update"></a>When you deploy a component, AWS IoT Greengrass installs the latest supported versions of all of that component's dependencies. Because of this, new patch versions of AWS-provided public components might be automatically deployed to your core devices if you add new devices to a thing group, or you update the deployment that targets those devices. Some automatic updates, such as a nucleus update, can cause your devices to restart unexpectedly.   
<a name="component-version-pinning"></a>To prevent unintended updates for a component that is running on your device, we recommend that you directly include your preferred version of that component when you [create a deployment](create-deployments.md). For more information about update behavior for AWS IoT Greengrass Core software, see [Update the AWS IoT Greengrass Core software (OTA)](update-greengrass-core-v2.md).


| **Component** | **Details** | 
| --- | --- | 
| Greengrass nucleus | Version 2.1.0 of the [Greengrass nucleus](greengrass-nucleus-component.md) is available.<a name="changelog-nucleus-2.1.0"></a>**New features**<br />   Supports downloading Docker images from private repositories in Amazon ECR.    Adds the following parameters to customize the MQTT configuration on core devices:   `maxInFlightPublishes` – The maximum number of unacknowledged MQTT QoS 1 messages that can be in flight at the same time.   `maxPublishRetry` – The maximum number of times to retry a message that fails to publish.     Adds the `fleetstatusservice` configuration parameter to configure the interval at which the core device publishes device status to the AWS Cloud.   Additional minor fixes and improvements. For more information, see the [releases](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases) on GitHub.   <br />**Bug fixes and improvements**<br />   Fixes an issue that caused shadow deployments to be duplicated when the nucleus restarts.   Fixes an issue that caused the nucleus to crash when it encountered a service load exception.   Improves component dependency resolution to fail a deployment that includes a circular dependency.   Fixes an issue that prevented a plugin component from being redeployed if that component had been previously removed from the core device.   Fix an issue that caused the `HOME` environment variable to be set to the `{{/greengrass/v2}}/work` directory for Lambda components or for components that run as root. The `HOME` variable is now correctly set to the home directory for the user that runs the component.    Additional minor fixes and improvements. For more information, see the [releases](https://github.com/aws-greengrass/aws-greengrass-nucleus/releases) on GitHub.    | 
| Docker application manager | Version 2.0.0 of the new [Docker application manager component](docker-application-manager-component.md) is available.**New features**<br />   Manages credentials to download images from private repositories in Amazon ECR.    Downloads public images from Amazon ECR, Docker Hub, and AWS Marketplace.    | 
| Lambda launcher | Version 2.0.4 of the [Lambda launcher component](lambda-launcher-component.md) is available.<a name="changelog-lambda-launcher-2.0.4"></a>**Bug fixes and improvements**<br />   Fixes an issue where the component doesn't correctly pass `AddGroupOwner` to the Lambda function container.    | 
| Legacy subscription router | Version 2.1.0 of the [legacy subscription router component](legacy-subscription-router-component.md) is available.<a name="changelog-legacy-subscription-router-2.1.0"></a>**Bug fixes and improvements**<br />   Adds support to specify component names instead of ARNs for `source` and `target`. If you specify a component name for a subscription, you don't need to reconfigure the subscription each time the version of the Lambda function changes.    | 
| Local debug console | Version 2.1.0 of the [local debug console component](local-debug-console-component.md) is available.<a name="changelog-local-debug-console-2.1.0"></a>**New features**<br />   Uses HTTPS to secure your connection to the local debug console. HTTPS is enabled by default.   <br />**Bug fixes and improvements**<br />   You can dismiss flashbar messages in the configuration editor.    | 
| Log manager | Version 2.1.0 of the [log manager component](log-manager-component.md) is available.<a name="changelog-log-manager-2.1.0"></a>**Bug fixes and improvements**<br />   Use defaults for `logFileDirectoryPath` and `logFileRegex` that work for Greengrass components that print to standard output (stdout) and standard error (stderr).   Correctly route traffic through a configured network proxy when uploading logs to CloudWatch Logs.   Correctly handle colon characters (`:`) in log stream names. CloudWatch Logs log stream names don't support colons.   Simplify log stream names by removing thing group names from the log stream.   Remove an error log message that prints during normal behavior.    | 
| DLR image classification | Version 2.1.1 of the [DLR image classification](dlr-image-classification-component.md) component is available.<a name="changelog-dlr-image-classification-2.1.1"></a>**New features**<br />   Use [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) v1.6.0.   Add support for sample image classification on Armv8 (AArch64) platforms. This extends machine learning support for Greengrass core devices running NVIDIA Jetson, such as the Jetson Nano.   Enable camera integration for sample inference. Use the new `UseCamera` configuration parameter to enable the sample inference code to access the camera on your Greengrass core device and run inference locally on the captured image.   Add support for publishing inference results to the AWS Cloud. Use the new `PublishResultsOnTopic` configuration parameter to specify the topic on which you want to publish results.   Add the new `ImageDirectory` configuration parameter that enables you to specify a custom directory for the image on which you want to perform inference.   <br />**Bug fixes and improvements**<br />   Write inference results to the component log file instead of a separate inference file.   Use the AWS IoT Greengrass Core software logging module to log component output.   Use the AWS IoT Device SDK to read the component configuration and apply configuration changes.    | 
| DLR object detection | Version 2.1.1 of the [DLR object detection](dlr-object-detection-component.md) component is available.<a name="changelog-dlr-object-detection-2.1.1"></a>**New features**<br />   Use [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) v1.6.0.   Add support for sample object detection on Armv8 (AArch64) platforms. This extends machine learning support for Greengrass core devices running NVIDIA Jetson, such as the Jetson Nano.   Enable camera integration for sample inference. Use the new `UseCamera` configuration parameter to enable the sample inference code to access the camera on your Greengrass core device and run inference locally on the captured image.   Add support for publishing inference results to the AWS Cloud. Use the new `PublishResultsOnTopic` configuration parameter to specify the topic on which you want to publish results.   Add the new `ImageDirectory` configuration parameter that enables you to specify a custom directory for the image on which you want to perform inference.   <br />**Bug fixes and improvements**<br />   Write inference results to the component log file instead of a separate inference file.   Use the AWS IoT Greengrass Core software logging module to log component output.   Use the AWS IoT Device SDK to read the component configuration and apply configuration changes.    | 
| DLR image classification model store | Version 2.1.1 of the [DLR image classification model store](dlr-image-classification-model-store-component.md) component is available.<a name="changelog-dlr-image-classification-model-store-2.1.1"></a>**New features**<br />   Add a sample ResNet-50 image classification model for Armv8 (AArch64) platforms. This extends machine learning support for Greengrass core devices running NVIDIA Jetson, such as the Jetson Nano.    | 
| DLR object detection model store | Version 2.1.1 of the [DLR object detection model store](dlr-object-detection-model-store-component.md) component is available.<a name="changelog-dlr-object-detection-model-store-2.1.1"></a>**New features**<br />   Add a sample YOLOv3 object detection model for Armv8 (AArch64) platforms. This extends machine learning support for Greengrass core devices running NVIDIA Jetson, such as the Jetson Nano.    | 
| DLR installer | Version 1.6.1 of the [DLR](dlr-component.md) component is available.<a name="changelog-dlr-1.6.1"></a>**New features**<br />   Install [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) v1.6.0 and its dependencies.   Add support for installing DLR on Armv8 (AArch64) platforms. This extends machine learning support for Greengrass core devices running NVIDIA Jetson, such as the Jetson Nano.   <br />**Bug fixes and improvements**<br />   Install the AWS IoT Device SDK in the virtual environment to read the component configuration and apply configuration changes.   Additional minor bug fixes and improvements.    | 
| TensorFlow Lite image classification | Version 2.1.0 of the new [TensorFlow Lite image classification](tensorflow-lite-image-classification-component.md) component is available.**New features**<br />   Add support for sample image classification inference using [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python).    | 
| TensorFlow Lite object detection | Version 2.1.0 of the new [TensorFlow Lite object detection](tensorflow-lite-object-detection-component.md) component is available.**New features**<br />   Add support for sample object detection inference using [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python).    | 
| TensorFlow Lite image classification model store | Version 2.1.0 of the new [TensorFlow Lite image classification model store](tensorflow-lite-image-classification-model-store-component.md) component is available.**New features**<br />   Provide a pre-trained MobileNet v1 quantized model for sample image classification inference using TensorFlow Lite.    | 
| TensorFlow Lite object detection model store | Version 2.1.0 of the new [TensorFlow Lite object detection model store](tensorflow-lite-object-detection-model-store-component.md) component is available.**New features**<br />   Provide a pre-trained Single Shot Detection (SSD) MobileNet model trained on the COCO dataset for sample object detection inference using TensorFlow Lite.    | 
| TensorFlow Lite | Version 2.5.0 of the new [TensorFlow Lite](tensorflow-lite-component.md) component is available.**New features**<br />   Install [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) v1.6.0 and its dependencies in a virtual environment on Armv7, Armv8 (AArch64), and x86\_64 platforms.     | 