安装具有 AWS IoT 队列配置功能的 C AWS IoT Greengrass ore 软件 - AWS IoT Greengrass

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

安装具有 AWS IoT 队列配置功能的 C AWS IoT Greengrass ore 软件

此功能适用于 Greengrass nucleus 组件的 v2.4.0 及更高版本。

借助 AWS IoT 队列配置,您可以配置 AWS IoT 为在设备首次连接时生成 X.509 设备证书和私钥并将其安全地交付 AWS IoT 给设备。 AWS IoT 提供由 Amazon 根证书颁发机构 (CA) 签署的客户证书。您还可以通过配置 AWS IoT 来为使用队列配置的 Greengrass 核心设备指定事物组、事物类型和权限。您可以定义配置模板来定义如何配置 AWS IoT 每台设备。配置模板指定了置备时要为设备创建的事物、策略和证书资源。有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的配置模板

AWS IoT Greengrass 提供了一个 AWS IoT 队列配置插件,您可以使用该插件使用 AWS IoT 队列配置创建的 AWS 资源来安装 AWS IoT Greengrass 核心软件。舰队配置插件使用按声明配置。设备使用配置声明证书和私钥来获取可用于常规操作的唯一 X.509 设备证书和私钥。在制造过程中,您可以将索赔证书和私钥嵌入每台设备中,这样您的客户便可以在每台设备上线后激活设备。您可以为多台设备使用相同的索赔证书和私钥。有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的按声明进行配置

注意

舰队配置插件目前不支持在硬件安全模块 (HSM) 中存储私钥和证书文件。要使用 HSM,请使用手动配置来安装 AWS IoT Greengrass Core 软件

要安装具有 AWS IoT 队列配置功能的 AWS IoT Greengrass Core 软件,您必须在中设置用于配置 Gre AWS IoT engrass 核心设备的资源。 AWS 账户 这些资源包括配置模板、申领证书和令牌交换 IAM 角色。创建这些资源后,您可以重复使用它们来配置队列中的多个核心设备。有关更多信息,请参阅 为 Greengrass 核心AWS IoT设备设置队列配置

重要

在下载 AWS IoT Greengrass 酷睿软件之前,请检查您的核心设备是否满足安装和运行 AWS IoT Greengrass 酷睿软件 v2.0 的要求

先决条件

要安装具有 AWS IoT 队列配置功能的 AWS IoT Greengrass Core 软件,必须先为 Greengrass 核心 AWS IoT 设备设置队列配置。完成这些步骤后,您可以使用队列配置在任意数量的设备上安装 AWS IoT Greengrass 核心软件。

检索 AWS IoT 端点

获取您的终 AWS IoT 端节点 AWS 账户,然后将其保存以备后用。您的设备使用这些端点进行连接 AWS IoT。执行以下操作:

  1. 获取您的 AWS IoT 数据端点 AWS 账户。

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    如果请求成功,则响应类似于以下示例。

    { "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com" }
  2. 获取您的 AWS IoT 凭证端点 AWS 账户。

    aws iot describe-endpoint --endpoint-type iot:CredentialProvider

    如果请求成功,则响应类似于以下示例。

    { "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" }

将证书下载到设备

设备使用索赔证书和私钥来验证其 AWS 调配资源和获取 X.509 设备证书的请求。您可以在制造过程中将索赔证书和私钥嵌入到设备中,也可以在安装过程中将证书和密钥复制到设备。在本节中,您将索赔证书和私钥复制到设备上。您还可以将 Amazon 根证书颁发机构 (CA) 证书下载到设备上。

重要

供应声称私钥应始终受到保护,包括在 Greengrass 核心设备上。我们建议您使用 Amazon CloudWatch 指标和日志来监控是否存在滥用迹象,例如未经授权使用索赔证书来配置设备。如果您发现滥用,请禁用配置声明证书,使其无法用于设备配置。有关更多信息,请参阅 AWS IoT Core 开发人员指南 中的 监控 AWS IoT

为了帮助您更好地管理自己在您的设备中注册的设备数量和设备 AWS 账户,您可以在创建队列配置模板时指定预配置挂钩。预配置挂钩是一种验证设备在注册期间提供的模板参数的 AWS Lambda 功能。例如,您可以创建一个预配置挂钩,根据数据库检查设备 ID,以验证设备是否有权进行置备。有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的预置挂钩

将领取证书下载到设备
  1. 将索赔证书和私钥复制到设备上。如果在开发计算机和设备上启用了 SSH 和 SCP,则可以在开发计算机上使用scp命令来传输声明证书和私钥。以下示例命令将开发计算机claim-certs上名为的文件夹中的这些文件传输到设备。将设备的 IP 地址替换为设备的 IP 地址。

    scp -r claim-certs/ device-ip-address:~
  2. 在设备上创建 Greengrass 根文件夹。稍后,您将将 AWS IoT Greengrass Core 软件安装到此文件夹。

    Linux or Unix
    • /greengrass/v2替换为要使用的文件夹。

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • C:\greengrass\v2 替换为要使用的文件夹。

    mkdir C:\greengrass\v2
    PowerShell
    • C:\greengrass\v2 替换为要使用的文件夹。

    mkdir C:\greengrass\v2
  3. (仅限 Linux)设置 Greengrass 根文件夹的父文件夹的权限。

    • /greengrass 替换为根文件夹的父文件夹。

    sudo chmod 755 /greengrass
  4. 将索赔证书移至 Greengrass 根文件夹。

    • 用 Greengrass 根文件夹替换/greengrass/v2C:\greengrass\v2

    Linux or Unix
    sudo mv ~/claim-certs /greengrass/v2
    Windows Command Prompt (CMD)
    move %USERPROFILE%\claim-certs C:\greengrass\v2
    PowerShell
    mv -Path ~\claim-certs -Destination C:\greengrass\v2
  5. 下载 Amazon 根证书颁发机构 (CA) 证书。 AWS IoT 默认情况下,证书与亚马逊的根 CA 证书相关联。

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

设置设备环境

按照本节中的步骤设置要用作 AWS IoT Greengrass 核心设备的 Linux 或 Windows 设备。

设置 Linux 设备

设置 Linux 设备用于 AWS IoT Greengrass V2
  1. 安装 Java 运行时, AWS IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 Amazon Cor retto OpenJDK 长期支持版本。需要版本 8 或更高版本。以下命令向您展示了如何在您的设备上安装 OpenJDK。

    • 对于基于 Debian 或基于 Ubuntua 的发行版:

      sudo apt install default-jdk
    • 对于基于 Red Hat 的发行版:

      sudo yum install java-11-openjdk-devel
    • 对于 Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • 对于 Amazon Linux 2023:

      sudo dnf install java-11-amazon-corretto -y

    安装完成后,运行以下命令以验证 Java 是否在您的 Linux 设备上运行。

    java -version

    该命令会打印设备上运行的 Java 版本。例如,在基于 Debian 的发行版上,输出可能与以下示例类似。

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (可选)创建在设备上运行组件的默认系统用户和组。您也可以选择让 AWS IoT Greengrass 核心软件安装程序在安装过程中使用安装程序参数创建此用户和组。--component-default-user有关更多信息,请参阅 安装程序参数

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. 验证运行 AWS IoT Greengrass Core 软件的用户(通常root)是否有权sudo与任何用户和任何组一起运行。

    1. 运行以下命令打开该/etc/sudoers文件。

      sudo visudo
    2. 验证用户的权限是否如以下示例所示。

      root ALL=(ALL:ALL) ALL
  4. (可选)要运行容器化 Lambda 函数,必须启用 c groups v1,并且必须启用并挂载内存和设备 cgroups。如果您不打算运行容器化 Lambda 函数,则可以跳过此步骤。

    要启用这些 cgroups 选项,请使用以下 Linux 内核参数启动设备。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    有关查看和设置设备内核参数的信息,请参阅操作系统和启动加载程序的文档。按照说明永久设置内核参数。

  5. 按照中的要求列表所示,在您的设备上安装所有其他必需的依赖项设备要求

设置 Windows 设备

要将 Windows 设备设置为 AWS IoT Greengrass V2
  1. 安装 Java 运行时, AWS IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 Amazon Cor retto OpenJDK 长期支持版本。需要版本 8 或更高版本。

  2. 检查 PATH 系统变量上是否有 Java 可用,如果没有,请添加它。该 LocalSystem 帐户运行 AWS IoT Greengrass Core 软件,因此您必须将 Java 添加到 PATH 系统变量中,而不是用户的 PATH 用户变量。执行以下操作:

    1. 按下 Windows 键打开开始菜单。

    2. 键入environment variables以从 “开始” 菜单中搜索系统选项。

    3. 在开始菜单搜索结果中,选择编辑系统环境变量以打开系统属性窗口。

    4. 选择环境变量... 打开 “环境变量” 窗口。

    5. 在 “系统变量” 下,选择 “路径”,然后选择 “编辑”。在 “编辑环境变量” 窗口中,可以在单独的行上查看每个路径。

    6. 检查 Java 安装bin文件夹的路径是否存在。路径可能与以下示例类似。

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. 如果路径中缺少 Java 安装bin的文件夹,请选择 “新建” 将其添加,然后选择 “确定”

  3. 以管理员身份打开 Windows 命令提示符 (cmd.exe)。

  4. 在 Windows 设备上的 LocalSystem 帐户中创建默认用户。将密码替换为安全密码。

    net user /add ggc_user password
    提示

    根据你的 Windows 配置,用户的密码可能会设置为在将来的某个日期过期。为确保您的 Greengrass 应用程序继续运行,请跟踪密码何时过期,并在密码过期之前对其进行更新。您也可以将用户的密码设置为永不过期。

    • 要检查用户及其密码何时过期,请运行以下命令。

      net user ggc_user | findstr /C:expires
    • 要将用户的密码设置为永不过期,请运行以下命令。

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • 如果你使用的是已弃用该wmic命令的 Windows 10 或更高版本,请运行以下 PowerShell 命令。

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. 从微软下载该PsExec实用程序并将其安装到设备上。

  6. 使用该 PsExec 实用程序将默认用户的用户名和密码存储在 LocalSystem 账户的凭据管理器实例中。将密码替换为您之前设置的用户密码。

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    如果PsExec License Agreement打开,Accept请选择同意许可并运行命令。

    注意

    在 Windows 设备上,该 LocalSystem 帐户运行 Greengrass 核心,您必须使用 PsExec 该实用程序在帐户中存储默认用户信息。 LocalSystem 使用凭据管理器应用程序将此信息存储在当前登录用户的 Windows 帐户中,而不是 LocalSystem 帐户中。

下载 AWS IoT Greengrass 核心软件

您可以从以下位置下载最新版本的 AWS IoT Greengrass Core 软件:

注意

您可以从以下位置下载特定版本的 AWS IoT Greengrass Core 软件。将版本替换为要下载的版本。

https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
下载 AWS IoT Greengrass 核心软件
  1. 在您的核心设备上,将 AWS IoT Greengrass Core 软件下载到名为的文件中greengrass-nucleus-latest.zip

    Linux or Unix
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    PowerShell
    iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip

    下载此软件即表示您同意Greengrass Core 软件许可协议

  2. (可选)验证 Greengrass nucleus 软件签名

    注意

    此功能在 Greengrass nucleus 版本 2.9.5 及更高版本中可用。

    1. 使用以下命令验证你的 Greengrass 核工件的签名:

      Linux or Unix
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      Windows Command Prompt (CMD)

      根据您安装的 JDK 版本,文件名可能有所不同。jdk17.0.6_10替换为您安装的 JDK 版本。

      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      PowerShell

      根据您安装的 JDK 版本,文件名可能有所不同。jdk17.0.6_10替换为您安装的 JDK 版本。

      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
    2. jarsigner调用会产生指示验证结果的输出。

      1. 如果 Greengrass nucleus zip 文件已签名,则输出将包含以下语句:

        jar verified.
      2. 如果 Greengrass nucleus zip 文件未签名,则输出将包含以下语句:

        jar is unsigned.
    3. 如果您提供了 Jarsigner -certs 选项以及-verify-verbose选项,则输出还包括详细的签名者证书信息。

  3. 将 AWS IoT Greengrass Core 软件解压缩到设备上的某个文件夹。GreengrassInstaller替换为要使用的文件夹。

    Linux or Unix
    unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
    PowerShell
    Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller rm greengrass-nucleus-latest.zip
  4. (可选)运行以下命令以查看 AWS IoT Greengrass Core 软件的版本。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
重要

如果您安装了 v2.4.0 之前的 Greengrass nucleus 版本,则在安装 Core 软件后请勿删除此文件夹。 AWS IoT Greengrass C AWS IoT Greengrass ore 软件使用此文件夹中的文件运行。

如果您下载的是最新版本的软件,则需要安装 v2.4.0 或更高版本,并且可以在安装 C AWS IoT Greengrass ore 软件后删除此文件夹。

下载 AWS IoT 舰队配置插件

您可以从以下位置下载最新版本的 AWS IoT 舰队配置插件:

注意

您可以从以下位置下载特定版本的 AWS IoT 舰队配置插件。将版本替换为要下载的版本。有关每个版本的舰队配置插件的更多信息,请参阅AWS IoT 舰队配置插件更新日志

https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar

舰队配置插件是开源的。要查看其源代码,请参阅上的AWS IoT 舰队配置插件 GitHub。

下载 AWS IoT 舰队配置插件
  • 在您的设备上,将 AWS IoT 队列配置插件下载到名为的文件中aws.greengrass.FleetProvisioningByClaim.jarGreengrassInstaller替换为要使用的文件夹。

    Linux or Unix
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
    Windows Command Prompt (CMD)
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
    PowerShell
    iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar

    下载此软件即表示您同意Greengrass Core 软件许可协议

安装 AWS IoT Greengrass 核心软件

使用指定以下操作的参数运行安装程序:

  • 从部分配置文件进行安装,该文件指定使用队列配置插件来配置 AWS 资源。 AWS IoT Greengrass Core 软件使用配置文件来指定设备上每个 Greengrass 组件的配置。安装程序根据您提供的部分配置文件和舰队配置插件创建的 AWS 资源创建完整的配置文件。

  • 指定使用ggc_user系统用户在核心设备上运行软件组件。在 Linux 设备上,此命令还指定使用ggc_group系统组,安装程序会为您创建系统用户和组。

  • 将 AWS IoT Greengrass Core 软件设置为启动时运行的系统服务。在 Linux 设备上,这需要 Systemd 初始化系统。

    重要

    在 Windows 核心设备上,必须将 AWS IoT Greengrass 核心软件设置为系统服务。

有关您可以指定的参数的更多信息,请参阅安装程序参数

注意

如果您在内存有限的设备 AWS IoT Greengrass 上运行,则可以控制 AWS IoT Greengrass 酷睿软件使用的内存量。要控制内存分配,您可以在 nucleus 组件的jvmOptions配置参数中设置 JVM 堆大小选项。有关更多信息,请参阅 使用 JVM 选项控制内存分配

安装 AWS IoT Greengrass 核心软件
  1. 检查 AWS IoT Greengrass 核心软件的版本。

    • GreengrassInstaller替换为包含该软件的文件夹的路径。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. 使用文本编辑器创建名为的配置文件config.yaml以提供给安装程序。

    例如,在基于 Linux 的系统上,你可以运行以下命令来使用 GNU nano 来创建文件。

    nano GreengrassInstaller/config.yaml

    将以下 YAML 内容复制到文件中。此部分配置文件指定了舰队配置插件的参数。有关您可以指定的选项的更多信息,请参阅配置AWS IoT舰队配置插件

    Linux or Unix
    --- services: aws.greengrass.Nucleus: version: "2.12.6" aws.greengrass.FleetProvisioningByClaim: configuration: rootPath: "/greengrass/v2" awsRegion: "us-west-2" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" provisioningTemplate: "GreengrassFleetProvisioningTemplate" claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt" claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" templateParameters: ThingName: "MyGreengrassCore" ThingGroupName: "MyGreengrassCoreGroup"
    Windows
    --- services: aws.greengrass.Nucleus: version: "2.12.6" aws.greengrass.FleetProvisioningByClaim: configuration: rootPath: "C:\\greengrass\\v2" awsRegion: "us-west-2" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" provisioningTemplate: "GreengrassFleetProvisioningTemplate" claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt" claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key" rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem" templateParameters: ThingName: "MyGreengrassCore" ThingGroupName: "MyGreengrassCoreGroup"

    然后执行以下操作:

    • 2.12.6 替换为 AWS IoT Greengrass 核心软件版本。

    • 用 Greengrass 根文件夹替换/greengrass/v2C:\greengrass\v2 的每个实例。

      注意

      在 Windows 设备上,必须将路径分隔符指定为双反斜杠 (\\),例如。C:\\greengrass\\v2

    • us-west-2 替 AWS 换为您创建配置模板和其他资源的区域。

    • iotDataEndpoint用您的 AWS IoT 数据端点替换。

    • 用您的iotCredentialEndpoint AWS IoT 凭证终端节点替换。

    • GreengrassCoreTokenExchangeRoleAlias替换为令牌交换角色别名的名称。

    • GreengrassFleetProvisioningTemplate替换为队列配置模板的名称。

    • claimCertificatePath替换为设备上申领证书的路径。

    • claimCertificatePrivateKeyPath替换为设备上申领证书私钥的路径。

    • 将模板参数 (templateParameters) 替换为用于配置设备的值。此示例指的是定义ThingNameThingGroupName参数的示例模板

    注意

    在此配置文件中,您可以自定义其他配置选项,例如要使用的端口和网络代理,如以下示例所示。有关更多信息,请参阅 Greengrass 核配置

    Linux or Unix
    --- services: aws.greengrass.Nucleus: version: "2.12.6" configuration: mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "http://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357" aws.greengrass.FleetProvisioningByClaim: configuration: rootPath: "/greengrass/v2" awsRegion: "us-west-2" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" provisioningTemplate: "GreengrassFleetProvisioningTemplate" claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt" claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" templateParameters: ThingName: "MyGreengrassCore" ThingGroupName: "MyGreengrassCoreGroup" mqttPort: 443 proxyUrl: "http://my-proxy-server:1100" proxyUserName: "Mary_Major" proxyPassword: "pass@word1357"
    Windows
    --- services: aws.greengrass.Nucleus: version: "2.12.6" configuration: mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "http://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357" aws.greengrass.FleetProvisioningByClaim: configuration: rootPath: "C:\\greengrass\\v2" awsRegion: "us-west-2" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" provisioningTemplate: "GreengrassFleetProvisioningTemplate" claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt" claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key" rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem" templateParameters: ThingName: "MyGreengrassCore" ThingGroupName: "MyGreengrassCoreGroup" mqttPort: 443 proxyUrl: "http://my-proxy-server:1100" proxyUserName: "Mary_Major" proxyPassword: "pass@word1357"

    要使用 HTTPS 代理,必须使用队列配置插件的 1.1.0 或更高版本。您还必须指定rootCaPath下方system,如以下示例所示。

    Linux or Unix
    --- system: rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" services: ...
    Windows
    --- system: rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem" services: ...
  3. 运行安装程序。指定--trusted-plugin提供队列配置插件,--init-config并指定提供配置文件。

    • /greengrass/v2替换为 Greengrass 根文件夹。

    • 将的GreengrassInstaller每个实例替换为解压安装程序所在的文件夹。

    Linux or Unix
    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    Windows Command Prompt (CMD)
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^ -jar ./GreengrassInstaller/lib/Greengrass.jar ^ --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^ --init-config ./GreengrassInstaller/config.yaml ^ --component-default-user ggc_user ^ --setup-system-service true
    PowerShell
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ` -jar ./GreengrassInstaller/lib/Greengrass.jar ` --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ` --init-config ./GreengrassInstaller/config.yaml ` --component-default-user ggc_user ` --setup-system-service true
    重要

    在 Windows 核心设备上,--setup-system-service true必须指定将 AWS IoT Greengrass 核心软件设置为系统服务。

    如果您指定--setup-system-service true,则安装程序在将软件设置为系统服务并运行时会打印Successfully set up Nucleus as a system service出来。否则,如果安装程序成功安装了软件,则不会输出任何消息。

    注意

    在没有deploy-dev-tools参数的情况下运行安装程序时,不能使用--provision true参数来部署本地开发工具。有关直接在您的设备上部署 Greengrass CLI 的信息,请参阅。Greengrass 命令行界面

  4. 通过查看根文件夹中的文件来验证安装。

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    如果安装成功,则根文件夹包含多个文件夹,例如configpackages、和logs

如果您将 AWS IoT Greengrass Core 软件作为系统服务安装,则安装程序会为您运行该软件。否则,必须手动运行该软件。有关更多信息,请参阅 运行AWS IoT Greengrass核心软件

有关如何配置和使用软件的更多信息 AWS IoT Greengrass,请参阅以下内容: