翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OPC-UA ソースの設定 (CLI)。
Edge ゲートウェイの OPC-UA SiteWise データソースは、 を使用して定義できます AWS CLI。これを行うには、OPC-UA 機能設定 JSON ファイルを作成し、 update-gateway-capability-configuration
この機能には次の名前空間があります。
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 証明書を信頼します。このオプションを選択する場合は、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_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
以外のセキュリティポリシーを選択した場合、messageSecurityMode
はSIGN
またはSIGN_AND_ENCRYPT
を選択する必要があります。Edge SiteWise ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「OPC-UA ソースサーバーが SiteWise Edge ゲートウェイを信頼できるようにする」を参照してください。 -
- メッセージSecurityMode
-
OPC-UA ソースへの接続を保護するために使用するメッセージセキュリティモード。以下のうちのひとつを選択します。
-
NONE
– SiteWise Edge ゲートウェイは OPC-UA ソースへの接続を保護しません。他のメッセージセキュリティモードを選択することをお勧めします。このオプションを選択する場合は、securityPolicy
にNONE
を選択する必要もあります。 -
SIGN
– SiteWise Edge ゲートウェイと OPC-UA ソース間で転送中のデータは署名されていますが、暗号化されていません。 -
SIGN_AND_ENCRYPT
- ゲートウェイと OPC-UA ソース間で転送中のデータは署名され、暗号化されます。
重要
メッセージセキュリティモードを
NONE
以外を選択した場合、securityPolicy
はNONE
以外を選択する必要があります。Edge SiteWise ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「OPC-UA ソースサーバーが SiteWise Edge ゲートウェイを信頼できるようにする」を参照してください。 -
- identityProvider
-
次の情報を含む ID プロバイダ構造。
- type
-
ソースで必要な認証資格情報のタイプ。以下のうちのひとつを選択します。
-
Anonymous
- ソースは接続に認証を必要としません。 -
Username
- ソースに接続するには、ユーザー名とパスワードが必要です。このオプションを選択する場合は、identityProvider
でusernameSecretArn
を定義する必要があります。
-
- ユーザー名SecretArn
-
(オプション) AWS Secrets Manager シークレットの ARN。 SiteWise Edge ゲートウェイは、このソースに接続するときに、このシークレットの認証情報を使用します。シークレットをソース認証に使用するには、 SiteWise エッジゲートウェイの IoT SiteWise コネクタにシークレットをアタッチする必要があります。詳細については、「データソース認証の設定」を参照してください。
このフィールドは、
identityProvider
でtype
にUsername
を選択する場合に必須です。
- ノードFilterRules
-
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 パス階層のルートに対して評価するノードフィルタパス。このパスは
/
から始まる必要があります。
- 測定DataStreamプレフィックス
-
ソースからのすべてのデータストリームの前に付加する文字列。 SiteWise Edge ゲートウェイは、このソースからのすべてのデータストリームにこのプレフィックスを追加します。データストリームのプレフィックスを使用して、異なるソースから同じ名前を持つデータストリームを区別します。各データストリームは、アカウント内で一意の名前を持つ必要があります。
- propertyGroups
-
(オプション) プロトコルが要求する
deadband
とscanMode
を定義するプロパティグループのリストです。- name
-
プロパティグループの名前です。これは一意な識別子である必要があります。
- デッドバンド
-
次の情報を含む
deadband
構造体。- type
-
対応するデッドバンドの種類。有効な値は、
ABSOLUTE
およびPERCENT
です。 - value
-
デッドバンドの値。
type
がABSOLUTE
のとき、この値は単位なしの 2 倍とななります。type
がPERCENT
の場合、1
と100
の間の 2 倍の値となります。 - eguMin
-
(オプション)
PERCENT
デッドバンドを使用する場合の工学単位の最小値。OPC-UA サーバに工学単位が設定されていない場合に設定します。 - eguMax
-
(オプション)
PERCENT
デッドバンドを使用する場合の工学単位の最大値。OPC-UA サーバに工学単位が設定されていない場合に設定します。 - timeoutMilliseconds
-
タイムアウトまでの時間をミリ秒単位で指定する。最小値は
100
です。
- scanMode
-
次の情報を含む
scanMode
構造体。- type
-
scanMode
の対応型。有効な値は、POLL
およびEXCEPTION
です。 - レート
-
スキャンモードのサンプリング間隔。
- ノードFilterRule定義
-
(オプション) プロパティグループに含めるノードパスのリスト。プロパティグループの重複があってはいけません。このフィールドに値を指定しなかった場合、グループにはルート下のすべてのパスが含まれ、追加のプロパティグループを作成することはできません。
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": "" } ] }