Skip to content

IoT core greengrass fleet provision device side effectiveConfig.yaml does not have updated thingName

1

Trying to use provision by claim and provisioning hook to admit the device. The provisioning hook output will return a formatted thingName rather than the name passed into the provisioning hook,

const requestedThingName = input.parameters.ThingName;

....

const output = {
    allowProvisioning: True,
    parameterOverrides: {
        ThingName: newThingName,
    },

this works, but on the device side, after iot mqtt session successfully established, in /greengrass/v2/config/effectiveConfig.yaml, the file looks like this:

system:

certificateFilePath: ""

privateKeyPath: ""

rootCaPath: ""

rootpath: "/greengrass/v2"

thingName: ""

services:

aws.greengrass.FleetProvisioningByClaim:

configuration:

I would expect, updated thingName is there under thingName key.

I can only see the newThingName in config.tlog: {"TS":1649181903995,"TP":["setenv","AWS_IOT_THING_NAME"],"W":"changed","V":"newThingName"}

I think effectiveConfig.yaml should be updated.

asked 4 years ago902 views

1 Answer
1

Hello,

The effective config file is only written on Greengrass startup and shutdown. If you were to shutdown Greengrass you should then see the most recent values of the configuration reflected in the effective config file. The effective config file is only ever written, it is not used by Greengrass for any purposes. If you want to see the true state of things, the config.tlog file is always the source of truth.

AWS
EXPERT

answered 4 years ago

AWS
EXPERT

reviewed 3 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.