

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

# 設定 AWS IoT SiteWise 發佈者元件
<a name="configure-publisher-component"></a>

建立 AWS IoT SiteWise Edge 閘道並安裝軟體後，您可以設定發佈者元件，以便 SiteWise Edge 閘道可以將資料匯出至 AWS 雲端。使用發佈者元件來啟用其他功能或設定預設設定。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[AWS IoT SiteWise 發佈者](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-publisher-component.html)。

**注意**  
發佈者組態會根據您使用的閘道類型而有所不同。對於 Classic 串流、V2 閘道，請使用 `iotsitewise:publisher:2` 命名空間。對於啟用 MQTT 的 V3 閘道，請使用 `iotsitewise:publisher:3` 命名空間。

------
#### [ Console ]

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在導覽窗格中，選擇 **Edge 閘道**。

1. 選取您要為其設定發佈者的 SiteWise Edge 閘道。

1. 在**發佈者組態**區段中，選擇**編輯**

1. 針對**發佈順序**，選擇下列其中一項：
   + **先發佈最舊的資料** – SiteWise Edge 閘道預設會先將最舊的資料發佈至雲端。
   + **先發佈最新資料** – SiteWise Edge 閘道會先將最新資料發佈至雲端。

1. （選用） 如果您不希望 SiteWise Edge 閘道壓縮您的資料，請在**上傳資料時取消選取啟用壓縮**。

1. （選用） 如果您不想發佈舊資料，請選擇**排除過期的資料**並執行下列動作：

   1. 針對**截斷期間**，輸入值，然後選擇單位。截止期間必須介於 5 分鐘到 7 天之間。例如，如果截止期間為三天，則超過三天的資料不會發佈到雲端。

1. （選用） 若要設定有關在本機裝置上如何處理資料的自訂設定，請選擇**本機儲存設定**並執行下列動作：

   1. 針對**保留期間**，輸入數字並選擇單位。保留期間必須介於一分鐘到 30 天之間，且大於或等於輪換期間。例如，如果保留期間是 14 天，則 SiteWise Edge 閘道會在儲存 14 天後，刪除邊緣早於指定截止期間的任何資料。

   1. 針對**輪換期間**，輸入數字並選擇單位。輪換期間必須大於一分鐘，且等於或小於保留期間。例如，假設輪換期間為兩天，SiteWise Edge 閘道會批次處理，並將早於截止期間的資料儲存到單一檔案。對於透過 的自我託管閘道 AWS IoT Greengrass V2，SiteWise Edge 閘道每兩天會將一批資料傳輸到下列本機目錄：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。

   1. 針對**儲存容量**，輸入大於或等於 1 的值。如果儲存容量為 2 GB，則 SiteWise Edge 閘道會在本機儲存超過 2 GB 的資料時開始刪除資料。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html) API 來設定發佈者。

將 `capabilityNamespace` 參數設為 `iotsitewise:publisher:2`。

**Example ：Classic Stream、V2 閘道的發佈者組態**  
發佈者命名空間： `iotsitewise:publisher:2`  

```
{
    "SiteWisePublisherConfiguration": {                               
        "publishingOrder": "TIME_ORDER",
        "enableCompression": true,
        "dropPolicy": {
            "cutoffAge": "7d",
            "exportPolicy": {
                "retentionPeriod": "7d",
                "rotationPeriod": "6h",
                "exportSizeLimitGB": 10
            }
        }
    },
    "SiteWiseS3PublisherConfiguration": {
        "accessRoleArn": "arn:aws:iam:123456789012:role/roleName",
        "streamToS3ConfigMapping": [
            {
                "streamName": "S3_OPC-UA_Data_Collector",
                "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/dataCollector",
                "publishPolicy": {
                    "publishFrequency": "10m",
                    "localSizeLimitGB": 10
                },
                "siteWiseImportPolicy": {
                    "enableSiteWiseStorageImport": true,
                    "enableDeleteAfterImport": true
                }
            }
        ]
    }
}
```

發佈者提供下列您可以自訂的組態參數：

`SiteWisePublisherConfiguration`    
`publishingOrder`  
資料發佈至雲端的順序。此參數的值可以是下列其中一項：  
+ `TIME_ORDER` (**先發佈最舊的資料**) – 預設情況下，最早的資料會先發佈到雲端。
+ `RECENT_DATA` (**先發佈最新資料**) – 首先將最新資料發佈至雲端。  
`enableCompression`  
將此設為 `true`以在發佈之前壓縮資料。資料壓縮可減少頻寬使用量。  
`dropPolicy`  
（選用） 控制發佈至雲端的資料的政策。    
`cutoffAge`  
要以天、小時和分鐘為單位發佈的資料最長存留期。例如 `7d` 或 `1d7h16m`。不會傳送比您指定內容更舊的資料 AWS IoT SiteWise。  
早於截止期間的資料不會發佈至雲端。截止時間必須介於 5 分鐘到 7 天之間。  
當您指定截止存留期`d`時`m`，可以使用 `h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
`exportPolicy`  
（選用） 在邊緣管理資料儲存的政策。此政策適用於早於截止期限的資料。    
`retentionPeriod`  
您的 SiteWise Edge 閘道會在儲存指定保留期間之後，從本機儲存體刪除邊緣早於截止期間的任何資料。保留期間必須介於一分鐘到 30 天之間，且大於或等於輪換期間。  
您可以在指定保留期間`d`時使用 `m``h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
`rotationPeriod`  
將早於截止期間的資料批次儲存到單一檔案的時間間隔。SiteWise Edge 閘道會在每個輪換期間結束時，將一批資料傳輸到下列本機目錄：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。輪換期間必須大於一分鐘，且等於或小於保留期間。  
您可以在指定輪換期間`d`時使用 `m``h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
`exportSizeLimitGB`  
本機儲存的資料允許大小上限，以 GB 為單位。如果違反此配額，SiteWise Edge 閘道會開始刪除最早的資料，直到本機存放的資料大小等於或小於配額為止。此參數的值必須大於或等於 1。

`SiteWiseS3PublisherConfiguration`    
`accessRoleArn`  
授予管理您要發佈之 Amazon S3 儲存貯體 AWS IoT SiteWise 許可的存取角色。  
`streamToS3ConfigMapping`  
將串流映射至 Amazon S3 組態的組態陣列。    
`streamName`  
要從 Amazon S3 組態讀取和發佈的串流。  
`targetBucketArn`  
ARN 要發佈的儲存貯體。  
`publishPolicy`  
    
`publishFrequency`  
SiteWise Edge 閘道發佈至 Amazon S3 儲存貯體的頻率。  
`localSizeLimitGB`  
寫入本機磁碟的檔案大小上限。如果超過此閾值，發佈者會將所有緩衝資料發佈至其目的地。  
`siteWiseImportPolicy`  
    
`enableSiteWiseStorageImport`  
將此設定為 `true`，將資料從 Amazon S3 儲存貯體匯入至 AWS IoT SiteWise 儲存體。  
`enableDeleteAfterImport`  
將此設為 `true` 以在擷取至 AWS IoT SiteWise 儲存體後刪除 Amazon S3 儲存貯體中的檔案。

------