

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 Amazon Kinesis Video Streams Edge 代理程式部署至 AWS IoT Greengrass
<a name="gs-edge-gg"></a>

 

本節提供使用 Amazon Kinesis Video Streams 的完整指南 AWS IoT Greengrass。透過結合這些服務，您可以有效率地將影片從邊緣裝置串流到雲端，在 IoT、監控等領域啟用各種應用程式。

您可以找到下列詳細資訊：
+ 設定開發環境
+ 建立 Kinesis 影片串流
+ 建立和封裝 Lambda 函數
+ 設定 Kinesis Video Streams 核心裝置
+ 部署至核心裝置
+ 驗證您的串流

請依照下列步驟，將 Amazon Kinesis Video Streams Edge 代理程式部署至 AWS IoT Greengrass ，以從 IP 攝影機記錄和上傳媒體。

**Topics**
+ [建立 Ubuntu Amazon EC2 執行個體](gs-ubuntu.md)
+ [在裝置上設定 AWS IoT Greengrass V2 核心裝置](gs-setup-gg.md)
+ [為您的 IP 攝影機 RTSP URLs 建立 Amazon Kinesis Video Streams AWS Secrets Manager 和資源](gs-create-resources.md)
+ [將許可新增至字符交換服務 (TES) 角色](gs-add-permissions.md)
+ [在裝置上安裝 AWS IoT Greengrass Secret Manager 元件](gs-install-secrets-manager.md)
+ [在裝置上部署 Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 元件](gs-deploy-edge.md)
+ [在裝置上安裝 AWS IoT Greengrass 日誌管理員元件](gs-publish-edge.md)

# 建立 Ubuntu Amazon EC2 執行個體
<a name="gs-ubuntu"></a>

執行下列動作來建立 Ubuntu Amazon EC2 執行個體。

**建立 Ubuntu Amazon EC2 執行個體**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

   確認已選取適當的區域。

1. 選擇**啟動執行個體**。

   完成下列欄位：
   + **名稱** – 輸入執行個體的名稱。
   + **應用程式和作業系統映像 (Amazon Machine Image)** – 選取 **Ubuntu**。
   + **執行個體類型** – 選取 **t2.large**。
   + **金鑰對登入** – 建立您自己的金鑰對。
   + **網路設定** – 保留預設值。
   + **設定儲存** – 將磁碟區增加到 256 GiB。
   + **進階設定** – 保持預設值。

1. 在其中啟動執行個體和 SSH。

   請執行下列操作：

   1. 選取左側導覽中的**執行個體**，然後選取執行個體 ID。

   1. 選擇右上角的**連線**。

   1. 選擇 **SSH 用戶端**並遵循畫面上的指示。

   1. 開啟終端機並導覽至下載`.pem`的檔案 （可能在 中`~/Downloads`)。

   1. 第一次遵循這些程序時，您會收到「無法建立主機的真實性 (...)」訊息。輸入 **yes**。

1. 安裝系統程式庫，以在執行個體上建置 Amazon Kinesis Video Streams Edge Agent。

   ```
   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 核心核軟體。

**設定 AWS IoT Greengrass 核心裝置**

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

   確認已選取適當的區域。

1. 在左側導覽中，選取 **Greengrass 裝置**、**Core 裝置**。

1. 選擇**設定一個核心裝置**。

1. 完成畫面上的步驟。
   + **步驟 1：註冊 Greengrass 核心裝置**。輸入裝置的名稱。
   + **步驟 2：新增至物件群組以套用連續部署**。選取**無群組**。
   + **步驟 3：安裝 Greengrass Core 軟體**。選取 **Linux**。
     + **步驟 3.1：在裝置上安裝 Java**

       Java 已安裝為 的一部分[建立 Ubuntu Amazon EC2 執行個體](gs-ubuntu.md)。如果您尚未安裝 Java，請返回該步驟。
     + **步驟 3.2：將 AWS 登入資料複製到裝置**

       開啟 `bash/zsh`選項，並將匯出命令貼到 Amazon EC2 執行個體中。
     + **步驟 3.3：執行安裝程式**

       1. 複製並執行**下載安裝程式**，並在 Ubuntu Amazon EC2 執行個體中**執行安裝程式**命令。
**注意**  
**執行安裝程式**命令會根據您在上一個步驟中選擇的名稱自動更新。

       1. 記下已建立的字符交換服務 (TES) 角色。供稍後使用。
**注意**  
根據預設，建立的角色稱為 **GreengrassV2TokenExchangeRole**。

# 為您的 IP 攝影機 RTSP URLs 建立 Amazon Kinesis Video Streams AWS Secrets Manager 和資源
<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 URL 應以 h.264 格式串流影片。片段持續時間不得超過 中提到的限制[生產者開發套件配額](limits.md#producer-sdk-limits)。  
Amazon Kinesis Video Streams Edge Agent 僅支援視訊。
執行 `gst-discoverer-1.0 Your RtspUrl` 以確保可從您的裝置連線您的攝影機。

儲存您建立的所有串流和秘密ARNs。您需要這些項目才能進行下一個步驟。

# 將許可新增至字符交換服務 (TES) 角色
<a name="gs-add-permissions"></a>

將字符交換服務 (TES) 角色授予取得查看秘密許可的裝置。這是元件正常運作的必要條件 AWS Secrets Manager AWS IoT Greengrass 。

**將許可新增至 TES 角色**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 選擇左側導覽中的**角色**，並搜尋您在程序中稍早建立的 TES 角色。

1. 在**新增許可**下拉式清單中，選取**連接政策**。

1. 選擇**建立政策**。

1. 向下捲動並選取**編輯**。

1. 在政策編輯器中，選擇 **JSON** 並編輯政策。

   將政策取代為下列項目：
**注意**  
`arn:aws:kinesisvideo:*:*:stream/streamName2/*` 將 `arn:aws:kinesisvideo:*:*:stream/streamName1/*`和 取代為您在上一個步驟中建立的串流 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:*` 以包含您在 中建立之 MediaURI 秘密ARNs 取代 [為您的 IP 攝影機 RTSP URLs 建立 Amazon Kinesis Video Streams AWS Secrets Manager 和資源](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": [
                   "*"
               ]
           }
       ]
   }
   ```

------

# 在裝置上安裝 AWS IoT Greengrass Secret Manager 元件
<a name="gs-install-secrets-manager"></a>

Amazon Kinesis Video Streams Edge Agent 需要先在裝置上安裝 AWS IoT Greengrass Secret Manager 元件。

**安裝 Secret Manager 元件**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/) 開啟 AWS IoT Core 主控台。確認已選取適當的區域。

1. 在左側導覽中，選擇 **Greengrass 裝置**、**部署**。

   選擇與我們在 中建立的物件具有相同目標的部署[在裝置上設定 AWS IoT Greengrass V2 核心裝置](gs-setup-gg.md)。

1. 在右上角**的動作**下拉式清單中，選擇**修訂**。

   在出現的快顯視窗中，選擇**修訂部署**。

1. 完成下列各節：
   + **步驟 1：指定目標**。選擇**下一步**。
   + **步驟 2：選取元件**。
     + 確認已選取 **aws.greengrass.Cli** 元件。請勿解除安裝此元件。
     + 切換**僅顯示選取的元件**切換並搜尋 **aws.greengrass.SecretManager**。
     + 勾選 **aws.greengrass.SecretManager** 旁的方塊，然後選擇**下一步**。
   + **步驟 3：設定元件**。設定 AWS IoT Greengrass Secret Manager 元件，從 AWS IoT Greengrass 環境中下載秘密。

     選取 **aws.greengrass.SecretManager** 元件，然後選擇**設定元件**。

     在出現的畫面中，更新組態中的 AWS Secrets Manager ARNs **以合併**方塊。
**注意**  
`arn:aws:secretsmanager:*:*:secret:*` 將 取代為您在 中建立之秘密的 ARNs[為您的 IP 攝影機 RTSP URLs 建立 Amazon Kinesis Video Streams AWS Secrets Manager 和資源](gs-create-resources.md)。

     ```
     {
      "cloudSecrets": [
           {
             "arn": "arn:aws:secretsmanager:*:*:secret:*"
           },
           {
             "arn": "arn:aws:secretsmanager:*:*:secret:*"
           }
         ]
     }
     ```
**注意**  
`cloudSecrets` 是具有金鑰 的物件清單`arn`。如需詳細資訊，請參閱《 AWS IoT Greengrass Version 2 開發人員指南》中的 [Secret Manager 組態](https://docs.aws.amazon.com//greengrass/v2/developerguide/secret-manager-component.html#secret-manager-component-configuration)一節。

     完成後，請選取**確認**，然後選擇**下一步**。
   + **步驟 4：設定進階設定**。選取**下一步**。
   + **步驟 5：檢閱**。選取 **Deploy** (部署)。

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. **更新 AWS IoT Greengrass Secret Manager 元件上的秘密**
**重要**  
 AWS IoT Greengrass Secret Manager 元件只會在更新部署時擷取和快取秘密。

   若要更新 AWS IoT Greengrass Secret Manager 元件上的秘密，請遵循上述步驟 1–6，並執行下列變更。

   **步驟 3：設定元件**。設定 AWS IoT Greengrass Secret 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 Edge Agent AWS IoT Greengrass 元件
<a name="gs-deploy-edge"></a>

執行下列動作以在裝置上部署 Amazon Kinesis Video Streams Edge Agent AWS IoT Greengrass 元件：

**部署 元件**

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 檔案，其中包含 Amazon 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_tw/kinesisvideostreams/latest/dg/gs-deploy-edge.html)

   開啟`kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml`並修改執行指令碼，以新增任何上述環境變數。
**重要**  
請確定修改後的執行指令碼不包含任何**標籤**字元。 AWS IoT Greengrass 核心軟體將無法讀取配方。

1. 部署 Amazon Kinesis Video Streams Edge Agent 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. 針對 Amazon 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 Edge Agent 日誌，以使用 AWS IoT Greengrass 日誌管理員元件自動上傳至 CloudWatch。此為選用步驟。

**安裝 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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 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 管理主控台 並在 https：//[https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/) 開啟 AWS IoT Core 主控台。確認已選取適當的區域。

1. 在左側導覽中，選擇 **Greengrass 裝置**、**部署**。

   選擇與您在 中建立的物件具有相同目標的部署[在裝置上設定 AWS IoT Greengrass V2 核心裝置](gs-setup-gg.md)。

1. 在右上角，選取**動作**，然後選擇**修訂**。

   在出現的快顯視窗中，選擇**修訂部署**。

1. 完成下列各節：

   1. **步驟 1：指定目標。**選擇**下一步**。

   1. **步驟 2：選取元件。**

      1. 確認仍然選取 **aws.greengrass.Cli** 元件和 **aws.greengrass.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：檢閱。**選取 **Deploy** (部署)。

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 角色具有適當的許可。然後，重複本節。