在 SiteWise Edge 中設定 OPC UA 來源 - AWS IoT SiteWise

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

在 SiteWise Edge 中設定 OPC UA 來源

您可以使用 AWS IoT SiteWise 主控台或 SiteWise Edge 閘道功能來定義 OPC UA 來源,並將其新增至 SiteWise Edge 閘道,以代表本機 OPC UA 伺服器。

設定 OPC UA 來源 (主控台)

您可以使用 主控台,透過下列程序設定 OPC UA 來源。

注意

警告:重複TQVs 可能會導致重複充電。

使用 AWS IoT SiteWise 主控台設定 OPC UA 來源
  1. 導覽至 AWS IoT SiteWise 主控台

  2. 在左側導覽中,選擇 Edge 區段中的 Edge 閘道

  3. 選取 SiteWise Edge 閘道以新增 OPC UA 來源。

  4. 選擇新增資料來源

  5. 輸入來源的名稱。

  6. 輸入資料來源伺服器的 Local endpoint (本機端點)。端點可以是 IP 地址或主機名稱。您也可以將連接埠號碼新增至本機端點。例如,您的本機端點可能如下所示: opc.tcp://203.0.113.0:49320

  7. (選用) 對於用於選取的節點 ID,請新增節點篩選條件,以限制要擷取至 AWS 雲端的資料串流。根據預設,SiteWise Edge 閘道會使用伺服器的根節點來擷取所有資料串流。您可以使用節點篩選條件來減少 SiteWise Edge 閘道的啟動時間和 CPU 使用量,方法是只包含建立模型的資料路徑 AWS IoT SiteWise。根據預設,SiteWise Edge 閘道會上傳所有 OPC UA 路徑,但以 開頭的路徑除外/Server/。若要定義 OPC UA 節點篩選條件,您可以使用節點路徑和 *** 萬用字元。如需詳細資訊,請參閱在 SiteWise Edge 中使用 OPC UA 節點篩選條件

  8. 目的地會因啟用 MQTT 的 V3 閘道和 Classic 串流、V2 閘道而有所不同。

    • 傳統蒸汽、V2 閘道目的地與來源有 1:1 的關係。每個來源都會將資料傳送至特定目的地。

    • 啟用 MQTT 的 V3 閘道目的地會分別設定,因為中樞和輻條模型可讓您集中設定和管理不同閘道的多個資料來源。若要在 V3 閘道中設定目的地,請參閱 了解 AWS IoT SiteWise Edge 目的地

    Classic steams, V2 gateway destinations
    • AWS IoT SiteWise 即時 – 選擇此選項以直接將資料傳送至 AWS IoT SiteWise 儲存體。在邊緣即時擷取和監控資料。

    • AWS IoT SiteWise 使用 Amazon S3 緩衝 – 以 Parquet 格式將資料傳送至 Amazon S3,然後匯入儲存 AWS IoT SiteWise 體。選擇此選項以批次擷取資料,並以經濟實惠的方式存放歷史資料。您可以設定偏好的 Amazon S3 儲存貯體位置,以及您希望將資料上傳至 Amazon S3 的頻率。您也可以選擇在擷取資料之後如何處理資料 AWS IoT SiteWise。您可以選擇在 AWS IoT SiteWise 和 Amazon S3 中同時提供資料,也可以選擇在匯入 Amazon S3 之後自動將其刪除 AWS IoT SiteWise。

      • Amazon S3 儲存貯體是一種預備和緩衝機制,並支援 Parquet 格式的檔案。

      • 如果您選取核取方塊將 AWS IoT SiteWise 資料匯入儲存體,資料會先上傳到 Amazon S3,然後再上傳到 AWS IoT SiteWise 儲存體。

        • 如果您選取核取方塊從 Amazon S3 刪除資料,資料會在匯入 SiteWise 儲存體後從 Amazon S3 刪除。

        • 如果您清除核取方塊從 Amazon S3 刪除資料,資料會同時儲存在 Amazon S3 和 SiteWise 儲存中。

      • 如果您清除核取方塊將 AWS IoT SiteWise 資料匯入儲存,資料只會儲存在 Amazon S3 中。它不會匯入 SiteWise 儲存體。

      管理資料儲存 如需各種儲存選項 AWS IoT SiteWise 的詳細資訊,請造訪 。若要進一步了解 定價選項,請參閱 AWS IoT SiteWise 定價

    • AWS IoT Greengrass 串流管理員 – AWS IoT Greengrass 使用串流管理員將資料傳送至下列 AWS 雲端目的地: 中的頻道 AWS IoT Analytics、Amazon Kinesis Data Streams 中的串流、 中的資產屬性 AWS IoT SiteWise,或 Amazon Simple Storage Service (Amazon S3) 中的物件。如需詳細資訊,請參閱《 開發人員指南》中的管理 AWS IoT Greengrass 核心上的資料串流AWS IoT Greengrass Version 2

      輸入 AWS IoT Greengrass 串流的名稱。

    MQTT-enabled, V3 gateway destinations
    1. 啟用 MQTT 的 V3 Gateways for AWS IoT SiteWise Edge 如需新增相關目的地的資訊,請參閱 。

    2. 新增來源目的地後,請返回此程序。

  9. 進階組態窗格中,您可以執行下列動作:

    1. 針對來源伺服器和 SiteWise Edge 閘道之間傳輸的連線和資料,選擇訊息安全模式。此欄位是 OPC UA 安全政策和訊息安全模式的組合。選擇您為 OPC UA 伺服器指定的相同安全政策和訊息安全模式。

    2. 如果您的來源需要身分驗證,請從身分驗證組態清單中選擇 AWS Secrets Manager 秘密。SiteWise Edge 閘道會在連線至此資料來源時,使用此秘密中的身分驗證憑證。您必須將秘密連接至 SiteWise Edge 閘道的 AWS IoT Greengrass 元件,以將其用於資料來源身分驗證。如需詳細資訊,請參閱設定 SiteWise Edge 的資料來源身分驗證

      提示

      您的資料伺服器可能具有稱為 Allow anonymous login (允許匿名登入) 的選項。如果此選項為 Yes (是),則您的來源不需要身分驗證。

    3. (選用) 您可以選取啟用資料串流字首 - 選用,以啟用資料串流字首

      1. 輸入資料串流字首。SiteWise Edge 閘道會將此字首新增至來自此來源的所有資料串流。使用資料流前置詞以區分來自不同來源但具有相同名稱的資料串流。您帳戶中的每個資料串流應該都有唯一的名稱。

    4. (選用) 選擇資料類型轉換選項,將不支援的 OPC UA 資料類型轉換為字串,然後再將其擷取至 AWS IoT SiteWise。將具有簡單資料類型的陣列值轉換為 JSON 字串,並將 DateTime 資料類型轉換為 ISO 8601 字串。如需詳細資訊,請參閱轉換不支援的資料類型

    5. (選用) 對於屬性群組,選擇新增群組

      1. 輸入屬性群組的名稱

      2. 對於屬性

        1. 對於節點路徑,新增 OPC UA 節點篩選條件以限制要上傳哪些 OPC UA 路徑 AWS IoT SiteWise。格式類似於用於選取的節點 ID

      3. 對於群組設定,請執行下列動作:

        1. 針對資料品質設定,選擇您希望 AWS IoT SiteWise 收集器擷取的資料品質類型。

        2. 對於掃描模式設定,使用掃描模式設定標準訂閱屬性。您可以選取訂閱輪詢。如需掃描模式的詳細資訊,請參閱 使用 OPC UA 篩選資料擷取範圍

          Subscribe
          傳送每個資料點
          1. 選擇訂閱並設定下列項目:

            1. 資料變更觸發 – 啟動資料變更提醒的條件。

            2. 訂閱佇列大小 – OPC–UA 伺服器上特定指標的佇列深度,其中監控項目的通知會排入佇列。

            3. 訂閱發佈間隔 – 建立訂閱時指定的發佈週期間隔 (以毫秒為單位)。

            4. 快照間隔 - 選用 - 快照頻率逾時設定,以確保 AWS IoT SiteWise Edge 擷取穩定的資料串流。

            5. 掃描速率 – 您希望 SiteWise Edge 閘道讀取暫存器的速率。 AWS IoT SiteWise 會自動計算 SiteWise Edge 閘道允許的最小掃描速率。

            6. 時間戳記 – 要包含在 OPC UA 資料點中的時間戳記。您可以使用伺服器時間戳記或裝置的時間戳記。

              注意

              使用 IoT SiteWise OPC UA 收集器元件的 2.5.0 版或更新版本。如果您搭配舊版使用時間戳記功能,組態更新會失敗。如需詳細資訊,請參閱更新 AWS IoT SiteWise 元件的版本

          2. 無效頻帶設定中,設定無效頻帶類型。無效頻帶類型會控制來源傳送至 的資料 AWS IoT SiteWise,以及其捨棄的資料。如需無效頻帶設定的詳細資訊,請參閱 使用 OPC UA 篩選資料擷取範圍

            • – 關聯的伺服器會傳送此屬性群組的所有資料點。

            • 百分比 – 相關聯的伺服器只會傳送超出資料範圍指定百分比的資料。此範圍是由伺服器根據為每個節點定義的工程單位最小值和最大值來計算。如果伺服器不支援百分比無效頻帶或缺少定義的工程單位,閘道會使用以下提供的最小值和最大值來計算範圍。

            • 絕對 – 相關聯的伺服器只會傳送超出特定範圍的資料。

            1. Deadband 值設定為 Deadband 的資料範圍百分比。

            2. (選用) 使用最小範圍 - 選用和最大範圍 - 選用,指定無效頻帶範圍的最小值和最大值

          Poll
          在特定間隔傳送資料點
          • 選擇輪詢並設定下列項目:

            1. 掃描速率 – 您希望 SiteWise Edge 閘道讀取暫存器的速率。 AWS IoT SiteWise 會自動計算 SiteWise Edge 閘道的最低允許掃描速率。

            2. 時間戳記 – 要包含在 OPC UA 資料點中的時間戳記。您可以使用伺服器時間戳記或裝置的時間戳記。

              注意

              使用 IoT SiteWise OPC UA 收集器元件的 2.5.0 版或更新版本。如果您搭配舊版使用時間戳記功能,組態更新會失敗。如需詳細資訊,請參閱更新 AWS IoT SiteWise 元件的版本

          注意

          當您在掃描模式設定中選取訂閱時,就會套用無效頻帶設定。

  10. 選擇儲存

設定 OPC UA 來源 (AWS CLI)

您可以使用 為 SiteWise Edge 閘道定義 OPC UA 資料來源 AWS CLI。若要這樣做,請建立 OPC UA 功能組態 JSON 檔案,並使用 update-gateway-capability-configuration 命令來更新 SiteWise Edge 閘道組態。您必須在單一功能組態中定義所有 OPC UA 來源。

MQTT-enabled, V3 gateway

此功能具有下列命名空間。

  • iotsitewise:opcuacollector:3

{ "sources": [ { "name": "string", "endpoint": { "certificateTrust": { "type": "TrustAny" | "X509", "certificateBody": "string", "certificateChain": "string", }, "endpointUri": "string", "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS", "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Anonymous" | "Username", "usernameSecretArn": "string" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "string" } } ] }, "measurementDataStreamPrefix": "string", "typeConversions": { "array": "JsonArray", "datetime": "ISO8601String" }, "destination": { { "type":"MQTT" } }, "propertyGroups": [ { "name": "string", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "string" } ], "deadband": { "type": "PERCENT" | "ABSOLUTE", "value": double, "eguMin": double, "eguMax": double, "timeoutMilliseconds": integer }, "scanMode": { "type": "EXCEPTION" | "POLL", "rate": integer, "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME" }, "dataQuality": { "allowGoodQuality": true | false, "allowBadQuality": true | false, "allowUncertainQuality": true | false }, "subscription": { "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP", "queueSize": integer, "publishingIntervalMilliseconds": integer, "snapshotFrequencyMilliseconds": integer } } ] } ] }
Classic streams, V2 gateway

此功能具有下列命名空間。

  • iotsitewise:opcuacollector:2

請求語法

{ "sources": [ { "name": "string", "endpoint": { "certificateTrust": { "type": "TrustAny" | "X509", "certificateBody": "string", "certificateChain": "string", }, "endpointUri": "string", "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS", "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Anonymous" | "Username", "usernameSecretArn": "string" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "string" } } ] }, "measurementDataStreamPrefix": "string", "typeConversions": { "array": "JsonArray", "datetime": "ISO8601String" }, "destination": { "type": "StreamManager", "streamName": "string", "streamBufferSize": integer, }, "propertyGroups": [ { "name": "string", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "string" } ], "deadband": { "type": "PERCENT" | "ABSOLUTE", "value": double, "eguMin": double, "eguMax": double, "timeoutMilliseconds": integer }, "scanMode": { "type": "EXCEPTION" | "POLL", "rate": integer, "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME" }, "dataQuality": { "allowGoodQuality": true | false, "allowBadQuality": true | false, "allowUncertainQuality": true | false }, "subscription": { "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP", "queueSize": integer, "publishingIntervalMilliseconds": integer, "snapshotFrequencyMilliseconds": integer } } ] } ] }

請求內文

sources

OPC UA 來源定義結構的清單,每個結構都包含下列資訊:

name

來源的唯一且易記名稱。

endpoint

包含下列資訊的端點結構:

certificateTrust

包含下列資訊的憑證信任政策結構:

type

來源的憑證信任模式。選擇下列其中一項:

  • TrustAny – SiteWise Edge 閘道會在連線到 OPC UA 來源時信任任何憑證。

  • X509 – SiteWise Edge 閘道會在連線到 OPC UA 來源時信任 X.509 憑證。如果您選擇此選項,則必須在 certificateTrust 中定義 certificateBody。您也可以 certificateTrust 在中定義 certificateChain

certificateBody

(選用性) X.509 憑證的主體。

如果您在 certificateTrust 中為 type 選擇 X509,則此欄位為必要。

certificateChain

(選用) X.509 憑證的信任鏈。

僅當您在 certificateTrust 中為 type 選擇 X509 的情況下,才會使用此欄位。

endpointUri

OPC UA 來源的本機端點。例如,您的本機端點可能看起來會像 opc.tcp://203.0.113.0:49320

securityPolicy

要使用的安全政策,讓您可以保護從 OPC UA 來源讀取的訊息。選擇下列其中一項:

  • NONE – SiteWise Edge 閘道無法保護來自 OPC UA 來源的訊息。我們建議您選擇不同的安全政策。如果您選擇此選項,您也必須為 messageSecurityMode 選擇 NONE

  • BASIC256_SHA256Basic256Sha256安全政策。

  • AES128_SHA256_RSAOAEPAes128_Sha256_RsaOaep安全政策。

  • AES256_SHA256_RSAPSSAes256_Sha256_RsaPss安全政策。

  • BASIC128_RSA15 – (已棄用) OPC UA 規格中的Basic128Rsa15安全政策已棄用,因為它不再被視為安全。我們建議您選擇不同的安全政策。如需詳細資訊,請參閱設定檔 SecurityPolicy – Basic128Rsa15

  • BASIC256 – (已棄用) OPC UA 規格中的Basic256安全政策已棄用,因為它不再被視為安全。我們建議您選擇不同的安全政策。如需詳細資訊,請參閱 SecurityPolicy – Basic256

重要

如果您選擇 以外的安全政策NONE,您必須SIGN_AND_ENCRYPT為 選擇 SIGNmessageSecurityMode。您也必須將來源伺服器設定為信任 SiteWise Edge 閘道。如需詳細資訊,請參閱設定 OPC UA 伺服器以信任 AWS IoT SiteWise Edge 閘道

messageSecurityMode

用於保護 OPC UA 來源連線的訊息安全模式。選擇下列其中一項:

  • NONE – SiteWise Edge 閘道無法保護與 OPC UA 來源的連線。我們建議您選擇不同的訊息安全模式。如果您選擇此選項,您也必須為 securityPolicy 選擇 NONE

  • SIGN – SiteWise Edge 閘道與 OPC UA 來源之間傳輸中的資料已簽署但未加密。

  • SIGN_AND_ENCRYPT – 閘道與 OPC UA 來源之間傳輸中的資料會經過簽署和加密。

重要

如果您選擇 以外的訊息安全模式NONE,則必須選擇 securityPolicy以外的 NONE。您也必須將來源伺服器設定為信任 SiteWise Edge 閘道。如需詳細資訊,請參閱設定 OPC UA 伺服器以信任 AWS IoT SiteWise Edge 閘道

identityProvider

包含下列資訊的身分提供者結構:

type

來源所需的身分驗證登入資料類型。選擇下列其中一項:

  • Anonymous – 來源不需要身分驗證即可連線。

  • Username – 來源需要使用者名稱和密碼才能連線。如果您選擇此選項,則必須在 identityProvider 中定義 usernameSecretArn

usernameSecretArn

(選用) AWS Secrets Manager 秘密的 ARN。SiteWise Edge 閘道會在連線至此來源時,使用此秘密中的身分驗證憑證。您必須將秘密連接到 SiteWise Edge 閘道的 IoT SiteWise 連接器,以將其用於來源身分驗證。如需詳細資訊,請參閱設定 SiteWise Edge 的資料來源身分驗證

如果您在 identityProvider 中為 type 選擇 Username,則此欄位為必要。

nodeFilterRules

定義傳送至 AWS 雲端之 OPC UA 資料串流路徑的節點篩選規則結構清單。您可以使用節點篩選條件來減少 SiteWise Edge 閘道的啟動時間和 CPU 使用量,方法是只包含您建模資料的路徑 AWS IoT SiteWise。根據預設,SiteWise Edge 閘道會上傳所有 OPC UA 路徑,但以 開頭的路徑除外/Server/。若要定義 OPC UA 節點篩選條件,您可以使用節點路徑和 *** 萬用字元。如需詳細資訊,請參閱在 SiteWise Edge 中使用 OPC UA 節點篩選條件

清單中的每個結構都必須包含下列資訊:

action

此節點篩選規則的動作。您可以選擇下列選項:

  • INCLUDE – SiteWise Edge 閘道僅包含符合此規則的資料串流。

definition

包含下列資訊的節點篩選規則結構:

type

此規則的節點篩選路徑類型。您可以選擇下列選項:

  • OpcUaRootPath – SiteWise Edge 閘道會根據 OPC UA 路徑階層的根來評估此節點篩選路徑。

rootPath

針對 OPC UA 路徑階層的根評估的節點篩選路徑。此路徑必須以 開頭/

measurementDataStreamPrefix

從來源附加至所有資料串流的字串。SiteWise Edge 閘道會將此字首新增至來自此來源的所有資料串流。使用資料流前置詞以區分來自不同來源但具有相同名稱的資料串流。您帳戶中的每個資料串流應該都有唯一的名稱。

typeConversions

不支援的 OPC UA 資料類型可用的轉換類型。每個資料類型都會轉換為字串。如需詳細資訊,請參閱轉換不支援的資料類型

array

轉換為字串的簡單陣列資料類型。您可以選擇下列選項:

  • JsonArray – 表示您選擇將簡易陣列資料類型轉換為字串。

datetime

轉換為字串的 DateTime 資料類型。您可以選擇下列選項:

  • ISO8601String – 表示您選擇將 ISO 8601 資料類型轉換為字串。

destination

OPC UA 標籤目的地的組態。傳統串流、v2 和啟用 MQTT 的 V3 閘道具有不同的目的地組態。

type

目的地的類型。

streamName僅適用於 Classic 串流、V2 閘道

串流的名稱。串流名稱應該是唯一的。

streamBufferSize僅適用於 Classic 串流、V2 閘道

串流的緩衝區大小。這對管理來自 OPC UA 來源的資料流程非常重要。

propertyGroups

(選用) 定義通訊協定scanMode請求的 deadband和 的屬性群組清單。

name

屬性群組的名稱。這應該是唯一的識別符。

deadband

deadband 值定義資料點值的最小變更,在資料傳送到雲端之前必須發生。其中包含下列資訊:

type

支援的無效頻帶類型。您可以選擇下列選項:

  • ABSOLUTE – 固定值,指定將資料點視為足夠重要以傳送至雲端所需的最低絕對變更。

  • PERCENT – 動態值,以上次傳送資料點值的百分比指定所需的最低變更。當資料值隨時間大幅變化時,這種類型的無效頻帶很有用。

value

無效頻帶的值。當 type為 時ABSOLUTE,此值為無單位雙。當 type為 時PERCENT,此值是介於 1和 之間的兩倍100

eguMin

(選用) 使用PERCENT無效頻帶時的工程單位最小值。如果 OPC UA 伺服器未設定工程單位,您可以設定此項目。

eguMax

(選用) 使用PERCENT無效頻帶時的工程單位上限。如果 OPC UA 伺服器未設定工程單位,您可以設定此項目。

timeoutMilliseconds

逾時前的持續時間,以毫秒為單位。最小值為 100

scanMode

包含下列資訊的scanMode結構:

type

支援的 類型scanMode。接受的值為 POLLEXCEPTION

rate

掃描模式的取樣間隔。

timestampToReturn

時間戳記的來源。您可以選擇下列選項:

  • SOURCE_TIME – 使用您裝置的時間戳記。

  • SERVER_TIME – 使用您伺服器的時間戳記。

注意

TimestampToReturn 搭配 IoT SiteWise OPC UA 收集器元件的 2.5.0 版或更新版本使用。如果您將此功能與舊版搭配使用,組態更新會失敗。如需詳細資訊,請參閱更新 AWS IoT SiteWise 元件的版本

nodeFilterRuleDefinitions

(選用) 屬性群組中要包含的節點路徑清單。屬性群組不能重疊。如果您未指定此欄位的值,則群組會包含根目錄下的所有路徑,而且您無法建立其他屬性群組。nodeFilterRuleDefinitions 結構包含以下資訊:

type

OpcUaRootPath 是唯一支援的類型。這會指定 的值rootPath是相對於 OPC UA 瀏覽空間根目錄的路徑。

rootPath

逗號分隔清單,指定要包含在屬性群組中的路徑 (相對於根)。

Classic 串流、V2 閘道 (AWS CLI) 的其他功能組態範例

下列範例會從存放在 JSON 檔案中的承載定義 OPC UA SiteWise Edge 閘道功能組態。

aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:2" \ --capability-configuration file://opc-ua-configuration.json
範例 :OPC UA 來源組態

下列opc-ua-configuration.json檔案定義了基本、不安全的 OPC UA 來源組態。

{ "sources": [ { "name": "Wind Farm #1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.0:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }
範例 :OPC UA 來源組態與定義的屬性群組

下列opc-ua-configuration.json檔案使用定義的屬性群組來定義基本、不安全的 OPC UA 來源組態。

{ "sources": [ { "name": "source1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://10.0.0.9:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank" } } ] }, "measurementDataStreamPrefix": "propertyGroups", "propertyGroups": [ { "name": "Deadband_Abs_5", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-001" }, { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-002" } ], "deadband": { "type":"ABSOLUTE", "value": 5.0, "timeoutMilliseconds": 120000 } }, { "name": "Polling_10s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Pressure/PT-001" } ], "scanMode": { "type": "POLL", "rate": 10000 } }, { "name": "Percent_Deadband_Timeout_90s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Flow/FT-*" } ], "deadband": { "type":"PERCENT", "value": 5.0, "eguMin": -100, "eguMax": 100, "timeoutMilliseconds": 90000 } } ] } ] }
範例 :OPC UA 來源組態與屬性

的下列 JSON 範例opc-ua-configuration.json定義具有下列屬性的 OPC UA 來源組態:

  • 信任任何憑證。

  • 使用BASIC256安全政策來保護訊息。

  • 使用 SIGN_AND_ENCRYPT 模式來保護連線。

  • 使用存放在 Secrets Manager 秘密中的身分驗證憑證。

  • 篩選資料串流,路徑以 /WindFarm/2/WindTurbine/ 開頭的資料串流除外。

  • /Washington 新增至每個資料串流路徑的開頭,以區分此「風力發電廠 #2」和另一個區域中的「風力發電廠 #2」。

{ "sources": [ { "name": "Wind Farm #2", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.1:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Username", "usernameSecretArn": "arn:aws:secretsmanager:region:123456789012:secret:greengrass-windfarm2-auth-1ABCDE" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/WindFarm/2/WindTurbine/" } } ] }, "measurementDataStreamPrefix": "/Washington" } ] }
範例 :OPC UA 來源組態與憑證信任

的下列 JSON 範例opc-ua-configuration.json定義具有下列屬性的 OPC UA 來源組態:

  • 信任指定的 X.509 憑證。

  • 使用BASIC256安全政策來保護訊息。

  • 使用 SIGN_AND_ENCRYPT 模式來保護連線。

{ "sources": [ { "name": "Wind Farm #3", "endpoint": { "certificateTrust": { "type": "X509", "certificateBody": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "certificateChain": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }, "endpointUri": "opc.tcp://203.0.113.2:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }