What is the best way to install/uninstall an exe on Greengrass Windows Core Devices

0

I have an use case to install an application(.exe) on a group of green grass core devices which are typically windows boxes. This application has to be upgraded on all core devices whenever a new release happens. We might uninstall or reinstall this application multiple times for whatsoever reasons.

I am exploring these two ways to perform this task.

  1. Greengrass Deployments - Create a component with .exe file as artifact. recipe.json is given below. And deploy this component targeting a thing group. { "RecipeFormatVersion": "2020-01-25", "ComponentName": "COMPONENT_NAME", "ComponentVersion": "COMPONENT_VERSION", "ComponentDescription": "This device health component collects device health and send it to IoT Core", "ComponentPublisher": "COMPONENT_AUTHOR", "Manifests": [ { "Platform": { "os": "windows" }, "Lifecycle": { "Run": "start /wait {artifacts:decompressedPath}/com.mx.emarOffline/eMAROfflineInstall.exe /VERYSILENT" }, "Artifacts": [ { "URI": "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/com.mx.emarOffline.zip", "Unarchive": "ZIP" } ] } ] }

  2. AWS Systems Manager - Install Systems Manager component on windows core device and manages this application installation/uninstallation.

Please suggest which approach is best for my use case. Is there any other way other than above two approaches?

1 Answer
0

Hello,

From the description of the component, it seems that the executable is used to collect health data to be sent to AWS via IoT Core. If you run this inside Greengrass, you can take advantage of the Greengrass IPC to send the messages to IOT Core via the Greengrass MQTT connection, or use the credential provider (TES) to send the data via the REST API.

SSM only provides you with the possibility to run scripts remotely, but you are still responsible of transferring the executable to the instance coping with possible interruptions, etc, execute it and also provide the credentials so that it can connect to the AWS IoT Core backend.

Thanks

AWS
answered a year 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.

Guidelines for Answering Questions