I am experiencing an issue where awscc_greengrassv2_deployment
is not updating component configuration on the Greengrass device. The only way have have successfully deployed a config update is via the AWS console.
Before I raise this as a bug, has anyone else experienced this same issue and/or know what I’m doing wrong?
The Terraform code I’m using looks like this:
resource "awscc_greengrassv2_deployment" "gg_deployment_9" {
# Create an AWS IoT Greengrass deployment.
target_arn = aws_iot_thing_group.group.arn
deployment_name = "${var.resource_prefix}-${var.region}-${var.env}-Deployment-${random_id.id.hex}"
deployment_policies = {
configuration_validation_policy = {
timeout_in_seconds = 60
}
component_update_policy = {
timeout_in_seconds = 60
}
failure_handling_policy = "ROLLBACK"
}
components = {
"aws.greengrass.Nucleus" = {
component_version = "2.12.4"
configuration_update = {
Reset = [""]
Merge = jsonencode(
{
"spooler" : {
"storageType" : "Disk"
"maxSizeInBytes" : "2048"
}
}
)
}
},
"aws.greengrass.clientdevices.mqtt.Bridge" = {
component_version = "2.3.1"
},
"aws.greengrass.ShadowManager" = {
component_version = "2.3.7"
configuration_update = {
Merge = jsonencode(
{
"strategy" : {
"type" : "realTime", // default realTime
},
"synchronize" : {
"direction" : "betweenDeviceAndCloud",
"coreThing" : {
"classic" : true,
"namedShadows" : []
},
"shadowDocumentsMap" : {
"${aws_iot_thing.example.name}" : {
"classic" : true,
"namedShadows" : []
}
}
},
"direction" : "betweenDeviceAndCloud"
"rateLimits" : {
"maxOutboundSyncUpdatesPerSecond" : 100,
"maxTotalLocalRequestsRate" : 200,
"maxLocalRequestsPerSecondPerThing" : 20
},
"shadowDocumentSizeLimitBytes" : 8192
}
)
}
},
"aws.greengrass.Cli" = {
component_version = "2.12.4"
},
"aws.greengrass.StreamManager" = {
component_version = "2.1.12"
},
"aws.greengrass.DiskSpooler" = {
component_version = "1.0.3"
}
}
}