Enable logging to CloudWatch logs on my IoT Greengrass core device

0

Hey there,

I've been trying to send the logs of my IoT Greengrass core device to Cloudwatch following this guide. It says to create a deployment and inserting this:

{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true"
    }
  }
}

and this, accordingly:

{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
      
      }
    }
  }
}

I just don't get how and where I have to insert those. It's really not explained that much... My last attempt was to create a deployment.json file that looked as follows and push it to AWS through the CLi command aws greengrassv2 create-deployment --cli-input-json file://deployment.json, but that doesn't work:

{
    "targetArn": "arn:aws:iot:<myregion>:<mynumber>:thinggroup/groupname",
    "deploymentName": "test_deployments",
    "components": {
        "aws.greengrass.Cloudwatch": {
            "componentVersion": "3.1.0"
        },
        "aws.greengrass.LogManager": {
            "componentVersion": "2.3.1",
            "logsUploaderConfiguration": {
                "systemLogsConfiguration": {
                    "uploadToCloudWatch": "true"
                },
                "componentLogsConfigurationMap":{
                    "com.example.MyPrivateDockerComponent": {
                        
                    }
                }
            }
        },
        "com.example.MyPrivateDockerComponent": {
            "componentVersion": "1.1.5",
            "runWith": {}
        }
    },
    "deploymentPolicies": {
        "failureHandlingPolicy": "ROLLBACK",
        "componentUpdatePolicy": {
            "timeoutInSeconds": 60,
            "action": "NOTIFY_COMPONENTS"
        }
    },
    "iotJobConfiguration": {
        "jobExecutionsRolloutConfig": {
            "maximumPerMinute": 1000
        }
    },

    "tags": {}
}

Can anyone tell me where to place the "logsUploaderConfiguration" that I can accordingly update my deployment to log to Cloudwatch? Also, is this somehow possible through the AWS console in addition to the CLI? Thanks a lot for your help!

1 réponse
2

Review https://docs.aws.amazon.com/greengrass/v2/APIReference/API_CreateDeployment.html for using the API properly.

"aws.greengrass.LogManager": {
    "componentVersion": "2.3.1",
    "configurationUpdate": {
        "merge": "{\"logsUploaderConfiguration\":{\"systemLogsConfiguration\":{\"uploadToCloudWatch\":\"true\"},\"componentLogsConfigurationMap\":{\"com.example.MyPrivateDockerComponent\":{}}}}"
    }
}

You can of course use the Console to do this. Edit the deployment and on the page titled "Configure components - optional", select the radio button next to the log manager component and then click on the button at the top to configure the component.

AWS
EXPERT
répondu il y a un an

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions