在 Edge 中 SiteWise 设置 OPC UA 来源 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Edge 中 SiteWise 设置 OPC UA 来源

您可以使用 Amazon IoT SiteWise 控制台或 SiteWise Edge 网关功能来定义并向边缘网关添加 OPC UA 源,以表示本地 OPC UA 服务器。 SiteWise

配置 OPC UA 源(控制台)

您可以使用控制台按照以下步骤配置 OPC UA 源。

注意

警告:重复 TQVs 可能会导致双重充电。

使用控制台配置 OPC UA 源 Amazon IoT SiteWise
  1. 导航至 Amazon IoT SiteWise 控制台

  2. 在左侧导航栏中,选择 Edge 部分的 Edge 网关

  3. 选择边 SiteWise 缘网关以添加 OPC UA 源。

  4. 选择添加数据来源

  5. 输入源名称。

  6. 输入数据源服务器的 本地终端节点。端点可以是 IP 地址或主机名。您也可以向本地端点添加端口号。例如,您的本地端点可能类似于 opc.tcp://203.0.113.0:49320

  7. 启用 MQTT 的 V3 网关和经典直播 V2 网关之间的@@ 目的地各不相同。

    • Classic Steam、V2 网关目的地与源有 1:1 的关系。每个源都将数据发送到特定的目的地。

    • 支持 MQTT 的 V3 网关目的地是单独设置的,因为中心和分支模型允许您集中配置和管理跨不同网关的多个数据源。要在 V3 网关中设置目的地,请参阅了解 Amazon IoT SiteWise 边缘目的地

    Classic steams, V2 gateway destinations
    • Amazon IoT SiteWise 实时-选择此选项可将数据直接发送到 Amazon IoT SiteWise 存储器。在边缘实时摄取和监控数据。

    • Amazon IoT SiteWise 使用 Amazon S3 进行缓冲 — 以 Parquet 格式将数据发送到 Amazon S3,然后导入 Amazon IoT SiteWise 存储。选择此选项可批量摄取数据,并以经济高效的方式存储历史数据。您可以配置您的首选 Amazon S3 存储桶位置,以及您希望将数据上传到 Amazon S3 的频率。您还可以选择在将数据摄取到 Amazon IoT SiteWise后如何处理数据。您可以选择同时在 Amazon S3 Amazon IoT SiteWise 和 Amazon S3 中提供数据,也可以选择在数据导入 Amazon S3 后自动将其从 Amazon S3 中删除 Amazon IoT SiteWise。

      • Amazon S3 存储桶是一种暂存和缓冲机制,支持 Parquet 格式的文件。

      • 如果您选中 “将数据导入 Amazon IoT SiteWise 存储” 复选框,则会先将数据上传到 Amazon S3,然后上传到 Amazon IoT SiteWise 存储中。

        • 如果您选中 “从 Amazon S3 中删除数据” 复选框,则在数据导入 SiteWise 存储后,数据将从 Amazon S3 中删除。

        • 如果您清除 “从 Amazon S3 中删除数据” 复选框,则数据将存储在 Amazon S3 和 SiteWise 存储中。

      • 如果您清除将数据导入 Amazon IoT SiteWise 存储复选框,则数据将仅存储在 Amazon S3 中,它不会导入到 SiteWise 存储中。

      有关 Amazon IoT SiteWise 提供的各种存储选项的详细信息,请访问管理数据存储。要了解有关定价选项的更多信息,请参阅 Amazon IoT SiteWise 定价

    • Amazon IoT Greengrass 流管理器 — 使用 Amazon IoT Greengrass 流管理器将数据发送到以下 Amazon 云端目标:传入的频道、Amazon Kinesis Data Streams 中的流 Amazon IoT Analytics、中的资产属性或亚马逊简单存储服务 (Amazon S3) Simple Storage Service Amazon IoT SiteWise中的对象。有关更多信息,请参阅《Amazon IoT Greengrass Version 2 开发者指南》中的 “在 Amazon IoT Greengrass 核心上管理数据流”。

      输入 Amazon IoT Greengrass 直播的名称。

    MQTT-enabled, V3 gateway destinations
    1. 支持 MQTT 的边缘版 V3 网关 Amazon IoT SiteWise有关添加相关目的地的信息,请参阅。

    2. 添加源目标后,返回此过程。

  8. 高级配置窗格中,您可以执行以下操作:

    1. 为源服务器和 SiteWise Edge 网关之间传输的连接和数据选择消息安全模式。此字段是 OPC UA 安全策略和消息安全模式的组合。选择与您为 OPC UA 服务器指定的相同的安全策略和消息安全模式。

    2. 如果您的来源需要身份验证,请从身份验证配置列表中选择一个 Amazon Secrets Manager 密钥。 SiteWise Edge 网关在连接到此数据源时使用此密钥中的身份验证凭据。您必须将密钥附加到 SiteWise Edge 网关的 Amazon IoT Greengrass 组件,才能将其用于数据源身份验证。有关更多信息,请参阅 为 SiteWise Edge 配置数据源身份验证

      提示

      您的数据服务器可能有一个名为 允许匿名登录 的选项。如果此选项为 ,则说明您的源不需要身份验证。

    3. (可选)您可以通过选择激活数据流前缀 - 可选来激活数据流前缀。

      1. (可选)输入数据流前缀。 SiteWise Edge 网关将此前缀添加到来自该源的所有数据流。使用数据流前缀,可以区分来自不同源的同名数据流。在您的账户中,每个数据流都应具有唯一的名称。

    4. (可选)选择数据类型转换选项,将不支持的 OPC UA 数据类型转换为字符串,然后再将其摄取到 Amazon IoT SiteWise中。将具有简单数据类型的数组值转换为 JSON 字符串,将 DateTime 数据类型转换为 ISO 8601 字符串。有关更多信息,请参阅 转换不支持的数据类型

    5. (可选)对于属性组,选择添加新组

      1. 为属性组输入名称

      2. 对于属性

        1. 对于节点路径,添加 OPC UA 节点筛选条件以限制上传到 Amazon IoT SiteWise的 OPC UA 路径。其格式类似于要选择的节点 ID

      3. 对于 组设置,请执行以下操作:

        1. 数据质量设置中,选择您希望 C Amazon IoT SiteWise ollector 采集的数据质量类型。

        2. 对于扫描模式设置,请使用扫描模式配置标准订阅属性。您可以选择订阅轮询。有关扫描模式的更多信息,请参阅 使用 OPC UA 筛选数据摄取范围

          Subscribe
          要发送每个数据点,请执行以下步骤:
          1. 选择订阅并设置以下内容:

            1. 数据更改触发器 — 启动数据变更警报的条件。

            2. 订阅队列大小 — OPC‐UA 服务器上特定指标的队列深度,其中受监控项目的通知已排队。

            3. 订阅发布间隔 — 创建订阅时指定的发布周期间隔(以毫秒为单位)。

            4. 快照间隔-可选- 用于确保 Amazon IoT SiteWise Edge 摄取稳定的数据流的快照频率超时设置。

            5. 扫描速率 — 您希望 SiteWise Edge 网关读取寄存器的速率。 Amazon IoT SiteWise 自动计算您的 SiteWise Edge 网关允许的最低扫描速率。

            6. 时间戳 — 要包含在 OPC UA 数据点中的时间戳。您可以使用服务器时间戳或设备的时间戳。

              注意

              使用 2.5.0 或更高版本的 IoT SiteWise OPC UA 收集器组件。如果您在早期版本中使用时间戳功能,则配置更新会失败。有关更多信息,请参阅 更新 Amazon IoT SiteWise 组件的版本

          2. 死区设置中,配置死区类型。死区类型控制您的源发送给您的 Amazon IoT SiteWise数据以及它丢弃了哪些数据。有关死区设置的更多信息,请参阅 使用 OPC UA 筛选数据摄取范围

            • — 关联的服务器发送此属性组的所有数据点。

            • 百分比 — 关联的服务器仅发送超出数据范围指定百分比的数据。该范围由服务器根据为每个节点定义的最小和最大工程单位计算得出。如果服务器不支持百分比死区或缺少定义的工程单元,则网关将使用下面提供的最小值和最大值来计算范围。

            • 绝对 — 关联的服务器仅发送超出特定范围的数据。

            1. 死区值设置为数据范围与死区的百分比。

            2. (可选)使用最小范围 - 可选最大范围 - 可选,为死区范围指定最小值和最大值。

          Poll
          要按特定间隔发送数据点,请执行以下步骤:
          • 选择轮询并设置以下内容:

            1. 扫描速率 — 您希望 SiteWise Edge 网关读取寄存器的速率。 Amazon IoT SiteWise 自动计算您的 SiteWise Edge 网关允许的最低扫描速率。

            2. 时间戳 — 要包含在 OPC UA 数据点中的时间戳。您可以使用服务器时间戳或设备的时间戳。

              注意

              使用 2.5.0 或更高版本的 IoT SiteWise OPC UA 收集器组件。如果您在早期版本中使用时间戳功能,则配置更新会失败。有关更多信息,请参阅 更新 Amazon IoT SiteWise 组件的版本

          注意

          当您在扫描模式设置中选择订阅时,死区设置适用。

  9. 选择保存

配置 OPC UA 来源 ()Amazon CLI

您可以使用为 SiteWise Edge 网关定义 OPC UA 数据源。 Amazon 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 缘网关在连接到 OPC UA 源时信任任何证书。

  • X509— 边 SiteWise 缘网关在连接到 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 缘网关不保护来自 OPC UA 来源的消息。建议您选择不同的安全策略。如果选择此选项,则还必须为 messageSecurityMode 选择 NONE

  • BASIC256_SHA256Basic256Sha256 安全政策。

  • AES128_SHA256_RSAOAEPAes128_Sha256_RsaOaep 安全政策。

  • AES256_SHA256_RSAPSSAes256_Sha256_RsaPss 安全政策。

  • BASIC128_RSA15 —(已弃用)OPC UA 规范中已弃用 Basic128Rsa15 安全策略,因为它被视为不再安全。建议您选择不同的安全策略。有关更多信息,请参阅配置文件 SecurityPolicy — Basic 128Rsa15。

  • BASIC256 —(已弃用)OPC UA 规范中已弃用 Basic256 安全策略,因为它被视为不再安全。建议您选择不同的安全策略。有关更多信息,请参阅 SecurityPolicy — Basic256

重要

如果您选择除 NONE 外的其他安全策略,则 messageSecurityMode 必须选择 SIGNSIGN_AND_ENCRYPT。您还必须将源服务器配置为信任 SiteWise Edge 网关。有关更多信息,请参阅 将 OPC UA 服务器设置为信任 Amazon IoT SiteWise Edge 网关

messageSecurityMode

用于保护与 OPC UA 源的连接的消息安全模式。选择下列选项之一:

  • NONE— 边 SiteWise 缘网关无法保护与 OPC UA 源的连接。建议您选择不同的消息安全模式。如果选择此选项,则还必须为 securityPolicy 选择 NONE

  • SIGN— 在 SiteWise Edge 网关和 OPC UA 源之间传输的数据已签名,但未加密。

  • SIGN_AND_ENCRYPT — 对网关和 OPC UA 源之间的传输中数据进行签名和加密。

重要

如果您选择除 NONE 外的消息安全模式,则必须选择除 NONE 外的 securityPolicy。您还必须将源服务器配置为信任 SiteWise Edge 网关。有关更多信息,请参阅 将 OPC UA 服务器设置为信任 Amazon IoT SiteWise Edge 网关

identityProvider

一个包含以下信息的身份提供程序结构:

type

源所需的身份验证凭证的类型。选择下列选项之一:

  • Anonymous — 源不需要身份验证即可连接。

  • Username — 源需要用户名和密码才能连接。如果选择此选项,则必须在 identityProvider 中定义 usernameSecretArn

usernameSecretArn

(可选)密钥的 ARN。 Amazon Secrets Manager SiteWise Edge 网关在连接到此源时使用此密钥中的身份验证凭证。您必须将密钥附加到 SiteWise Edge 网关的 IoT SiteWise 连接器,才能使用它们进行源身份验证。有关更多信息,请参阅 为 SiteWise Edge 配置数据源身份验证

如果您在 identityProvider 中为 type 选择 Username,则此字段为必填字段。

nodeFilterRules

此列表中的每个结构都必须包含以下信息:

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仅适用于经典直播、V2 网关

流的名称。流名称应该唯一。

streamBufferSize仅适用于经典直播、V2 网关

流的缓冲区大小。这对于管理来自 OPC UA 源的数据流非常重要。

propertyGroups

(可选)定义协议要求的 deadbandscanMode 的属性组列表。

name

属性组的名称。这应该是一个唯一的标识符。

deadband

deadband 值定义了在将数据发送到云端之前数据点的值必须发生的最小变化。它包含以下信息:

type

支持的死区类型。可以选择以下选项:

  • ABSOLUTE — 一个固定值,它指定了将数据点视为足够重要以发送到云端所需的最小绝对变化。

  • PERCENT — 一个动态值,它以占上次发送的数据点值的百分比形式指定所需的最小变化。当数据值随时间变化显著时,这种类型的死区非常有用。

value

死区值。如果 typeABSOLUTE,则此值为无单位的双精度。如果 typePERCENT,则此值是 1100 之间的双精度。

eguMin

(可选)使用 PERCENT 死区时的工程单位最小值。如果 OPC UA 服务器未配置工程单元,则可以设置此项。

eguMax

(可选)使用 PERCENT 死区时的工程单位最大值。如果 OPC UA 服务器未配置工程单元,则可以设置此项。

timeoutMilliseconds

超时前的持续时间,以毫秒为单位。最少为 100

scanMode

scanMode 结构包含以下信息:

type

支持的 scanMode 类型。接受的值为:POLLEXCEPTION

rate

扫描模式的采样间隔。

timestampToReturn

时间戳的来源。可以选择以下选项:

  • SOURCE_TIME — 使用设备上的时间戳。

  • SERVER_TIME — 使用服务器上的时间戳。

注意

TimestampToReturn与 2.5.0 或更高版本的 IoT SiteWise OPC UA 收集器组件一起使用。如果您在早期版本中使用此功能,则配置更新会失败。有关更多信息,请参阅 更新 Amazon IoT SiteWise 组件的版本

nodeFilterRuleDefinitions

(可选)包含在属性组中的节点路径列表。属性组不能重叠。如果您不为此字段指定值,则该组包含根目录下的所有路径,且您无法创建其他属性组。nodeFilterRuleDefinitions 结构包含以下信息:

type

OpcUaRootPath 是唯一支持的类型。这指定 rootPath 值是相对于 OPC UA 浏览空间根目录的路径。

rootPath

以逗号分隔的列表,用于指定要包含在属性组中的路径(相对于根路径)。

经典流、V2 网关的其他功能配置示例 ()Amazon 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 源配置

针对 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 源配置

针对 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": "" } ] }