- Newest
- Most votes
- Most comments
Hey scriobhneoir,
The error you are seeing doesn't seem to be relate to the architecture variable. That error you posted occurs when Greengrass fails to resolve (find) your component locally or on the cloud. There could be several reasons this happens, to solve it ensure
-
Ensure that the role your device assumes has the s3:GetObject permission to that bucket where you are uploading your component. Without this your device won't be able to download the component and it will fail to install it
-
Ensure your recipe file is correct, I can not tell just from that part of your recipe file if you have specified the correct version (make sure it has a version number and that the version number is matching the one you want to install)
-
You have a typo on the recipe
architecure != architecture
If non of that works, could you post here your full recipe and gdk-config.json files so we can further assist you?
A follow-up: Thanks for the typo suggestion, that has been resolved and the AWS console now has the two tabs for x86,aarch64.
The component resolution error still occurs. Debug steps I have done:
- Deployed the component in question to another device in the same stack (aarch64 device). Finds and deploys the component correctly.
- On the x86 device, deployed another new device, which it finds in the cloud without issue. Stored in the same bucket, in the same way. (both the find-able component and the non-findable component have the same "publish" key in their gdk-config.json's)
More follow up:
The component will now deploy, if I add an 'all' key to the architecture. It seems to ignore the x86 architrecture key altogether.
uname -a output:
Linux <snip-mahcine-name> 5.15.0-56-generic #62~20.04.1-Ubuntu SMP Tue Nov 22 21:24:20 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Questions:
- Why does the component seem unable to detect the arch ?
- When the arch is not detected, is this normal behaviour ?
x86_64 != x86. x86 means 32 bit, while x86_64 means 64 bit. In Greengrass, x86_64 maps to the
amd64architecture. You should specifyamd64in your recipe.If you don't want your application to run on 32 bit systems, then you should NOT have a value for x86 in your recipe at all. Then it won't be deployed to the device, resulting in the error which you've seen.
Relevant content
- asked a year ago
- asked a year ago
- asked 10 months ago

the typo seems like the likely culprit. Thanks for the correction, thats a silly one.