Hi,
I've been having issues getting the stream manager in my AWS Green Grass core device to relay the messages I send to my kinesis stream.
The core device is a raspberry pi zero, the green grass software is running and the stream manager is deployed and its status is running.
Here's the result of sudo /greengrass/v2/bin/greengrass-cli component list
:
Jan 27, 2023 3:54:56 PM software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection$1 onConnectionSetup
INFO: Socket connection /greengrass/v2/ipc.socket:8033 to server result [AWS_ERROR_SUCCESS]
Jan 27, 2023 3:54:57 PM software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection$1 onProtocolMessage
INFO: Connection established with event stream RPC server
Components currently running in Greengrass:
Component Name: aws.greengrass.TokenExchangeService
Version: 2.0.3
State: RUNNING
Configuration: {"activePort":38663.0,"port":0.0}
Component Name: aws.greengrass.Nucleus
Version: 2.9.2
State: FINISHED
Configuration: {"awsRegion":"eu-west-2","componentStoreMaxSizeBytes":"10000000000","deploymentPollingFrequencySeconds":"15","envStage":"prod","fleetStatus":{"periodicStatusPublishIntervalSeconds":86400.0},"greengrassDataPlaneEndpoint":"","greengrassDataPlanePort":"8443","httpClient":{},"interpolateComponentConfiguration":false,"iotCredEndpoint":"c2bx7e6j9b2iiq.credentials.iot.eu-west-2.amazonaws.com","iotDataEndpoint":"aplnkvk1jetfv-ats.iot.eu-west-2.amazonaws.com","iotRoleAlias":"GreengrassCoreTokenExchangeRoleAlias","jvmOptions":"-Dlog.store=FILE","logging":{},"mqtt":{"spooler":{}},"networkProxy":{"proxy":{}},"platformOverride":{},"runWithDefault":{"posixShell":"sh","posixUser":"ggc_user:ggc_group"},"telemetry":{}}
Component Name: UpdateSystemPolicyService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Cli
Version: 2.9.2
State: RUNNING
Configuration: {"AuthorizedPosixGroups":null,"AuthorizedWindowsGroups":null}
Component Name: FleetStatusService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: TelemetryAgent
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: DeploymentService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.StreamManager
Version: 2.1.2
State: RUNNING
Configuration: {"JVM_ARGS":"","LOG_LEVEL":"INFO","port":"8088","STREAM_MANAGER_AUTHENTICATE_CLIENT":"false","STREAM_MANAGER_ENABLE_LOCK_ON_METADATA_STORE":"false","STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH":"2147483647","STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES":"5242880","STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE":"5","STREAM_MANAGER_SERVER_PORT":"8088","STREAM_MANAGER_STORE_ROOT_DIR":"."}
I've tested with the exact sample found here https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-python/blob/main/samples/stream_manager_kinesis.py (substituting my own kinesis stream name). There are no errors reported and the code claims that data is successfully being placed in the stream.
The logs of stream manager don't really report anything though:
2023-01-27T13:40:51.752Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:40:51,749 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:42:51.785Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:42:51,782 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:44:51.818Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:44:51,814 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:46:51.862Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:46:51,852 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:48:51.899Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:48:51,896 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:50:51.924Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:50:51,922 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:52:51.949Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:52:51,946 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:54:51.991Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:54:51,989 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:56:52.038Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:56:52,035 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
2023-01-27T13:58:52.065Z [INFO] (Copier) aws.greengrass.StreamManager: stdout. 2023 Jan 27 15:58:52,062 [INFO] (pool-4-thread-1) com.amazonaws.iot.greengrass.streammanager.server.GreengrassCoreV2SDKWrapper: Stream Manager emitting the V2 telemetry metric. {scriptName=services.aws.greengrass.StreamManager.lifecycle.startup.script, serviceName=aws.greengrass.StreamManager, currentState=RUNNING}
I've been thinking that it may be a permission issues (I've added full kinesis access to the roles I think are relevant), but I'm not seeing any evidence to confirm this. I read this issues on the stream manager client for python that suggested that https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-python/issues/10.
Could anyone please provide suggestions on what they think I should try?