

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

# 将 Amazon Kinesis Video Streams 边缘代理部署到 AWS IoT Greengrass
<a name="gs-edge-gg"></a>

 

本节提供了使用亚马逊 Kinesis Video Stream AWS IoT Greengrass s 的综合指南。通过组合这些服务，您可以高效地将视频从边缘设备流式传输到云端，从而在物联网、监控等领域实现各种应用。

您将找到有关以下内容的详细信息：
+ 设置开发环境
+ 创建 Kinesis 视频流
+ 创建和打包 Lambda 函数
+ 配置 Kinesis Video Streams 核心设备
+ 部署到核心设备
+ 验证您的直播

按照以下步骤部署 Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 来录制和上传来自 IP 摄像机的媒体。

**Topics**
+ [创建 Ubuntu 亚马逊 EC2 实例](gs-ubuntu.md)
+ [在设备上设置 AWS IoT Greengrass V2 核心设备](gs-setup-gg.md)
+ [为你的 IP 摄像机 RTSP 创建 Amazon Kinesis Video Streams AWS Secrets Manager 和资源 URLs](gs-create-resources.md)
+ [为令牌交换服务 (TES) 角色添加权限](gs-add-permissions.md)
+ [在设备上安装 S AWS IoT Greengrass ecret Manager 组件](gs-install-secrets-manager.md)
+ [在设备上部署 Amazon Kinesis Video Streams 边缘 AWS IoT Greengrass 代理组件](gs-deploy-edge.md)
+ [在设备上安装 AWS IoT Greengrass 日志管理器组件](gs-publish-edge.md)

# 创建 Ubuntu 亚马逊 EC2 实例
<a name="gs-ubuntu"></a>

执行以下操作创建 Ubuntu Amazon EC2 实例。

**创建 Ubuntu 亚马逊 EC2 实例**

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

   确认选择了相应的区域。

1. 选择**启动实例**。

   填写以下字段：
   + **名称**-键入实例的名称。
   + **应用程序和操作系统映像（Amazon 计算机映像）**-选择 **Ubuntu**。
   + **实例类型**-选择 **t2.large**。
   + **密钥对登录**-创建自己的密钥对。
   + **网络设置**-保留默认设置。
   + **配置存储**-将音量增加到 256 GiB。
   + **高级设置**-保留默认设置。

1. 启动实例并通过 SSH 进入该实例。

   执行以下操作：

   1. 在左侧导航栏中选择**实例**，然后选择实例 ID。

   1. 选择右上角的 **Connect**。

   1. 选择 **SSH 客户端**，然后按照屏幕上的说明进行操作。

   1. 打开终端并导航到下载的`.pem`文件（可能在`~/Downloads`）。

   1. 首次执行这些步骤时，您将收到一条消息：“无法确定主机 (...) 的真实性。” 键入 **“是”**。

1. 安装系统库以在实例上构建 Amazon Kinesis Video Streams 边缘代理。

   ```
   wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add - 
   sudo add-apt-repository 'deb https://apt.corretto.aws stable main'
   
   sudo apt-get update
   
   sudo apt-get install -y gcc libssl-dev libcurl4-openssl-dev liblog4cplus-dev \
   libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
   gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad \
   gstreamer1.0-plugins-good gstreamer1.0-tools \
   unzip java-11-amazon-corretto-jdk maven
   ```
**重要**  
如果您看到屏幕提示需要重新启动某些服务，请按 Enter 选择**确定**。

   有关更多信息，请参阅 [https://docs.aws.amazon.com//corretto/latest/corretto-11-ug/generic-linux-install.html](https://docs.aws.amazon.com//corretto/latest/corretto-11-ug/generic-linux-install.html)

# 在设备上设置 AWS IoT Greengrass V2 核心设备
<a name="gs-setup-gg"></a>

按照以下步骤在 Amazon EC2 实例上安装 AWS IoT Greengrass 核心 nucleus 软件。

**设置 AWS IoT Greengrass 核心设备**

1. 登录 AWS 管理控制台，[https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/)。

   确认选择了相应的区域。

1. **在左侧导航栏中，选择 **Greengrass 设备**、核心设备。**

1. 选择 “**设置一台核心设备**”。

1. 完成屏幕上的步骤。
   + **第 1 步：注册 Greengrass 核心设备**。键入设备的名称。
   + **步骤 2：添加到事物组以应用持续部署**。选择 “**无群组**”。
   + **第 3 步：安装 Greengrass Core** 软件。选择 **Linux**。
     + **步骤 3.1：在设备上安装 Java**

       Java 是作为其中的一部分安装的[创建 Ubuntu 亚马逊 EC2 实例](gs-ubuntu.md)。如果您尚未安装 Java，请返回该步骤。
     + **步骤 3.2：将 AWS 凭据复制到设备上**

       打开该`bash/zsh`选项并将导出命令粘贴到 Amazon EC2 实例中。
     + **步骤 3.3：运行安装程序**

       1. 在 Ubuntu Amazon EC2 实例中复制并**运行**下载**安装程序并运行安装程序**命令。
**注意**  
**运行安装程序**命令将根据您在上一步中选择的名称自动更新。

       1. 记下创建的令牌交换服务 (TES) 角色。稍后您将需要用到它。
**注意**  
默认情况下，创建的角色名为 **GreenGrassV2 TokenExchangeRole**。

# 为你的 IP 摄像机 RTSP 创建 Amazon Kinesis Video Streams AWS Secrets Manager 和资源 URLs
<a name="gs-create-resources"></a>

按照以下步骤创建中所需的直播和密钥 AWS Secrets Manager。请先执行此步骤，因为您需要在 ARNs 策略中创建的资源。

## 创建 Amazon Kinesis Video Streams
<a name="gs-create-kvs"></a>

使用 AWS 管理控制台 AWS CLI、或 API 创建 Amazon Kinesis Video Streams。

在中 AWS 管理控制台，打开 [Amazon Kinesis Video Streams](https://console.aws.amazon.com/kinesisvideo/home/) 控制台。在左侧导航栏中选择 “**视频流**”。

有关更多信息，请参阅 [创建 Amazon Kinesis 视频流](gs-createstream.md)。

## 在中创建密钥 AWS Secrets Manager
<a name="gs-create-secrets"></a>

在中 AWS 管理控制台，打开[AWS Secrets Manager 控制台](https://console.aws.amazon.com/secretsmanager/landing)。在左侧导航栏中选择 “**密钥**”。

确认选择了相应的区域。

1. 选择**存储新密钥**。

   1. **第 1 步：选择密钥类型**
      + 选择**其他密钥类型**。
      + 在 “**键/值对**” 部分中，添加键值对。

        **键**：`MediaURI`
**注意**  
密钥必须是`MediaURI`。这是区分大小写的。如果输入不正确，则应用程序将无法运行。

        **值**：`Your MediaURI`。  
**Example**  

        **示例：**`rtsp://<YourCameraIPAddress>:<YourCameraRTSPPort>/YourCameraMediaURI`。

   1. **步骤 2：配置密钥**。给这个秘密起个名字。随心所欲地给它起个名字。

   1. **步骤 3：配置轮换-可选**。选择**下一步**。

   1. **第 4 步：查看**。选择**存储**。

1. 如果您的密钥没有立即显示，请选择刷新按钮。

   选择您的密钥的名称。记下**秘密 ARN**。

1. 对要从中进行直播的每个 MediaURI 重复此过程。

**注意**  
该 AWS 网络封锁了一些公共的 RTSP 来源。您无法从 Amazon EC2 实例中访问它们，或者如果您在连接到 VPN 时处于非托管状态。  
您的摄像机 RTSP 网址应以 h.264 格式流式传输视频。片段持续时间不得超过中提及的限制[制作人 SDK 配额](limits.md#producer-sdk-limits)。  
亚马逊 Kinesis Video Streams Kinesis Streams 边缘代理仅支持视频。
运行`gst-discoverer-1.0 Your RtspUrl`以确保您的设备可以访问您的摄像头。

保存您创建的所有直播和密钥。 ARNs 下一步需要这些。

# 为令牌交换服务 (TES) 角色添加权限
<a name="gs-add-permissions"></a>

向拥有查看密钥权限的设备授予令牌交换服务 (TES) 角色。这是 AWS Secrets Manager AWS IoT Greengrass 组件正常工作所必需的。

**为 TES 角色添加权限**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧导航栏中选择 “**角色**”，然后搜索您在流程前面创建的 TES 角色。

1. 在**添加权限**下拉列表中，选择**附加策略**。

1. 选择**创建策略**。

1. 向下滚动并选择 “**编辑”**。

1. 在策略编辑器中，选择 **JSON** 并编辑策略。

   将该策略替换为以下内容：
**注意**  
将`arn:aws:kinesisvideo:*:*:stream/streamName1/*`和`arn:aws:kinesisvideo:*:*:stream/streamName2/*`替换 ARNs 为您在上一步中创建的直播。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:ListStreams"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia",
                   "kinesisvideo:TagStream",
                   "kinesisvideo:GetDataEndpoint"
               ],
               "Resource": [
                   "arn:aws:kinesisvideo:*:*:stream/streamName1/*",
                   "arn:aws:kinesisvideo:*:*:stream/streamName2/*"
               ]
           }
       ]
   }
   ```

------

1. 在 **Add tags**（添加标签）页面上，选择 **Next: Review**（下一步：审核）。

1. 命名您的策略，然后选择**创建策略**。

   策略名称的一个示例是**KvsEdgeAccessPolicy**。

1. 关闭选项卡，然后返回到您向 TES 角色附加策略的选项卡。

   选择刷新按钮，然后搜索新创建的策略。

   选中该复选框并选择**附加策略**。

   在下一个屏幕上，你会看到一条注释，上面写**着策略已成功关联到角色。**

1. 创建并附加另一个策略，这次是针对您的密钥。

   将该策略替换为以下内容：
**注意**  
`arn:aws:secretsmanager:*:*:secret:*`替换为 ARNs包含您在中创建的 MediaURI 密钥的。[为你的 IP 摄像机 RTSP 创建 Amazon Kinesis Video Streams AWS Secrets Manager 和资源 URLs](gs-create-resources.md)

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": [
                   "arn:aws:secretsmanager:*:*:secret:*",
                   "arn:aws:secretsmanager:*:*:secret:*"
               ]
           }
       ]
   }
   ```

------

1. 创建并附加另一个策略，这次是针对 Amazon CloudWatch 指标。将该策略替换为以下内容：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "cloudwatch:PutMetricData"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

# 在设备上安装 S AWS IoT Greengrass ecret Manager 组件
<a name="gs-install-secrets-manager"></a>

亚马逊 Kinesis Video Streams Edge Agent 要求 AWS IoT Greengrass 先在设备上安装 Secret Manager 组件。

**安装 Secret Manager 组件**

1. 登录 AWS 管理控制台 并打开 AWS IoT Core 控制台，网址为[https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/)。确认选择了相应的区域。

1. **在左侧导航栏中，选择 **Greengrass** 设备，然后选择 “部署”。**

   选择与我们在中创建的目标相同的部署[在设备上设置 AWS IoT Greengrass V2 核心设备](gs-setup-gg.md)。

1. 在右上角的 “**操作**” 下拉列表中，选择 “**修订**”。

   在出现的弹出窗口中，选择**修订部署**。

1. 完成以下各节：
   + **步骤 1：指定目标**。选择**下一步**。
   + **步骤 2：选择组件**。
     + 确认已选择 **aws.greenGrass.cli 组件**。请勿卸载此组件。
     + 切换 “**仅显示选定的组件”** 开关并搜索 **aws.greengrass。 SecretManager**。
     + 选中 **aws.greengrass 旁边的复选框。 SecretManager**，然后选择 “**下一步**”。
   + **步骤 3：配置组件**。将 S AWS IoT Greengrass ecret Manager 组件配置为从 AWS IoT Greengrass 环境中下载密钥。

     选择 **aws.greengrass。 SecretManager**组件，然后选择**配置组件**。

     在出现的屏幕中，更新 “**要合并的配置**” 框 AWS Secrets Manager ARNs 中的。
**注意**  
`arn:aws:secretsmanager:*:*:secret:*`替换为您在中创建的密钥[为你的 IP 摄像机 RTSP 创建 Amazon Kinesis Video Streams AWS Secrets Manager 和资源 URLs](gs-create-resources.md)。 ARNs 

     ```
     {
      "cloudSecrets": [
           {
             "arn": "arn:aws:secretsmanager:*:*:secret:*"
           },
           {
             "arn": "arn:aws:secretsmanager:*:*:secret:*"
           }
         ]
     }
     ```
**注意**  
`cloudSecrets`是带有密钥的对象的列表`arn`。有关更多信息，请参阅《 AWS IoT Greengrass Version 2 开发者指南》中的 “[密钥管理器配置](https://docs.aws.amazon.com//greengrass/v2/developerguide/secret-manager-component.html#secret-manager-component-configuration)” 部分。

     完成后，选择 “**确认**”，然后选择 “**下一步**”。
   + **步骤 4：配置高级设置**。选择**下一步**。
   + **第 5 步：查看**。选择**部署**。

1. 确认 AWS Secrets Manager 组件和权限已正确安装。

   在 Ubuntu Amazon EC2 实例上，键入`sudo /greengrass/v2/bin/greengrass-cli component details --name aws.greengrass.SecretManager`以验证该组件是否已收到更新的配置。

1. 检查 AWS IoT Greengrass 核心日志。

   键入。`sudo less /greengrass/v2/logs/greengrass.log`

   查看是否存在部署错误。

   如果出现错误，请修改部署以删除该`aws.greengrass.SecretManager`组件。

   键入`sudo service greengrass restart`以重新启动 AWS IoT Greengrass 核心服务。

   如果部署错误与缺少权限有关，请查看该[为令牌交换服务 (TES) 角色添加权限](gs-add-permissions.md)部分以确保 TES 角色具有适当的权限。然后，重复本节。

1. **更新 Sec AWS IoT Greengrass ret Manager 组件上的密钥**
**重要**  
只有在 AWS IoT Greengrass 更新部署时，Secret Manager 组件才会获取和缓存机密。

   要更新 Sec AWS IoT Greengrass ret Manager 组件上的密钥，请按照前面的步骤 1-6 进行操作，并进行以下更改。

   **步骤 3：配置组件**。将 S AWS IoT Greengrass ecret Manager 组件配置为从 AWS IoT Greengrass 环境中下载密钥。

   选择 **aws.greengrass。 SecretManager**组件，然后选择**配置组件**。

   在出现的屏幕`[""]`中，粘贴 “**重置路径**” 框，然后 AWS Secrets Manager ARNs 在 “**要合并的配置**” 框中更新。

   有关更多信息，请参阅[重置更新](https://docs.aws.amazon.com//greengrass/v2/developerguide/update-component-configurations.html#reset-configuration-update)。

# 在设备上部署 Amazon Kinesis Video Streams 边缘 AWS IoT Greengrass 代理组件
<a name="gs-deploy-edge"></a>

执行以下操作在设备上部署 Amazon Kinesis Video Streams Edge Ag AWS IoT Greengrass ent 组件：

**部署组件**

1. 使用提供的链接下载`tar`文件。

   如果你填写了 Amazon Kinesis Video Streams Edge Agent 意向表，请查看电子邮件中的下载链接。如果您尚未填写表格，请[在此处](https://pages.awscloud.com/GLOBAL-launch-DL-KVS-Edge-2023-learn.html)填写。

1. 验证校验和。

1. 提取设备中的二进制文件和 jar。

   类型：`tar -xvf kvs-edge-agent.tar.gz`。

   解压缩后，您的文件夹结构将如下所示：

   ```
   kvs-edge-agent/LICENSE
   kvs-edge-agent/THIRD-PARTY-LICENSES
   kvs-edge-agent/pom.xml
   kvs-edge-agent/KvsEdgeComponent
   kvs-edge-agent/KvsEdgeComponent/recipes
   kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml
   kvs-edge-agent/KvsEdgeComponent/artifacts
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/edge_log_config                   
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/kvs-edge-agent.jar
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/libgstkvssink.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/libIngestorPipelineJNI.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/libcproducer.so
   kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/libKinesisVideoProducer.so
   ```
**注意**  
发行版文件夹名称的设置应反映最新的二进制版本号。例如，1.0.0 版本的文件夹名称将设置为 1.0.0。

1. 构建依赖关系 jar。
**注意**  
 kvs-edge-agent.tar.gz 中包含的 jar 没有依赖关系。使用以下步骤来构建这些库。

   导航到包含`kvs-edge-agent`的文件夹`pom.xml`。

   键入。`mvn clean package`

   这将生成一个 jar 文件，其中包含亚马逊 Kinesis Video Streams Edge Agent 所需的`kvs-edge-agent/target/libs.jar`依赖项。

1. 将 libs.jar 放入包含组件构件的文件夹中。

   键入。`mv ./target/libs.jar ./KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/`

1. **可选。**配置属性。Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 在模式下接受以下环境变量：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/kinesisvideostreams/latest/dg/gs-deploy-edge.html)

   打开`kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml`并修改运行脚本以添加上述任何环境变量。
**重要**  
确保修改后的运行脚本不包含任何制**表**符。 AWS IoT Greengrass 核心软件将无法读取食谱。

1. 部署 Amazon Kinesis Video Streams 边缘 AWS IoT Greengrass 代理组件。

   类型：

   ```
   sudo /greengrass/v2/bin/greengrass-cli deployment create \
     --recipeDir <download location>/kvs-edge-agent/KvsEdgeComponent/recipes/ \
     --artifactDir <download location>/kvs-edge-agent/KvsEdgeComponent/artifacts/ \
     --merge "aws.kinesisvideo.KvsEdgeComponent=EdgeAgentVersion"
   ```

   有关更多信息，请参阅《*AWS IoT Greengrass Version 2 开发人员指南》*中的以下章节：
   + [AWS IoT Greengrass CLI 命令](https://docs.aws.amazon.com//greengrass/v2/developerguide/gg-cli-reference.html)
   + [将 AWS IoT Greengrass 组件部署到设备](https://docs.aws.amazon.com//greengrass/v2/developerguide/manage-deployments.html)

1. 使用向应用程序发送配置 AWS CLI。

   1. 创建一个新文件，`example-edge-configuration.json`。

      将以下代码粘贴到该文件中。这是一个配置示例，每天从上午 9:00:00 到下午 4:59:59（根据设备上的系统时间）进行记录。 AWS IoT 它还会在每天晚上 7:00:00 至晚上 9:59:59 上传录制的媒体。

      有关更多信息，请参阅 [StartEdgeConfigurationUpdate](API_StartEdgeConfigurationUpdate.md)。

      ```
      {
          "StreamARN": "arn:aws:kinesisvideo:your-region:your-account-id:stream/your-stream/0123456789012",
          "EdgeConfig": {
              "HubDeviceArn": "arn:aws:iot:your-region:your-account-id:thing/kvs-edge-agent-demo",
              "RecorderConfig": {
                  "MediaSourceConfig": {
                      "MediaUriSecretArn": "arn:aws:secretsmanager:your-region:your-account-id:secret:your-secret-dRbHJQ",
                      "MediaUriType": "RTSP_URI"
                  },
                  "ScheduleConfig": {
                      "ScheduleExpression": "0 0 9,10,11,12,13,14,15,16 ? * * *",
                      "DurationInSeconds": 3599
                  }
              },
              "UploaderConfig": {
                  "ScheduleConfig": {
                      "ScheduleExpression": "0 0 19,20,21 ? * * *",
                      "DurationInSeconds": 3599
                  }
              },
              "DeletionConfig": {
                  "EdgeRetentionInHours": 15,
                  "LocalSizeConfig": {
                    "MaxLocalMediaSizeInMB": 2800,
                    "StrategyOnFullSize": "DELETE_OLDEST_MEDIA"
                  },
                  "DeleteAfterUpload": true
              }
          }
      }
      ```

   1. 在中键入以下内容将文件发送 AWS CLI 到 Amazon Kinesis Video Streams Edge Agent：

      ```
      aws kinesisvideo start-edge-configuration-update --cli-input-json "file://example-edge-configuration.json"
      ```

1. 对亚马逊 Kinesis Video Streams Edge Agent 的每个直播重复上一个步骤。

# 在设备上安装 AWS IoT Greengrass 日志管理器组件
<a name="gs-publish-edge"></a>

**注意**  
注意配[CloudWatch额](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)。

按照以下步骤将 Amazon Kinesis Video Streams Video Streams Edge Agent 日志配置 CloudWatch 为使用日志管理器 AWS IoT Greengrass 组件自动上传到。此为可选步骤。

**安装 AWS IoT Greengrass 日志管理器组件**

1. 确认 AWS IoT Greengrass 设备角色具有[相应的权限](https://docs.aws.amazon.com//greengrass/v2/developerguide/log-manager-component.html#log-manager-component-requirements)。

   1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 在左侧导航栏中单击 “**角色**”。

   1. 选择在中创建的 TES 角色的名称[在设备上设置 AWS IoT Greengrass V2 核心设备](gs-setup-gg.md)。如有必要，请使用搜索栏。

   1. 选择 `GreengrassV2TokenExchangeRoleAccess` 策略。

   1. 选择 JSON 选项卡并验证策略是否如下所示：

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "logs:CreateLogGroup",
                      "logs:CreateLogStream",
                      "logs:PutLogEvents",
                      "logs:DescribeLogStreams",
                      "s3:GetBucketLocation"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. 如果该`GreengrassV2TokenExchangeRoleAccess`策略不存在，或者缺少某些必需的权限，请使用这些权限创建一个新的 IAM 策略，并将其附加到中创建的 TES 角色[在设备上设置 AWS IoT Greengrass V2 核心设备](gs-setup-gg.md)。

1. 登录 AWS 管理控制台 并打开 AWS IoT Core 控制台，网址为[https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/)。确认选择了相应的区域。

1. **在左侧导航栏中，选择 **Greengrass** 设备，然后选择 “部署”。**

   选择与您在中创建的目标相同的部署[在设备上设置 AWS IoT Greengrass V2 核心设备](gs-setup-gg.md)。

1. 在右上角选择**操作**，然后选择**修订**。

   在出现的弹出窗口中，选择**修订部署**。

1. 完成以下各节：

   1. **步骤 1：指定目标。**选择**下一步**。

   1. **步骤 2：选择组件。**

      1. **验证 aws.greenGrass.cli 组件和 **aws.greengras** s。 SecretManager**组件仍处于选中状态。
**重要**  
不要卸载这些组件。

      1. 切换 “**仅显示选定的组件”** 开关并搜索 **aws.greengrass。 LogManager**。

      1. 选中 **aws.greengrass 旁边的复选框。 LogManager**，然后选择 “**下一步**”。

   1. **步骤 3：配置组件。**配置 AWS IoT Greengrass 日志管理器组件以上传由 Amazon Kinesis Video Streams Edge Agent 生成的日志。

      选择 **aws.greengrass。 LogManager**组件，然后选择**配置组件**。

      在出现的屏幕中，将以下日志管理器配置粘贴**到要合并的配置**框中。

      ```
      {
          "logsUploaderConfiguration": {
              "componentLogsConfigurationMap": {
                  "aws.kinesisvideo.KvsEdgeComponent/java_kvs.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "java_kvs.log\\w*"
                  },
                  "aws.kinesisvideo.KvsEdgeComponent/cpp_kvs_edge.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "cpp_kvs_edge.log\\w*"
                  },
                  "aws.kinesisvideo.KvsEdgeComponent/cpp_kvssink.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "cpp_kvssink.log\\w*"
                  },
                  "aws.kinesisvideo.KvsEdgeComponent/cpp_kvs_streams.log": {
                      "diskSpaceLimit": "100",
                      "diskSpaceLimitUnit": "MB",
                      "logFileDirectoryPath": "/greengrass/v2/work/aws.kinesisvideo.KvsEdgeComponent/log",
                      "logFileRegex": "cpp_kvs_streams.log\\w*"
                  }
              }
          },
          "periodicUploadIntervalSec": "1"
      }
      ```
**重要**  
上述配置`logFileDirectoryPath`中的假设使用了默认的日志输出位置。
**注意**  
有关日志管理器配置的每个参数的更多信息，请参阅《 AWS IoT Greengrass Version 2 开发人员指南》的 “[日志管理器](https://docs.aws.amazon.com//greengrass/v2/developerguide/log-manager-component.html#log-manager-component-configuration)” 部分。

      完成后，选择 “**确认**”，然后选择 “**下一步**”。

   1. **步骤 4：配置高级设置。**选择**下一步**。

   1. **第 5 步：查看。**选择**部署**。

1. 确认 AWS 日志管理器组件和权限已正确安装。

1. 在 Ubuntu Amazon EC2 实例上，键入`sudo /greengrass/v2/bin/greengrass-cli component details --name aws.greengrass.LogManager`以验证组件已收到更新的配置。

1. 检查 AWS IoT Greengrass 核心日志。

   键入。`sudo less /greengrass/v2/logs/greengrass.log`

   查看是否存在部署错误。

   如果出现错误，请修改部署以删除该`aws.greengrass.LogManager`组件。

   键入`sudo service greengrass restart`以重新启动 AWS IoT Greengrass 核心服务。

   如果部署错误与缺少权限有关，请查看[为令牌交换服务 (TES) 角色添加权限](gs-add-permissions.md)以确保 TES 角色具有适当的权限。然后，重复本节。