- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 嗨,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中
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 年前