CNM Workflow
This entry documents how to setup a workflow that utilizes the built-in CNM/Kinesis functionality in Cumulus.
Prior to working through this entry you should be familiar with the Cloud Notification Mechanism.
Sections
- Prerequisites
- Configure the Workflow
- Execute the Workflow
- Verify Results
- Kinesis Record Error Handling
Prerequisites
Cumulus
This entry assumes you have a deployed instance of Cumulus (version >= 1.16.0). The entry assumes you are deploying Cumulus via the cumulus terraform module sourced from the release page.
AWS CLI
This entry assumes you have the AWS CLI installed and configured. If you do not, please take a moment to review the documentation - particularly the examples relevant to Kinesis - and install it now.
Kinesis
This entry assumes you already have two Kinesis data steams created for use as CNM notification and response data streams.
If you do not have two streams setup, please take a moment to review the Kinesis documentation and setup two basic single-shard streams for this example:
Using the "Create Data Stream" button on the Kinesis Dashboard, work through the dialogue. See the Kinesis Stream for Ingest docs for details.
You should be able to quickly use the "Create Data Stream" button on the Kinesis Dashboard, and setup streams that are similar to the following example:

Please bear in mind that your {{prefix}}-lambda-processing IAM role will need permissions to write to the response stream for this workflow to succeed if you create the Kinesis stream with a dashboard user. If you are using the cumulus top-level module for your deployment this should be set properly.
If not, the most straightforward approach is to attach the AmazonKinesisFullAccess policy for the stream resource to whatever role your Lambda
s are using, however your environment/security policies may require an approach specific to your deployment environment.
In operational environments it's likely science data providers would typically be responsible for providing a Kinesis stream with the appropriate permissions.
Ensure that the data streams created have server-side encryption enabled.
For more information on how this process works and how to develop a process that will add records to a stream, read the Kinesis documentation and the developer guide.
Source Data
This entry will run the SyncGranule task against a single target data file. To that end it will require a single data file to be present in an S3 bucket matching the Provider configured in the next section.