Docker 中的 Greengrass v2 队列配置

0

【以下的问题经过翻译处理】 根据Greengrass v2 IoT指南,有几个选项可供选择:手动、自动和队列。这些选项适用于基于操作系统的环境。是否可以在运行在Docker中的Greengrass核心中运行队列的配置呢?

profile picture
专家
已提问 5 个月前9 查看次数
1 回答
0

【以下的回答经过翻译处理】 嗨,Koverski,

在Docker中运行的Greengrass v2的情况下,可以使用声明队列配置。

您必须编排队列配置的设置并确保按照文档中描述的创建了模板和策略。

一旦设定好了,您可以通过一些小的调整来运行Docker设置。

我们需要将声明证书和配置挂载到docker容器中,以便Greengrass可以访问它。我们将创建一个目录/tmp/greengrass-setup,并将其挂载到容器的/greengrass-setup目录中。

将声明证书和AmazonRootCA放置在如/tmp/greengrass-setup/certs的目录下。

将队列配置插件放置在/tmp/greengrass-setup/下。

创建一个名为/tmp/greengrass-setup/env的环境文件,其中包含以下内容:

GGC_ROOT_PATH=/greengrass/v2
PROVISION=false
COMPONENT_DEFAULT_USER=ggc_user:ggc_group
TRUSTED_PLUGIN=/greengrass-setup/fleetprovisioningbyclaim-latest.jar
INIT_CONFIG=/greengrass-setup/config.yaml

您可以设置其他环境变量 - 参见https://docs.aws.amazon.com/greengrass/v2/developerguide/build-greengrass-dockerfile.html#set-dockerfile-environment-variables

按照https://docs.aws.amazon.com/greengrass/v2/developerguide/fleet-provisioning.html#run-greengrass-core-v2-installer-fleet中所述创建一个名为/tmp/greengrass-setup/config.yaml的配置文件。

应该看起来像这样:

---
services:
  aws.greengrass.Nucleus:
    version: "2.5.0"
  aws.greengrass.FleetProvisioningByClaim:
    configuration:
      rootPath: /greengrass/v2
      awsRegion: "us-west-2"
      iotDataEndpoint: "<your endpoint>"
      iotCredentialEndpoint: "<your endpoint>"
      iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
      provisioningTemplate: "GreengrassFleetProvisioningTemplate"
      claimCertificatePath: "/greengrass-setup/certs/claim.pem.crt"
      claimCertificatePrivateKeyPath: "/greengrass-setup/certs/claim.private.pem.key"
      rootCaPath: "/greengrass-setup/certs/AmazonRootCA1.pem"
      templateParameters:
        ThingName: "<thing name>"
        ThingGroupName: "<group name>"

您需要确保路径与我们装载到docker中的目录对齐

最后,通过以下方式运行容器: docker run --rm --init -it
--name aws-iot-greengrass
-v /tmp/greengrass-setup:/greengrass-setup
--env-file=/tmp/greengrass-setup/env
-p 8883 amazon/aws-iot-greengrass:latest

我们使用-v选项将目录装载到容器中,并使用-env-file选项加载环境变量。 这将启动容器并启动greengrass。

您可以进入容器并检查日志 docker exec -it <container-id> cat /greengrass/v2/logs/greengrass.log

看看Greengrass发生了什么。如果出现任何无法使用队列配置插件配置IoT事物的错误,都将显示在greengrass.log中

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则