Greengrass: cannot deploy aws.greengrass.SageMakerEdgeManager component

0

Hi,

Deploying to a device (Raspberry Pi 4 Model B w/ Raspbian 11) with the public component aws.greengrass.SageMakerEdgeManager version 1.3.2 results in a failure. Other public components deploy just fine (namely, aws.greengrass.Cli v2.9.2, aws.greengrass.Nucleus v2.9.2, aws.greengrass.TokenExchangeService 2.0.3). I have tried all versions of SageMakerEdgeManager from 1.2.0 to 1.3.2, the error is the same.

This is the error shown in the AWS IoT console, on the deployment failure:

COMPONENT_VERSION_REQUIREMENTS_NOT_MET: FAILED_NO_STATE_CHANGE: No local or cloud component version satisfies the requirements Check whether the version constraints conflict and that the component exists in your AWS account with a version that matches the version constraints. If the version constraints conflict, revise deployments to resolve the conflict. Component aws.greengrass.SageMakerEdgeManager version constraints: thinggroup/foos requires =1.3.2.
Error code hierarchy
• DEPLOYMENT_FAILURE
  • NO_AVAILABLE_COMPONENT_VERSION
    • COMPONENT_VERSION_REQUIREMENTS_NOT_MET

And the error on the device logs:

2023-01-12T19:30:29.847Z [INFO] (pool-2-thread-46) com.aws.greengrass.componentmanager.ComponentManager: No running component satisfies the requirement. Searching in the loca
l component store.. {}
2023-01-12T19:30:29.848Z [INFO] (pool-2-thread-46) com.aws.greengrass.componentmanager.ComponentManager: Can't find a local candidate that satisfies the requirement.. {}
2023-01-12T19:30:30.081Z [ERROR] (pool-2-thread-46) com.aws.greengrass.componentmanager.ComponentManager: Failed to negotiate version with cloud and no local version to fall 
back to. {componentName=aws.greengrass.SageMakerEdgeManager, versionRequirement={thinggroup/foos==1.3.2}}
2023-01-12T19:30:30.081Z [ERROR] (pool-2-thread-45) com.aws.greengrass.deployment.DeploymentService: Error occurred while processing deployment. {deploymentId=0ed34cb9-6498-4c7e-bcf8-d702a7f0526d, serviceName=DeploymentService, currentState=RUNNING}
java.util.concurrent.ExecutionException: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: No local or cloud component version satisfies the requirements Check whether the version constraints conflict and that the component exists in your AWS account with a version that matches the version constraints. If the version constraints conflict, revise deployments to resolve the conflict. Component aws.greengrass.SageMakerEdgeManager version constraints: thinggroup/foos requires =1.3.2.
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.aws.greengrass.deployment.DefaultDeploymentTask.call(DefaultDeploymentTask.java:127)
        at com.aws.greengrass.deployment.DefaultDeploymentTask.call(DefaultDeploymentTask.java:50)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: No local or cloud component version satisfies the requirements Check whether the version constraints conflict and that the component exists in your AWS account with a version that matches the version constraints. If the version constraints conflict, revise deployments to resolve the conflict. Component aws.greengrass.SageMakerEdgeManager version constraints: thinggroup/foos requires =1.3.2.
        at com.aws.greengrass.componentmanager.ComponentManager.negotiateVersionWithCloud(ComponentManager.java:229)
        at com.aws.greengrass.componentmanager.ComponentManager.resolveComponentVersion(ComponentManager.java:164)
        at com.aws.greengrass.componentmanager.DependencyResolver.lambda$resolveDependencies$2(DependencyResolver.java:125)
        at com.aws.greengrass.componentmanager.DependencyResolver.resolveComponentDependencies(DependencyResolver.java:221)
        at com.aws.greengrass.componentmanager.DependencyResolver.resolveDependencies(DependencyResolver.java:123)
        at com.aws.greengrass.deployment.DefaultDeploymentTask.lambda$call$2(DefaultDeploymentTask.java:125)
        ... 4 more

2023-01-12T19:30:43.670Z [INFO] (pool-2-thread-12) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=79d14667-f8f3-4dff-8d3c-82feee77ca1f, GreengrassDeploymentId=0ed34cb9-6498-4c7e-bcf8-d702a7f0526d, serviceName=DeploymentService, currentState=RUNNING}
2023-01-12T19:30:43.671Z [ERROR] (pool-2-thread-12) com.aws.greengrass.deployment.DeploymentService: Deployment task failed with following errors. {DeploymentId=79d14667-f8f3-4dff-8d3c-82feee77ca1f, detailed-deployment-status=FAILED_NO_STATE_CHANGE, deployment-error-types=[REQUEST_ERROR], GreengrassDeploymentId=0ed34cb9-6498-4c7e-bcf8-d702a7f0526d, serviceName=DeploymentService, currentState=RUNNING, deployment-error-stack=[DEPLOYMENT_FAILURE, NO_AVAILABLE_COMPONENT_VERSION, COMPONENT_VERSION_REQUIREMENTS_NOT_MET]}
com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: No local or cloud component version satisfies the requirements Check whether the version constraints conflict and that the component exists in your AWS account with a version that matches the version constraints. If the version constraints conflict, revise deployments to resolve the conflict. Component aws.greengrass.SageMakerEdgeManager version constraints: thinggroup/foos requires =1.3.2.
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
        at com.aws.greengrass.deployment.DefaultDeploymentTask.call(DefaultDeploymentTask.java:127)
        at com.aws.greengrass.deployment.DefaultDeploymentTask.call(DefaultDeploymentTask.java:50)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.aws.greengrass.componentmanager.exceptions.NoAvailableComponentVersionException: No local or cloud component version satisfies the requirements Check whether t
he version constraints conflict and that the component exists in your AWS account with a version that matches the version constraints. If the version constraints conflict, re
vise deployments to resolve the conflict. Component aws.greengrass.SageMakerEdgeManager version constraints: thinggroup/foos requires =1.3.2.
        at com.aws.greengrass.componentmanager.ComponentManager.negotiateVersionWithCloud(ComponentManager.java:229)
        at com.aws.greengrass.componentmanager.ComponentManager.resolveComponentVersion(ComponentManager.java:164)
        at com.aws.greengrass.componentmanager.DependencyResolver.lambda$resolveDependencies$2(DependencyResolver.java:125)
        at com.aws.greengrass.componentmanager.DependencyResolver.resolveComponentDependencies(DependencyResolver.java:221)
        at com.aws.greengrass.componentmanager.DependencyResolver.resolveDependencies(DependencyResolver.java:123)
        at com.aws.greengrass.deployment.DefaultDeploymentTask.lambda$call$2(DefaultDeploymentTask.java:125)
        ... 4 more

Please let me know if I can provide any more information which would help diagnose the problem.

EDIT: The component lists these architectures: /amd64|x86/, aarch64. Could it be that the OS being 32-bit is causing the problem?

m
asked a year ago345 views
1 Answer
1
Accepted Answer

The prerequisites states it has to be x86_64 or Armv8 - https://docs.aws.amazon.com/greengrass/v2/developerguide/get-started-with-edge-manager-on-greengrass.html

As you mentioned, OS being 32-bit, so it is Armv7, not Armv8 (aarch64).

AWS
EXPERT
sunrise
answered a year ago
  • Thank you for the response. I installed the 64-bit version Raspberry PI OS on the device and the component deploys to it successfully.

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