簡體   English   中英

EC2 部署中的 Greengrass 部署問題

[英]Problem with Greengrass deployment from EC2 deployment

我一直在嘗試按照 AWS Greengrass 文檔部署我的第一個 hello world AWS greengrass 程序。

我一直在使用 AWS EC2 (Amazon Linux) 來部署 GG 核心設備。 作為第一步,我創建了一個 GG 核心設備 AWS IoT 核心,然后使用 AWS EC2 對其進行配置。 一切正常!

作為下一步,我使用hello world GG 代碼將組件從 AWS EC2 部署到 GG。 食譜代碼如下。

{
  "RecipeFormatVersion": "2020-01-25",
  "ComponentName": "com.example.HelloWorld",
  "ComponentVersion": "1.0.0",
  "ComponentDescription": "My first AWS IoT Greengrass component.",
  "ComponentPublisher": "Amazon",
  "ComponentConfiguration": {
    "DefaultConfiguration": {
      "Message": "world"
    }
  },
  "Manifests": [
    {
      "Platform": {
        "os": "linux"
      },
      "Lifecycle": {
        "Run": "python3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\""
      }
    },
    {
      "Platform": {
        "os": "windows"
      },
      "Lifecycle": {
        "Run": "py -3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\""
      }
    }
  ]
}

神器代碼如下

import sys

message = "Hello, %s!" % sys.argv[1]

# Print the message to stdout, which Greengrass saves in a log file.
print(message)

我使用以下命令來部署此代碼。

sudo /greengrass/v2/bin/greengrass-cli deployment create \
  --recipeDir ~/greengrassv2/recipes \
  --artifactDir ~/greengrassv2/artifacts \
  --merge "com.example.HelloWorld=1.0.0"

當我運行上面的命令時,會顯示以下錯誤。

Sep 01, 2022 4:52:46 AM software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection$1 onConnectionSetup
INFO: Socket connection /greengrass/v2/ipc.socket:8033 to server result [AWS_ERROR_SUCCESS]
Sep 01, 2022 4:52:46 AM software.amazon.awssdk.eventstreamrpc.EventStreamRPCConnection$1 onProtocolMessage
INFO: Connection established with event stream RPC server
Local deployment submitted! Deployment Id: 2f6cc9cd-7f9d-49ce-ae61-bde9efe34aa5

greengrass.log顯示以下內容:

2022-09-01T04:52:49.965Z [INFO] (Copier) com.aws.greengrass.lifecyclemanager.GenericExternalService: Run script exited. {exitCode=1, serviceName=com.example.HelloWorld, currentState=RUNNING}
2022-09-01T04:52:49.965Z [INFO] (com.example.HelloWorld-lifecycle) com.aws.greengrass.lifecyclemanager.GenericExternalService: service-set-state. {serviceName=com.example.HelloWorld, currentState=RUNNING, newState=BROKEN}
2022-09-01T04:52:49.965Z [INFO] (pool-2-thread-53) com.aws.greengrass.lifecyclemanager.GenericExternalService: Shutdown initiated. {serviceName=com.example.HelloWorld, currentState=BROKEN}
2022-09-01T04:52:49.965Z [INFO] (pool-2-thread-53) com.aws.greengrass.lifecyclemanager.GenericExternalService: generic-service-shutdown. {serviceName=com.example.HelloWorld, currentState=BROKEN}
2022-09-01T04:52:50.895Z [WARN] (pool-2-thread-52) com.aws.greengrass.deployment.DeploymentConfigMerger: merge-config. merge-config-service BROKEN. {serviceName=com.example.HelloWorld}
2022-09-01T04:52:50.895Z [ERROR] (pool-2-thread-52) com.aws.greengrass.deployment.activator.DeploymentActivator: merge-config. Deployment failed. {deploymentId=2f6cc9cd-7f9d-49ce-ae61-bde9efe34aa5}
com.aws.greengrass.deployment.exceptions.ServiceUpdateException: Service com.example.HelloWorld in broken state after deployment
    at com.aws.greengrass.deployment.DeploymentConfigMerger.waitForServicesToStart(DeploymentConfigMerger.java:194)
    at com.aws.greengrass.deployment.activator.DefaultActivator.activate(DefaultActivator.java:84)
    at com.aws.greengrass.deployment.DeploymentConfigMerger.updateActionForDeployment(DeploymentConfigMerger.java:150)
    at com.aws.greengrass.deployment.DeploymentConfigMerger.mergeInNewConfig(DeploymentConfigMerger.java:107)
    at com.aws.greengrass.deployment.DefaultDeploymentTask.call(DefaultDeploymentTask.java:155)
    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)

2022-09-01T04:52:50.895Z [INFO] (pool-2-thread-52) com.aws.greengrass.deployment.DeploymentService: deployment-task-execution. Finished deployment task. {deploymentId=2f6cc9cd-7f9d-49ce-ae61-bde9efe34aa5, serviceName=DeploymentService, currentState=RUNNING}
2022-09-01T04:53:04.382Z [INFO] (pool-2-thread-8) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=2f6cc9cd-7f9d-49ce-ae61-bde9efe34aa5, serviceName=DeploymentService, currentState=RUNNING}
2022-09-01T04:53:04.409Z [INFO] (pool-2-thread-8) com.aws.greengrass.deployment.DeploymentStatusKeeper: Stored deployment status. {DeploymentId=2f6cc9cd-7f9d-49ce-ae61-bde9efe34aa5, DeploymentStatus=FAILED}
2022-09-01T04:53:04.419Z [INFO] (pool-2-thread-8) com.aws.greengrass.status.FleetStatusService: fss-status-update-published. Status update published to FSS. {trigger=LOCAL_DEPLOYMENT, serviceName=FleetStatusService, currentState=RUNNING}
2022-09-01T04:53:04.419Z [INFO] (pool-2-thread-8) com.aws.greengrass.deployment.DeploymentDirectoryManager: Persist link to last deployment. {link=/greengrass/v2/deployments/previous-failure}
2022-09-01T04:53:04.420Z [INFO] (pool-2-thread-8) com.aws.greengrass.deployment.DeploymentDirectoryManager: Clean up link to earlier deployment. {link=/greengrass/v2/deployments/previous-failure}

Cloud 請建議我如何解決此錯誤?

如果有/greengrass/v2/logs/com.example.HelloWorld.log ,您可以檢查它是否包含有關無法運行的組件的其他信息。

如果沒有這樣的文件,請仔細檢查您進行本地發布的目錄布局是否正確。 具體來說, artifacts文件夾應包含以下artifacts/com.example.HelloWorld/1.0.0/hello_world.py

干杯,馬西米利亞諾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM