本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 OPC-UA 來源
您可以使用定義 SiteWise 邊緣閘道的 OPC-UA 資料來源。 AWS CLI若要這麼做,請建立 OPC-UA 功能組態 JSON 檔案,並使用指 update-gateway-capability-configuration
如需有關使用定義來源的更多資訊 AWS Command Line Interface,請參閱設定資料來源 (AWS CLI)。
此功能具有下列版本。
版本 | 命名空間 |
---|---|
1 | iotsitewise:opcuacollector:1 |
請求語法
{ "sources": [ { "name": "
string
", "endpoint": { "certificateTrust": { "type": "string
" "certificateBody": "string
" "certificateChain": "string
" }, "endpointUri": "string
", "securityPolicy": "string
", "messageSecurityMode": "string
", "identityProvider": { "type": "string
", "usernameSecretArn": "string
" }, "nodeFilterRules": [ { "action": "string
", "definition": { "type": "string
", "rootPath": "string
" } } ] }, "measurementDataStreamPrefix": "string
" "propertyGroups": [ { "name": "string
", "deadband": { "type":"string
", "value":string
, "eguMin":string
, "eguMax":string
, "timeoutMilliseconds":string
}, "scanMode": { "type": "string
", "rate":string
}, "nodeFilterRuleDefinitions": [ { "type": "string
", "rootPath": "string
" } ] } } ] }
請求內文
- 來源
-
OPC-UA 定義結構的清單,每個結構都包含下列資訊:
- name
-
來源的唯一且易記名稱。
- 端點
-
包含下列資訊的端點結構:
- 證書信託
-
包含下列資訊的憑證信任政策結構:
- type
-
來源的憑證信任模式。選擇下列其中一項:
-
TrustAny
— SiteWise Edge 閘道在連線至 OPC-UA 來源時信任任何憑證。 -
X509
— 邊 SiteWise 緣閘道在連線至 OPC-UA 來源時信任 X.509 憑證。如果您選擇此選項,則必須在certificateTrust
中定義certificateBody
。您也可以certificateTrust
在中定義certificateChain
。
-
- 認證身體
-
(選用性) X.509 憑證的主體。
如果您在
certificateTrust
中為type
選擇X509
,則此欄位為必要。 - certificateChain
-
(選用) X.509 憑證的信任鏈。
僅當您在
certificateTrust
中為type
選擇X509
的情況下,才會使用此欄位。
- 结束
-
OPC-UA 來源的本機端點。例如,您的本機端點可能看起來會像
opc.tcp://203.0.113.0:49320
。 - 安全性原則
-
要使用的安全性原則,以確保從 OPC-UA 來源讀取的訊息安全性。選擇下列其中一項:
-
NONE
— SiteWise 邊緣閘道無法保護來自 OPC-UA 來源的訊息安全。我們建議您選擇不同的安全性原則。如果您選擇此選項,您也必須為messageSecurityMode
選擇NONE
。 -
BASIC256_SHA256
—Basic256Sha256
安全性原則。 -
AES128_SHA256_RSAOAEP
—Aes128_Sha256_RsaOaep
安全性原則。 -
AES256_SHA256_RSAPSS
—Aes256_Sha256_RsaPss
安全性原則。 -
BASIC128_RSA15
— (已取代) 在 OPC-UA 規格中已淘汰Basic128Rsa15
安全性原則,因為它不再被視為安全性。我們建議您選擇不同的安全性原則。如需詳細資訊,請參閱基本 128 頁。 -
BASIC256
— (已取代) 在 OPC-UA 規格中已淘汰Basic256
安全性原則,因為它不再被視為安全性。我們建議您選擇不同的安全性原則。如需詳細資訊,請參閱基本 256。
重要
如果您選擇以外的安全策略
NONE
,則必須選擇SIGN
或SIGN_AND_ENCRYPT
messageSecurityMode
。您也必須將來源伺服器設定為信任 SiteWise Edge 閘道。如需詳細資訊,請參閱 讓您的 OPC-UA 來源伺服器信任邊 SiteWise 緣閘道。 -
- messageSecurityMode
-
用來保護對 OPC-UA 來源之連線的訊息安全模式。選擇下列其中一項:
-
NONE
— 邊 SiteWise 緣閘道無法保護與 OPC-UA 來源的連線安全。我們建議您選擇不同的訊息安全性模式。如果您選擇此選項,您也必須為securityPolicy
選擇NONE
。 -
SIGN
— SiteWise 邊緣閘道與 OPC-UA 來源之間傳輸中的資料已簽署,但未加密。 -
SIGN_AND_ENCRYPT
— 閘道器和 OPC-UA 來源之間傳輸中的資料經過簽署和加密。
重要
如果您選擇的訊息安全性模式不是
NONE
,則必須選擇以外的securityPolicy
其他模式NONE
。您也必須將來源伺服器設定為信任 SiteWise Edge 閘道。如需詳細資訊,請參閱 讓您的 OPC-UA 來源伺服器信任邊 SiteWise 緣閘道。 -
- 身分識別提供者
-
包含下列資訊的身分提供者結構:
- type
-
來源所需的身分驗證登入資料類型。選擇下列其中一項:
-
Anonymous
— 源不需要身份驗證即可連接。 -
Username
— 來源需要使用者名稱和密碼才能連線。如果您選擇此選項,則必須在identityProvider
中定義usernameSecretArn
。
-
- usernameSecretArn
-
(選擇性) AWS Secrets Manager 密碼的 ARN。 SiteWise Edge 閘道連線至此來源時,會使用此密碼中的驗證認證。您必須將密碼附加至 SiteWise Edge 閘道的 IoT SiteWise 連接器,才能將其用於來源驗證。如需詳細資訊,請參閱 設定資料來源驗證。
如果您在
identityProvider
中為type
選擇Username
,則此欄位為必要。
- nodeFilterRules
-
定義要傳送至雲端的 OPC-UA 資料串流路徑的節點篩選規則結構清單。 AWS 您可以使用節點篩選器,透過僅包含建立模型的資料路徑,以減少 SiteWise Edge 閘道的啟動時間和 CPU 使用率 AWS IoT SiteWise。依預設, SiteWise 邊緣閘道會上傳所有 OPC-UA 路徑,但開頭為的路徑除外。
/Server/
若要定義 OPC-UA 節點篩選條件,您可以使用節點路徑以及*
和**
萬用字元。如需詳細資訊,請參閱 使用 OPC-UA 節點篩選條件。清單中的每個結構都必須包含下列資訊:
- 動作
-
此節點篩選規則的動作。您可以選擇下列選項:
-
INCLUDE
— SiteWise Edge 閘道僅包含符合此規則的資料串流。
-
- 定義
-
包含下列資訊的節點篩選規則結構:
- type
-
此規則的節點篩選路徑類型。您可以選擇下列選項:
-
OpcUaRootPath
— SiteWise Edge 閘道會根據 OPC-UA 路徑階層的根目錄評估此節點篩選路徑。
-
- 根路徑
-
要評估 OPC-UA 路徑階層之根目錄的節點篩選路徑。此路徑必須以開頭
/
。
- measurementDataStream前綴
-
要在來源的所有資料串流前面加上的字串。 SiteWise Edge 閘道會將此前置詞新增至來自此來源的所有資料串流。使用資料流前置詞以區分來自不同來源但具有相同名稱的資料串流。您帳戶中的每個資料串流應該都有唯一的名稱。
- 屬性群組
-
(選擇性) 定義和通訊協定
scanMode
要求deadband
的內容群組清單。- name
-
內容群組的名稱。這應該是一個唯一的標識符。
- 死帶
-
包含下列資訊的
deadband
結構:- type
-
支持的死帶類型。接受的值為
ABSOLUTE
和PERCENT
。 - 值
-
死帶的值。如果
type
是ABSOLUTE
,此值為無單位 double。如果type
是PERCENT
,此值是介於1
和之間的雙精度值100
。 - 惠居民
-
(選擇性) 使用
PERCENT
無限區時的最小工程單位。如果 OPC-UA 伺服器沒有設定工程單位,您可以設定此選項。 - Egumax
-
(選擇性) 使用
PERCENT
無限區時的工程單位上限。如果 OPC-UA 伺服器沒有設定工程單位,您可以設定此選項。 - 超時毫秒
-
逾時之前的持續時間 (以毫秒計) 最小值為
100
。
- 掃描模式
-
包含下列資訊的
scanMode
結構:- type
-
支援的類型
scanMode
。接受的值為POLL
和EXCEPTION
。 - 率
-
掃描模式的取樣間隔。
- nodeFilterRule定義
-
(選擇性) 要包含在內容群組中的節點路徑清單。內容群組不能重疊。如果您未指定此欄位的值,則群組會包含根目錄下的所有路徑,而且您無法建立其他內容群組。
nodeFilterRuleDefinitions
結構包含以下資訊:- type
-
OpcUaRootPath
是唯一受支援的類型。這會指定的rootPath
值為相對於 OPC-UA 瀏覽空間根目錄的路徑。 - 根路徑
-
以逗號分隔的清單,指定要包含在內容群組中的路徑 (相對於根目錄)。
功能組態範例
下列範例會根據儲存在 JSON 檔案中的承載定義 OPC-UA SiteWise Edge 閘道功能組態。
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:1" \ --capability-configuration file://opc-ua-configuration.json
範例 : 原始碼配置
下面的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 原始碼組態
下列 opc-ua-configuration.json
的 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-configuration.json
的 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": "" } ] }