Skip to content

Latest commit

 

History

History
83 lines (64 loc) · 15.3 KB

README.md

File metadata and controls

83 lines (64 loc) · 15.3 KB

Greengrass Software Catalog

The Greengrass Software Catalog is an index of Greengrass components that are developed by the Greengrass community. Build your edge applications faster by using this catalog to find pre-built components that best fit your use-case.

Catalog

Community components

The Greengrass developer community builds and maintains components that you can deploy to your devices. Instead of building components for each required capability, you can choose components from the catalog to kick-start your IoT project. Since these components are a reference implementation of common patterns, please ensure that you appropriately review and test any functionality before deploying it to your production environments.

To request a feature or report a bug, open a GitHub issue on the repository for that component. Note: AWS does not guarantee support for the community components. Please check the corresponding CONTRIBUTING file for details.

Following is a list of Greengrass components.

  • Amazon Kinesis Video Streams: This component ingests audio and video streams from RTSP cameras connected to the Greengrass core device. The audio and video streams are then uploaded to Amazon Kinesis Video Streams.
  • Bluetooth IoT Gateway: The BLE IoT Gateway component uses the BluePy library (Python module which allows communication with Bluetooth Low Energy devices) to create the BLE client interface.
  • Certificate Rotator: This component and companion cloud backend provides a means of rotating the AWS IoT Greengrass core device certificate and private key, across your fleet, at scale.
  • Containerized Secure Tunneling: This component provides a Docker container for Secure Tunneling with all dependencies and matching libraries in a reusable and customizable recipe without relying on a specific host operating system.
  • Grafana: This component provides support for the Grafana visualization dashboard at the edge. Customers can use this component to visualize data locally. This component can be used to render data from the InfluxDB component.
  • GStreamer for LookoutForVision: This component provides a GStreamer plugin that enables you to perform Amazon Lookout For Vision anomaly detection in your custom GStreamer pipelines.
  • Home Assistant: This component enables use cases where the customer desires Home Assistant for local control of their smart home devices. This component enables deep integration with AWS services at the edge and in the cloud, to deliver powerful home automation solutions that extend Home Assistant’s capabilities.
  • InfluxDBGrafana Dashboard: This component provides a one-click experience for the below InfluxDB and Grafana components, connecting InfluxDB to Grafana and automating the setup of a local Grafana dashboard rendering Greengrass telemetry in real-time.
  • InfluxDB: This component provides support for InfluxDB time-series database at the edge. Customers can use this component to support processing data from IoT sensors, carry out real-time analytics and monitor edge operations.
  • InfluxDB Publisher: This component relays Greengrass System Health Telemetry from the Nucleus emitter plugin to InfluxDB. You can also use this component to forward custom telemetry to InfluxDB.
  • IoT PubSub SDK for Python: This project provides an IoT PubSub application architecture delivered as a Python library to simplify and accelerate development of distributed IoT applications built on AWS IoT Greengrass Components
  • Jupyter Labs: This component deploys JupyterLab to a Greengrass core device. The Jupyter environment will have access to all the process and environment variable resources set by Greengrass thereby simplifying the process of testing and developing components written in Python.
  • Local Webserver: This component enable users to create local web user interface on a Greengrass core device. The web user interface can be used to configure device and application settings, or monitoring the device.
  • LoRaWAN Network Server: This component deploys The Things Stack LoRaWAN Network Server (LNS). This enables ingestion of data from LoRaWAN devices so customers can get insights from data and take action locally without connecting to the cloud.
  • Modbus TCP: This component collects data from local devices through the ModbusTCP protocol and publishes it to selected data streams.
  • Node-RED: This component installs Node-RED on the Greengrass core device using NPM. This component depends on the Node-RED Auth component which must be explicitly deployed and configured. To deploy Node-RED flows to AWS Greengrass devices running Node-RED you can take advantage of Node-RED CLI for Greengrass
  • Node-RED Docker: This component installs Node-RED on the Greengrass core device using the official Node-RED docker container. This component depends on the Node-RED Auth component which must be explicitly deployed and configured. To deploy Node-RED flows to AWS Greengrass devices running Node-RED you can take advantage of Node-RED CLI for Greengrass
  • Node-RED Auth: This component configure a user name and password to secure the Node-RED instance running
  • OpenThread Border Router: This component deploys the OpenThread Border Router Docker container, helping users to compose a Matter device that includes a Thread border router.
  • OSI PI Streaming Data Connector: This component provides streaming real-time data ingestion from OSI PI Data Archive to a modern data architecture on AWS with integrations to OSI PI Asset Framework centrally managed over AWS IoT PubSub messaging.
  • Parsec Provider Component: This community component allows AWS IoT Greengrass devices to integrate hardware security solutions using the open-source Parsec project from Cloud Native Computing Foundation (CNCF).
  • Postgresql DB: This component provides support for postgresql relation database at the edge. Customers can use this component to provision and manage a local PostgreSQL instance inside a docker container.
  • S3 file uploader: This component monitors a directory for new files, upload them to S3 and delete them upon successful upload.
  • Secrets Manager client: This component provides a CLI tool that can be used by other components needing to retrieve secrets from the SecretManager component in a recipe lifecycle script.
  • TES Routing to Container: This component configures nftables or iptables on a Greengrass device to be able to use Token Exchange Service component with containers.
  • WebRTC: This component ingests audio and video streams from RTSP cameras connected to the Greengrass core device. And then the component turns the audio and video streams into peer-to-peer communication or relay through Amazon Kinesis Video Streams.

AWS provided components

AWS IoT Greengrass provides and maintains components that you can deploy to your devices. Below is the list of open source AWS-provided components. You can find the full list of components in the AWS IoT Greengrass Developer Guide. Use the Greengrass console or API to deploy these components to your Greengrass core devices.

  • Greengrass nucleus: The Greengrass nucleus component is a mandatory component and the minimum requirement to run the AWS IoT Greengrass Core software on a device.
  • Client device auth: The client device auth component authenticates client devices and authorizes client device actions.
  • CloudWatch metrics: The Amazon CloudWatch metrics component publishes custom metrics from Greengrass core devices to Amazon CloudWatch.
  • Device Defender: The Device Defender component notifies administrators about changes in the state of Greengrass core devices.
  • Docker application manager: The Docker application manager component enables AWS IoT Greengrass to download Docker images from public image registries. This component is built into the Greengrass nucleus.
  • IP detector: The IP detector component monitors the Greengrass core device's network connectivity information and updates the core device's connectivity information in the AWS IoT Greengrass cloud service.
  • Local debug console: The local debug console component provides a local dashboard that displays information about your AWS IoT Greengrass core devices and its components. You can use this dashboard to debug your core device and manage local components.
  • Log manager: The log manager component uploads logs from AWS IoT Greengrass core devices to Amazon CloudWatch Logs. You can upload logs from the Greengrass nucleus, other Greengrass components, and other applications and services that aren't Greengrass components.
  • MQTT bridge: The MQTT bridge component relays MQTT messages between client devices, local Greengrass publish/subscribe, and AWS IoT Core. You can use this component to act on MQTT messages from client devices in custom components and sync client devices with the AWS Cloud.
  • MQTT broker (Moquette): The Moquette MQTT broker component handles MQTT messages between client devices and a Greengrass core device. This component provides a modified version of the Moquette MQTT broker (https://github.com/moquette-io/moquette).
  • Nucleus telemetry emitter: The nucleus emitter component gathers system health telemetry data and publishes it continually to a local topic and an AWS IoT Core MQTT topic. This component enables you to gather real-time system telemetry on your Greengrass core devices.
  • Secret manager The secret manager component deploys secrets from AWS Secrets Manager to Greengrass core devices. Use this component to securely use credentials, such as passwords, in custom components on your Greengrass core devices.
  • Shadow manager The shadow manager component enables the local shadow service on your core device. The local shadow service allows components to use interprocess communication to interact with local shadows. The shadow manager component manages the storage of local shadow documents, and also handles synchronization of local shadow states with the AWS IoT Device Shadow service.

Resources

Tools

The AWS IoT Greengrass team maintains the following tools that you can use to develop, test, and deploy Greengrass components.

  • Greengrass Development Kit CLI: Use this CLI in your local development environment to kickstart new component development using various component templates. You can use the GDK CLI to build the component locally and publish the component to your AWS account as a private component.
  • Greengrass CLI: Use this CLI on your core device to debug and deploy public/private components. The Greengrass CLI is a component that you can deploy to your core devices to create local deployments, view details about installed components, and explore log files.

Documentation

See the Greengrass V2 developer guide and the Greengrass V2 API reference to learn more about the features that you can leverage to create components and applications for your use case.

License

This catalog is licensed under the CC BY-SA 4.0 License.