Windows上的AWS Greengrass设置失败:无法将Nucleus设置为系统服务



我试图在windows机器上安装AWS Greengrass,但失败了,输出如下(在正确配置AWS凭据并下载官方软件包后(:

C:...> java "-Droot=C:greengrassv2" "-Dlog.store=FILE" -jar .GreengrassCorelibGreengrass.jar --aws-region eu-west-1 --thing-name Greengrass-balazs --thing-group-name GreengrassGroup --component-default-user ggc_user --provision true --setup-system-service true --deploy-dev-tools true
Provisioning AWS IoT resources for the device with IoT Thing Name: [Greengrass-balazs]...
Found IoT policy "GreengrassV2IoTThingPolicy", reusing it
Creating keys and certificate...
Attaching policy to certificate...
Creating IoT Thing "Greengrass-balazs"...
Attaching certificate to IoT thing...
Successfully provisioned AWS IoT resources for the device with IoT Thing Name: [Greengrass-balazs]!
Adding IoT Thing [Greengrass-balazs] into Thing Group: [GreengrassGroup]...
IoT Thing Group "GreengrassGroup" already existed, reusing it
Successfully added Thing into Thing Group: [GreengrassGroup]
Setting up resources for aws.greengrass.TokenExchangeService ...
Attaching TES role policy to IoT thing...
No managed IAM policy found, looking for user defined policy...
IAM policy named "GreengrassV2TokenExchangeRoleAccess" already exists. Please attach it to the IAM role if not already
Configuring Nucleus with provisioned resource details...
Root CA file found at "C:greengrassv2rootCA.pem". Contents will be preserved.
Downloading Root CA from "https://www.amazontrust.com/repository/AmazonRootCA1.pem"
Created device configuration
Successfully configured Nucleus with provisioned resource details!
Thing group exists, it could have existing deployment and devices, hence NOT creating deployment for Greengrass first party dev tools, please manually create a deployment if you wish to
Default user creation is only supported on Linux platforms, Greengrass will not make a user for you. Ensure that the user exists and password is stored. Continuing...
Unable to set up Nucleus as a system service

我试着遵循故障排除指南,但它似乎过时了?无法真正理解这应该做什么。

C:Usersbk73027Projects> Set-Service -Name "greengrass" -Status stopped -StartupType enabled
>>
Set-Service : Cannot bind parameter 'StartupType'. Cannot convert value "enabled" to type "System.ServiceProcess.ServiceStartMode". Error: "Unable to match the identifier name enabled to a valid enumerator
name. Specify one of the following enumerator names and try again:
Boot, System, Automatic, Manual, Disabled"
At line:1 char:61
+ Set-Service -Name "greengrass" -Status stopped -StartupType enabled
+                                                             ~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Set-Service], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.SetServiceCommand

在日志中,我可以在C:greengrassv2logs~greengrass.log:中看到以下内容

2022-08-03T11:54:49.086Z [INFO] (main) com.aws.greengrass.util.platforms.Platform: Getting platform instance com.aws.greengrass.util.platforms.windows.WindowsPlatform.. {}
2022-08-03T11:54:49.187Z [WARN] (Serialized listener processor) com.aws.greengrass.lifecyclemanager.KernelAlternatives: C:greengrassv2altscurrent. {}
2022-08-03T11:54:49.188Z [WARN] (Serialized listener processor) com.aws.greengrass.lifecyclemanager.KernelAlternatives: C:greengrassv2altscurrent. {}
2022-08-03T11:54:49.192Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: No ongoing deployment detected. Proceed as default. {}
2022-08-03T11:54:49.252Z [INFO] (main) com.aws.greengrass.config.Configuration: config-loading. Read configuration from a file path. {path=C:greengrassv2configconfig.tlog}
2022-08-03T11:54:49.297Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: effective-config-dump-complete. {file=C:greengrassv2configeffectiveConfig.yaml}
2022-08-03T11:54:49.385Z [INFO] (main) com.aws.greengrass.deployment.DeviceConfiguration: Copy Nucleus artifacts to component store. {destination=C:greengrassv2packagesartifacts-unarchivedaws.greengrass.Nucleus2.7.0aws.greengrass.nucleus, source=C:Usersbk73027ProjectsGreengrassCore}
2022-08-03T11:54:49.460Z [ERROR] (main) com.aws.greengrass.deployment.DeviceConfiguration: Unable to set up Nucleus from build recipe file. {}
java.io.IOException: Failed to setup initial launch directory. Expecting loader script at: C:greengrassv2altscurrentdistrobinloader.cmd
at com.aws.greengrass.lifecyclemanager.KernelAlternatives.relinkInitLaunchDir(KernelAlternatives.java:206)
at com.aws.greengrass.deployment.DeviceConfiguration.initializeComponentStore(DeviceConfiguration.java:357)
at com.aws.greengrass.deployment.DeviceConfiguration.initializeNucleusFromRecipe(DeviceConfiguration.java:388)
at com.aws.greengrass.lifecyclemanager.Kernel.parseArgs(Kernel.java:645)
at com.aws.greengrass.easysetup.GreengrassSetup.performSetup(GreengrassSetup.java:296)
at com.aws.greengrass.easysetup.GreengrassSetup.main(GreengrassSetup.java:269)
2022-08-03T11:55:06.421Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: effective-config-dump-complete. {file=C:greengrassv2configeffectiveConfig.yaml}
2022-08-03T11:55:06.425Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: Waiting for services to shutdown. {}
2022-08-03T11:55:06.431Z [WARN] (main) com.aws.greengrass.lifecyclemanager.KernelAlternatives: C:greengrassv2altscurrent. {}
2022-08-03T11:55:06.433Z [ERROR] (main) com.aws.greengrass.util.orchestration.WinswUtils: winsw-setup. Failed to set up Windows service. {}
java.nio.file.FileAlreadyExistsException: C:greengrassv2altscurrent
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:87)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.createSymbolicLink(WindowsFileSystemProvider.java:585)
at java.base/java.nio.file.Files.createSymbolicLink(Files.java:1059)
at com.aws.greengrass.lifecyclemanager.KernelAlternatives.setupLinkToDirectory(KernelAlternatives.java:345)
at com.aws.greengrass.lifecyclemanager.KernelAlternatives.setupInitLaunchDirIfAbsent(KernelAlternatives.java:178)
at com.aws.greengrass.util.orchestration.WinswUtils.setupSystemService(WinswUtils.java:38)
at com.aws.greengrass.easysetup.GreengrassSetup.performSetup(GreengrassSetup.java:328)
at com.aws.greengrass.easysetup.GreengrassSetup.main(GreengrassSetup.java:269)
2022-08-03T11:55:06.433Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: system-shutdown. {main=null}
2022-08-03T11:55:06.443Z [INFO] (main) com.aws.greengrass.lifecyclemanager.Kernel: effective-config-dump-complete. {file=C:greengrassv2configeffectiveConfig.yaml}
2022-08-03T11:55:06.444Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: Waiting for services to shutdown. {}
2022-08-03T11:55:06.444Z [INFO] (Serialized listener processor) com.aws.greengrass.lifecyclemanager.KernelLifecycle: executor-service-shutdown-initiated. {}
2022-08-03T11:55:06.445Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: Waiting for executors to shutdown. {}
2022-08-03T11:55:06.445Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: executor-service-shutdown-complete. {executor-terminated=true, scheduled-executor-terminated=true}
2022-08-03T11:55:06.445Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: context-shutdown-initiated. {}
2022-08-03T11:55:06.446Z [INFO] (main) com.aws.greengrass.lifecyclemanager.KernelLifecycle: context-shutdown-complete. {}

根据这个,我已经把脚本放在那里:

C:Usersbk73027Projects> cat C:greengrassv2altscurrentdistrobinloader.cmd
@REM -------------------------------
@REM Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@REM SPDX-License-Identifier: Apache-2.0
@REM -------------------------------
@echo off
SETLOCAL EnableDelayedExpansion
etc...

但它仍然会写入相同的错误。

删除c:\greengrass文件夹后,再次从stratch开始,它就工作了。

我怀疑问题出在我没有准确地遵循指南。

此步骤至关重要:在";安装亚马逊物联网Greengrass核心软件(CLI(";上面写着:

  1. 在Greengrass核心设备上,运行以下命令切换到主目录

cd~

因为我创建了一个不同的工作文件夹来下载&提取文件,它一定搞砸了创建符号链接的方式。文件夹是空的,但在从我的主文件夹执行命令后,文件夹里装满了这些命令,它成功地安装了greengrass。

最新更新