OPC-UA ソースの設定 (CLI)。 - AWS IoT SiteWise

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OPC-UA ソースの設定 (CLI)。

を使用して SiteWise Edge ゲートウェイの OPC-UA データソースを定義できます AWS CLI。これを行うには、OPC-UA 機能設定 JSON ファイルを作成し、 update-gateway-capability-configuration コマンドを使用して SiteWise Edge ゲートウェイ設定を更新します。すべての OPC-UA ソースを 1 つの機能構成で定義する必要があります。

この機能には次の名前空間があります。

  • 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" "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 }, "dataQuality": { "allowGoodQuality": true | false, "allowBadQuality": true | false, "allowUncertainQuality": true | false }, "subscription": { "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP", "queueSize": integer, "publishingIntervalMilliseconds": integer, "snapshotFrequencyMilliseconds": integer } } ] } ] }

リクエスト本文

ソース

OPC-UA ソース定義構造のリスト。それぞれに次の情報が含まれています。

name

ソースの一意のわかりやすい名前。

エンドポイント

次の情報を含むエンドポイント構造。

certificateTrust

次の情報を含む証明書信頼ポリシー構造。

type

ソースに対する証明書信頼モード。以下のうちのひとつを選択します。

  • TrustAny – SiteWise Edge ゲートウェイは、OPC-UA ソースに接続するときに証明書を信頼します。

  • X509 – SiteWise Edge ゲートウェイは、OPC-UA ソースに接続するときに X.509 証明書を信頼します。このオプションを選択する場合は、certificateTrustcertificateBody を定義する必要があります。certificateTrustcertificateChain を定義することもできます。

certificateBody

(オプション) X.509 証明書の本文。

このフィールドは、certificateTrusttypeX509 を選択する場合に必須です。

certificateChain

(オプション) X.509 証明書の信頼チェーン。

このフィールドは、certificateTrusttypeX509 を選択した場合のみ使用されます。

endpointUri

OPC-UA ソースのローカルエンドポイント。たとえば、ローカルエンドポイントは opc.tcp://203.0.113.0:49320 のようになります。

securityPolicy

OPC-UA のソースから読み込むメッセージを保護するために使用するセキュリティポリシーです。以下のうちのひとつを選択します。

  • NONE – SiteWise Edge ゲートウェイは、OPC-UA ソースからのメッセージを保護しません。別のセキュリティポリシーを選択することをお勧めします。このオプションを選択する場合は、messageSecurityModeNONE を選択する必要もあります。

  • BASIC256_SHA256 - Basic256Sha256のセキュリティポリシーです。

  • AES128_SHA256_RSAOAEP - Aes128_Sha256_RsaOaepのセキュリティポリシーです。

  • AES256_SHA256_RSAPSS - Aes256_Sha256_RsaPssのセキュリティポリシーです。

  • BASIC128_RSA15 - (非推奨) OPC-UA 仕様において、Basic128Rsa15 セキュリティポリシーは安全でないと判断されたため、非推奨とする。別のセキュリティポリシーを選択することをお勧めします。詳しくは、[Basic128Rsa15]をご覧ください。

  • BASIC256 - (非推奨) OPC-UA 仕様において、Basic256 セキュリティポリシーは安全でないと判断されたため、非推奨とする。別のセキュリティポリシーを選択することをお勧めします。詳しくは、[Basic256]をご覧ください。

重要

NONE 以外のセキュリティポリシーを選択した場合、messageSecurityModeSIGN または SIGN_AND_ENCRYPT を選択する必要があります。Edge SiteWise ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「OPC-UA ソースサーバーが SiteWise Edge ゲートウェイを信頼できるようにする」を参照してください。

messageSecurityMode

OPC-UA ソースへの接続を保護するために使用するメッセージセキュリティモード。以下のうちのひとつを選択します。

  • NONE – SiteWise Edge ゲートウェイは OPC-UA ソースへの接続を保護しません。他のメッセージセキュリティモードを選択することをお勧めします。このオプションを選択する場合は、securityPolicyNONE を選択する必要もあります。

  • SIGN – SiteWise Edge ゲートウェイと OPC-UA ソース間で転送中のデータは署名されていますが、暗号化されていません。

  • SIGN_AND_ENCRYPT - ゲートウェイと OPC-UA ソース間で転送中のデータは署名され、暗号化されます。

重要

メッセージセキュリティモードを NONE 以外を選択した場合、securityPolicyNONE以外を選択する必要があります。Edge SiteWise ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「OPC-UA ソースサーバーが SiteWise Edge ゲートウェイを信頼できるようにする」を参照してください。

identityProvider

次の情報を含む ID プロバイダ構造。

type

ソースで必要な認証資格情報のタイプ。以下のうちのひとつを選択します。

  • Anonymous - ソースは接続に認証を必要としません。

  • Username - ソースに接続するには、ユーザー名とパスワードが必要です。このオプションを選択する場合は、identityProviderusernameSecretArn を定義する必要があります。

usernameSecretArn

(オプション) AWS Secrets Manager シークレットの ARN。 SiteWise Edge ゲートウェイは、このソースに接続するときに、このシークレットの認証情報を使用します。シークレットをソース認証に使用するには、 SiteWise エッジゲートウェイの IoT SiteWise コネクタにシークレットをアタッチする必要があります。詳細については、「データソース認証の設定」を参照してください。

このフィールドは、identityProvidertypeUsername を選択する場合に必須です。

nodeFilterRules

AWS クラウドに送信する OPC-UA データストリームパスを定義するノードフィルタールール構造のリスト。ノードフィルターを使用すると、 でモデル化するデータへのパスのみを含めることで、 SiteWise エッジゲートウェイの起動時間と CPU 使用率を削減できます AWS IoT SiteWise。デフォルトでは、 SiteWise エッジゲートウェイは で始まるパスを除くすべての OPC-UA パスをアップロードします/Server/。OPC-UA ノードフィルターを定義するには、ノードパス、* および ** のワイルドカード文字を使用できます。詳細については、「OPC-UA ノードフィルターの使用」を参照してください。

リスト内の各構造には、次の情報が含まれている必要があります。

アクション

このノードフィルタルールのアクション。以下のオプションを選択できます。

  • INCLUDE – SiteWise Edge ゲートウェイには、このルールに一致するデータストリームのみが含まれます。

定義

次の情報を含むノードフィルタルール構造。

type

このルールのノードフィルタパスのタイプ。以下のオプションを選択できます。

  • OpcUaRootPath – SiteWise Edge ゲートウェイは、OPC-UA パス階層のルートに対してこのノードフィルターパスを評価します。

rootPath

OPC-UA パス階層のルートに対して評価するノードフィルタパス。このパスは / から始まる必要があります。

measurementDataStreamプレフィックス

ソースからのすべてのデータストリームの前に付加する文字列。 SiteWise Edge ゲートウェイは、このソースからのすべてのデータストリームにこのプレフィックスを追加します。データストリームのプレフィックスを使用して、異なるソースから同じ名前を持つデータストリームを区別します。各データストリームは、アカウント内で一意の名前を持つ必要があります。

propertyGroups

(オプション) プロトコルが要求する deadbandscanMode を定義するプロパティグループのリストです。

name

プロパティグループの名前です。これは一意な識別子である必要があります。

デッドバンド

次の情報を含む deadband 構造体。

type

対応するデッドバンドの種類。有効な値は、ABSOLUTE および PERCENT です。

value

デッドバンドの値。typeABSOLUTE のとき、この値は単位なしの 2 倍とななります。typePERCENT の場合、1100 の間の 2 倍の値となります。

eguMin

(オプション) PERCENT デッドバンドを使用する場合の工学単位の最小値。OPC-UA サーバに工学単位が設定されていない場合に設定します。

eguMax

(オプション) PERCENT デッドバンドを使用する場合の工学単位の最大値。OPC-UA サーバに工学単位が設定されていない場合に設定します。

timeoutMilliseconds

タイムアウトまでの時間をミリ秒単位で指定する。最小値は 100 です。

scanMode

次の情報を含む scanMode 構造体。

type

scanMode の対応型。有効な値は、POLL および EXCEPTION です。

レート

スキャンモードのサンプリング間隔。

nodeFilterRule定義

(オプション) プロパティグループに含めるノードパスのリスト。プロパティグループの重複があってはいけません。このフィールドに値を指定しなかった場合、グループにはルート下のすべてのパスが含まれ、追加のプロパティグループを作成することはできません。nodeFilterRuleDefinitions 構造体には、以下の情報が含まれています。

type

OpcUaRootPathは、サポートされている唯一のタイプです。これは、rootPathの値が OPC-UA ブラウジングスペースのルートからの相対パスであることの指定です。

rootPath

プロパティグループに含めるパス (ルートからの相対パス) を指定したカンマ区切りのリスト。

機能の設定例

次の例では、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/ で始まるものを除き、データストリームを除外します。

  • この「Wind Farm #2」と別のエリアの「Wind Farm #2」を区別するために、すべてのデータストリームパスの先頭に /Washington を追加します。

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