本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 OPC-UA 来源 (CLI)
可以在网关功能中定义 OPC-UA 数据源。您必须在单个功能配置中定义所有 OPC-UA 源。
有关使用定义源的更多信息Amazon Command Line Interface,请参阅配置数据源 (Amazon CLI)。
此功能具有以下版本。
版本 | 命名空间 |
---|---|
1 | iotsitewise:opcuacollector:1 |
OPC-UA 功能配置参数
在功能配置中定义 OPC-UA 源时,您必须在 capabilityConfiguration
JSON 文档中指定以下信息:
sources
-
OPC-UA 源定义结构的列表,每个结构均包含以下信息:
name
-
源的唯一友好名称。
endpoint
-
一个包含以下信息的终端节点结构:
certificateTrust
-
一个包含以下信息的证书信任策略结构:
type
-
源的证书信任模式。选择以下选项之一:
-
TrustAny
— 网关在连接到 OPC-UA 源时信任任何证书。 -
X509
— 当网关连接到 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
— 网关不保护来自 OPC-UA 来源的消息。我们建议您选择不同的安全策略。如果选择此选项,则还必须为messageSecurityMode
选择NONE
。 -
BASIC256_SHA256
— 那个Basic256Sha256
安全政策。 -
AES128_SHA256_RSAOAEP
— 那个Aes128_Sha256_RsaOaep
安全政策。 -
AES256_SHA256_RSAPSS
— 那个Aes256_Sha256_RsaPss
安全政策。 -
BASIC128_RSA15
—(已弃用)Basic128Rsa15
OPC-UA 规范中已弃用安全策略,因为它不再被认为是安全的。我们建议您选择不同的安全策略。有关更多信息,请参阅Basic128Rsa15。 -
BASIC256
—(已弃用)Basic256
OPC-UA 规范中已弃用安全策略,因为它不再被认为是安全的。我们建议您选择不同的安全策略。有关更多信息,请参阅Basic256。
重要
如果您选择了其他安全策略
NONE
,你必须选择SIGN
要么SIGN_AND_ENCRYPT
为了messageSecurityMode
。您还必须将源服务器配置为信任网关。有关更多信息,请参阅使您的源服务器能够信任网关: -
messageSecurityMode
-
用于保护与 OPC-UA 源的连接的消息安全模式。选择以下选项之一:
-
NONE
— 网关无法保护与 OPC-UA 源的连接。我们建议您选择不同的消息安全模式。如果选择此选项,则还必须为securityPolicy
选择NONE
。 -
SIGN
— 在网关和 OPC-UA 源之间传输的数据已签名,但未加密。 -
SIGN_AND_ENCRYPT
— 网关和 OPC-UA 源之间传输的数据经过签名和加密。
重要
如果您选择的邮件安全模式不是
NONE
,你必须选择一个securityPolicy
除了NONE
。您还必须将源服务器配置为信任网关。有关更多信息,请参阅使您的源服务器能够信任网关: -
identityProvider
-
一个包含以下信息的身份提供程序结构:
type
-
源所需的身份验证凭证的类型。选择以下选项之一:
-
Anonymous
— 源不需要身份验证即可连接。 -
Username
— 源需要用户名和密码才能连接。如果选择此选项,则必须在identityProvider
中定义usernameSecretArn
。
-
usernameSecretArn
-
(可选)的 ARNAmazon Secrets Manager秘密。在连接到此源时,网关会使用此密钥中的身份验证凭证。您必须将机密附加到网关的 IoT SiteWise 用于将它们用于源身份验证的连接器。有关更多信息,请参阅配置源身份验证:
如果您在
identityProvider
中为type
选择Username
,则此字段为必填字段。
nodeFilterRules
-
定义要发送到 OPC-UA 数据流路径的节点筛选规则结构列表Amazon云。您只需要包含在 Amazon IoT SiteWise 中建模的数据的路径,就可以使用节点筛选条件来减少网关的启动时间和 CPU 使用率。默认情况下,网关上传除以
/Server/
开头之外的所有 OPC-UA 路径。要定义 OPC-UA 节点筛选条件,可以使用节点路径以及*
和**
通配符。有关更多信息,请参阅使用 OPC-UA 节点筛选条件:此列表中的每个结构都必须包含以下信息:
action
-
此节点筛选器规则的操作。可以选择以下选项:
-
INCLUDE
— 网关仅包含符合此规则的数据流。
-
definition
-
一个包含以下信息的节点筛选器规则结构:
type
-
此规则的节点筛选器路径的类型。可以选择以下选项:
-
OpcUaRootPath
— 网关根据 OPC-UA 路径层次结构的根目录评估此节点筛选路径。
-
rootPath
-
根据 OPC-UA 路径层次结构的根进行评估的节点筛选器路径。这条路必须以
/
。
measurementDataStreamPrefix
-
用于预置源所有数据流的字符串。网关会将此前缀添加到来自该源的所有数据流。使用数据流前缀,可以区分来自不同源的同名数据流。在您的账户中,每个数据流都应具有唯一的名称。
propertyGroups
-
(可选)定义以下内容的属性组列表
deadband
和scanMode
根据协议的要求。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
。可接受的值是POLL
和EXCEPTION
。 rate
-
扫描模式的采样间隔。
nodeFilterRuleDefinitions
-
(可选)要包含在属性组中的节点路径列表。属性组不能重叠。如果您不为此字段指定值,则该组将包含根目录下的所有路径,并且您无法创建其他属性组。
nodeFilterRuleDefinitions
结构包含以下信息:type
-
OpcUaRootPath
是唯一支持的类型。这指定了的值rootPath
是相对于 OPC-UA 浏览空间根目录的路径。 rootPath
-
以逗号分隔的列表,用于指定要包含在属性组中的路径(相对于根路径)。
功能配置示例
以下示例根据存储在 JSON 文件中的有效负载定义了 OPC-UA 网关功能配置。
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:1" \ --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 源配置
针对 opc-ua-configuration.json
的以下 JSON 示例定义具有以下属性的 OPC-UA 源配置:
-
信任任何证书。
-
使用
BASIC256
保护消息的安全策略。 -
使用
SIGN_AND_ENCRYPT
模式保护连接。 -
使用存储在 Secrets Manager 密钥中的身份验证凭据。
-
筛选出数据流(路径以
/WindFarm/2/WindTurbine/
开头的数据流除外)。 -
在每个数据流路径的开头添加
/Washington
以将此“Wind Farm #2”与另一个区域中的“Wind Farm #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": "" } ] }