

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

# AWS IoT Greengrass 用于在 Snowball Edge 上与亚马逊 EC2兼容的实例上运行预安装的软件
<a name="using-green-grass"></a>

AWS IoT Greengrass 是一款开源物联网 (IoT) 边缘运行时和云服务，可帮助您在设备上构建、部署和管理物联网应用程序。您可以使用 AWS IoT Greengrass 来构建软件，使您的设备能够根据其生成的数据进行本地操作、基于机器学习模型运行预测以及筛选和聚合设备数据。有关的详细信息 AWS IoT Greengrass，请参阅[什么是 AWS IoT Greengrass？](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) 在《*AWS IoT Greengrass Version 2 开发人员指南》*中。

通过在 Snowball Edge 设备 AWS IoT Greengrass 上使用，可以让设备在离数据生成位置更近的地方收集和分析数据，对本地事件做出自主反应，并与本地网络上的其他设备进行安全通信。

## 在 Snowball EC2 Edge AWS IoT Greengrass 上设置与亚马逊兼容的实例
<a name="setup-ec2-gg"></a>

**注意**  
要 AWS IoT Greengrass Version 2 在 Snowball Edge 设备上安装，请确保您的设备已连接到互联网。安装完成后，无需互联网即可使用 Snowball Edge 设备。 AWS IoT Greengrass

**要为设置与之 EC2兼容的实例 AWS IoT Greengrass V2**

1. 使用公有 IP 地址和 SSH 密钥启动 AWS IoT Greengrass 经过验证的 AMI：

   1. 使用 AWS CLI:[运行实例](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)。

   1. 使用 AWS OpsHub：[启动与 Amazon EC2 兼容的实例](https://docs.aws.amazon.com/snowball/latest/developer-guide/manage-ec2.html#launch-instance)。
**注意**  
记下与实例关联的公有 IP 地址和 SSH 密钥名称。

1. 使用 SSH 连接到 EC2兼容的实例。为此，请在连接到您设备的计算机上运行以下命令。{{ssh-key}}替换为您用于启动 EC2兼容实例的密钥。{{public-ip-address}}替换为 EC2兼容实例的公有 IP 地址。

   ```
   ssh -i {{ssh-key}} ec2-user@ {{public-ip-address}}
   ```
**重要**  
如果你的计算机使用的是早期版本的 Microsoft Windows，那么你可能没有 SSH 命令，或者你可能有 SSH 但无法连接到 EC2兼容你的实例。要连接到 EC2兼容您的实例，您可以安装和配置 PuTTY，这是一款免费的开源 SSH 客户端。您必须将 SSH 密钥从`.pem`格式转换为 PuTTY 格式并连接到您的 EC2实例。有关如何从 `.pem` PuTTY 格式转换为 PuTTY 格式的说明，请参阅《亚马逊 EC2 用户指南》TTYgen中的 “[使用 Pu 转换私钥](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html#putty-private-key)”。

### AWS IoT Greengrass 在 Snowball EC2 Edge 上兼容的实例上安装
<a name="install-green-grass"></a>

接下来，您将 EC2兼容实例设置为可用于本地开发的 AWS IoT Greengrass 核心设备。

**要安装 AWS IoT Greengrass**

1. 使用以下命令安装的必备软件 AWS IoT Greengrass。此命令安装 AWS Command Line Interface (AWS CLI) v2、Python 3 和 Java 8。

   ```
   curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && sudo ./aws/install && sudo yum -y install python3 java-1.8.0-openjdk
   ```

1. 授予 root 用户运行 AWS IoT Greengrass 软件的权限，并在 sudoers 配置文件`root ALL=(ALL:ALL) ALL`中`root ALL=(ALL) ALL`将 root 权限从修改为。

   ```
   sudo sed -in 's/root\tALL=(ALL)/root\tALL=(ALL:ALL)/' /etc/sudoers
   ```

1. 使用以下命令下载 AWS IoT Greengrass 核心软件。

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip && unzip greengrass-nucleus-latest.zip -d GreengrassCore && rm greengrass-nucleus-latest.zip
   ```

1. 使用以下命令提供凭据以允许您安装 AWS IoT Greengrass Core 软件。将示例值替换为您的凭证。

   ```
   export AWS_ACCESS_KEY_ID={{AKIAIOSFODNN7EXAMPLE}} 
   export AWS_SECRET_ACCESS_KEY={{wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY}}
   ```
**注意**  
这些是来自该 AWS 地区的 IAM 用户的证书，而不是 Snowball Edge 设备的证书。

1. 使用以下命令安装 AWS IoT Greengrass Core 软件。该命令创建核心软件运行所需的 AWS 资源，并将核心软件设置为在 AMI 启动时运行的系统服务。

   在命令中替换以下参数：
   + `region`：要在其中查找或创建资源 AWS 的地区。
   + `MyGreengrassCore`: AWS IoT Greengrass 核心 AWS IoT 设备的名称。
   + `MyGreengrassCoreGroup`: AWS IoT Greengrass 核心设备 AWS IoT 的事物组的名称。

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
       -jar ./GreengrassInstaller/lib/Greengrass.jar \
       --aws-region {{region}} \
       --thing-name {{MyGreengrassCore}} \
       --thing-group-name {{MyGreengrassCoreGroup}} \
       --thing-policy-name GreengrassV2IoTThingPolicy \
       --tes-role-name GreengrassV2TokenExchangeRole \
       --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
       --component-default-user ggc_user:ggc_group \
       --provision true \
       --setup-system-service true \
       --deploy-dev-tools true
   ```
**注意**  
此命令适用于运行亚马逊 EC2 Linux 2 AMI 的亚马逊兼容实例。对于 Windows AMI，请参阅[安装 AWS IoT Greengrass 核心软件](https://docs.aws.amazon.com/greengrass/v2/developerguide/install-greengrass-core-v2.html)。

完成后，你将在你的 Snowball Edge 设备上运行一个内 AWS IoT Greengrass 核供本地使用。