

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

# SiteWise Edge で OPC UA ソースを設定する
<a name="configure-opcua-source"></a>

 AWS IoT SiteWise コンソールまたは SiteWise Edge ゲートウェイ機能を使用して、ローカル OPC UA サーバーを表す OPC UA ソースを定義して SiteWise Edge ゲートウェイに追加できます。

**Topics**
+ [OPC UA ソースを設定する (コンソール)](#config-opcua-source-console)
+ [OPC UA ソースを設定する (AWS CLI)](#configure-opc-ua-source-cli)

## OPC UA ソースを設定する (コンソール)
<a name="config-opcua-source-console"></a>

コンソールを使用して、次の手順で OPC UA ソースを設定できます。

**注記**  
警告: TQVs重複すると、二重充電が発生する可能性があります。

**AWS IoT SiteWise コンソールを使用して OPC UA ソースを設定するには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. 左側のナビゲーションで、 **Edge セクションの Edge ゲートウェイ**を選択します。 ****

1. SiteWise Edge ゲートウェイを選択して、OPC UA ソースを追加します。

1. **[Add data source]** (データソースを追加する) を選択する。

1. ソースの名前を入力します。

1. データソースサーバーの [**Local endpoint (ローカルエンドポイント) **] を入力します。エンドポイントには、IP アドレスまたはホスト名を指定することができます。また、ローカルエンドポイントにポート番号を追加することもできます。例えば、ローカルエンドポイントは **opc.tcp://203.0.113.0:49320** のようになります。

1. (オプション) **[Node ID for selection]** (選択のためのノード ID) について、ノードフィルターを追加して、 AWS クラウドに取り込まれるデータストリームを制限します。デフォルトでは、SiteWise Edge ゲートウェイはサーバーのルートノードを使用して、すべてのデータストリームを取り込みます。ノードフィルターを使用して、 AWS IoT SiteWiseでモデル化するデータへのパスのみを含めることで、SiteWise Edge ゲートウェイの起動時間と CPU 使用率を減らすことができます。デフォルトでは、SiteWise Edge ゲートウェイは `/Server/` で始まるパスを除くすべての OPC UA パスをアップロードします。OPC UA ノードフィルターを定義するには、ノードパスと `*` および `**` のワイルドカード文字を使用できます。詳細については、「[SiteWise Edge で OPC UA ノードフィルターを使用する](opc-ua-node-filters.md)」を参照してください。

1. **送信先は**、MQTT 対応、V3 ゲートウェイ、Classic ストリーム、V2 ゲートウェイによって異なります。
   + **クラシックストリーム、V2 ゲートウェイの送信先**は、ソースと 1:1 の関係にあります。各ソースは、特定の送信先にデータを送信します。
   + **MQTT 対応の V3 ゲートウェイの送信先は、**ハブアンドスポークモデルにより、異なるゲートウェイ間で複数のデータソースの設定と管理を一元化できるため、個別に設定されます。V3 ゲートウェイで送信先を設定するには、「」を参照してください[AWS IoT SiteWise Edge の送信先を理解する](gw-destinations.md#source-destination)。

------
#### [ Classic steams, V2 gateway destinations ]
   + **AWS IoT SiteWise リアルタイム** – これを選択して、データをストレージに直接送信します AWS IoT SiteWise 。エッジでデータをリアルタイムで取り込み、モニタリングします。
   + **AWS IoT SiteWise Amazon S3 を使用してバッファリング** – Parquet 形式でデータを Amazon S3 に送信し、ストレージに AWS IoT SiteWise インポートします。データをバッチで取り込み、履歴データを費用対効果の高い方法で保存するには、このオプションを選択します。任意の Amazon S3 バケットの場所と、Amazon S3 にデータをアップロードする頻度を設定できます。 AWS IoT SiteWiseへの取り込み後にデータを処理する方法を選択することもできます。 AWS IoT SiteWise と Amazon S3 の両方でデータを使用できるようにするか、インポート後に Amazon S3 からデータを自動的に削除するかを選択できます AWS IoT SiteWise。
     + Amazon S3 バケットはステージングおよびバッファリングメカニズムであり、Parquet 形式のファイルをサポートしています。
     + チェックボックスをオンにすると、**データをストレージに AWS IoT SiteWise インポート**すると、データは最初に Amazon S3 にアップロードされ、次に AWS IoT SiteWise ストレージにアップロードされます。
       + **[Amazon S3 からデータを削除する]** チェックボックスをオンにすると、データは SiteWise ストレージにインポートされた後、Amazon S3 から削除されます。
       + **[Amazon S3 からデータを削除する]** チェックボックスをオンにした場合、データは Amazon S3 と SiteWise ストレージの両方に保存されます。
     + **[ AWS IoT SiteWise ストレージにデータをインポートする]** チェックボックスをオフにした場合、データは Amazon S3 にのみ保存されます。SiteWise ストレージにはインポートされません。

      AWS IoT SiteWise が提供するさまざまなストレージオプションの詳細については、「[データストレージを管理する](manage-data-storage.md)」を参照してください。料金の詳細については、「[AWS IoT SiteWise の料金](https://aws.amazon.com/iot-sitewise/pricing/)」を参照してください。

      
   + **AWS IoT Greengrass ストリームマネージャー** – AWS IoT Greengrass ストリームマネージャーを使用して、 のチャネル AWS IoT Analytics、Amazon Kinesis Data Streams のストリーム、 のアセットプロパティ AWS IoT SiteWise、Amazon Simple Storage Service (Amazon S3) のオブジェクトなどの AWS クラウド宛先にデータを送信します。詳細については、「 *AWS IoT Greengrass Version 2 デベロッパーガイド*」の[AWS IoT Greengrass 「 Core でデータストリームを管理する](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html)」を参照してください。

      AWS IoT Greengrass ストリームの名前を入力します。

------
#### [ MQTT-enabled, V3 gateway destinations ]

   1. 関連する送信先の追加については、[AWS IoT SiteWise Edge 用の MQTT 対応 V3 ゲートウェイ](mqtt-enabled-v3-gateway.md)「」を参照してください。

   1. ソースの送信先を追加したら、この手順に戻ります。

------

1. **[高度な設定]** ペインで、以下のことができます。

   1. ソースサーバーと SiteWise Edge ゲートウェイ間の接続と転送中のデータについて **[メッセージのセキュリティモード]** を選択します。このフィールドは、OPC UA セキュリティポリシーとメッセージセキュリティモードの組み合わせです。OPC UA サーバーに指定したセキュリティポリシーとメッセージセキュリティモードと同じものを選択します。

   1. ソースが認証を必要とする場合、**[Authentication configuration]** (認証設定) リストから AWS Secrets Manager シークレットを選択します。SiteWise Edge ゲートウェイは、このデータソースに接続するときに、このシークレットの認証情報を使用します。シークレットをデータソース認証に使用するには、SiteWise Edge ゲートウェイの AWS IoT Greengrass コンポーネントにシークレットをアタッチする必要があります。詳細については、「[SiteWise Edge のデータソース認証を設定する](configure-source-authentication-ggv2.md)」を参照してください。
**ヒント**  
データサーバーに、[**Allow anonymous login (匿名ログインを許可) **] というオプションがある場合があります。このオプションが [**はい**] の場合、ソースは認証を必要としません。

   1. (オプション) **[データストリームのプレフィックスをアクティブ化 - *オプション*]** を選択して、データストリームプレフィックスをアクティブ化できます。

      1. (オプション) **[データストリームのプレフィックス]** を入力します。SiteWise Edge ゲートウェイは、このプレフィックスをこのソースからのすべてのデータストリームに追加します。データストリームのプレフィックスを使用して、異なるソースから同じ名前を持つデータストリームを区別します。各データストリームは、アカウント内で一意の名前を持つ必要があります。

   1. (オプション) **[データ型変換]** オプションを選択して、サポートされていない OPC UA データ型を文字列に変換してから AWS IoT SiteWiseに取り込みます。単純なデータ型を持つ配列値を JSON 文字列に変換し、DateTime データ型を ISO 8601 文字列に変換します。詳細については、「[サポートされていないデータ型の変換](string-conversion.md)」を参照してください。

   1. ユーザー定義のプロパティグループに含まれていないノードの**デフォルトデータ変更トリガー**を選択します。デフォルトのデータ変更トリガーは、OPC UA サーバーが更新された値をゲートウェイに送信するタイミングを決定します。次のオプションのいずれかを選択します。
      + **ステータス** – ステータスが変更された場合にのみデータを受信します。
      + **StatusValue** – ステータスまたは値が変更されたときにデータを受信します。
      + **StatusValueTimestamp** – ステータス、値、またはタイムスタンプが変更されたときにデータを受信します。

   1. (オプション) MQTT 対応の V3 ゲートウェイでは、**検出設定**を使用して OPC UA ノード検出プロセスを設定できます。検出設定は、これらのオプションの以前の設定オーバーライドファイルシステムを、ゲートウェイを再起動することなく動的に更新するコンソールベースの設定に置き換えます。
**注記**  
**デフォルトのデータ変更トリガー**には、バージョン 3.1.0 以降の IoT SiteWise OPC UA コレクターコンポーネントが必要です。詳細については、「[AWS IoT SiteWise コンポーネントのバージョンを更新する](manage-gateways-ggv2.md#update-component-version)」を参照してください。

      1. **最大同時参照リクエスト数**には、OPC UA サーバーが同時に処理できる参照リクエストの最大数を入力します。データソースごとに最大 500 件の同時参照リクエストを設定できます。

      1. **参照リクエストあたりの最大ノード数**には、OPC UA サーバーへの各参照リクエストで送信するノードの最大数を入力します。参照リクエストごとに最大 1,000 個のノードを送信できます。

      1. **ノードツリーループを回避**を選択して、OPC UA サーバーの構造を参照するときにゲートウェイが循環参照で停止しないようにします。選択すると、ゲートウェイは訪問した場所を追跡し、サーバーノードが循環パターンで相互を参照するときに発生する可能性のある無限ループを回避します。

      1. **ノードトラバーサルを有効にする** を選択して、ゲートウェイが OPC UA サーバーの完全な構造を調べ、機器とデバイスから利用可能なすべてのデータポイントを検出できるようにします。選択すると、ゲートウェイはルートレベルを超えて機器のデータ組織内を移動し、すべてのセンサー、コントロール、測定ポイントを自動的に検出します。

      1. **「定期的な検出を有効にする**」を選択して、定期的に検出オペレーションを自動的に実行し、OPC UA サーバーの構造の変更を検出します。選択すると、ゲートウェイは新しく追加された機器またはデータポイントを継続的にモニタリングし、それらが自動的に検出され、データ収集に使用できるようにします。

         1. **定期的な検出間隔**には、定期的な検出の実行時に自動検出オペレーションの時間間隔を設定します。最小定期検出間隔は 30 秒、最大検出間隔は 30 日です。

         1. **間隔ごとに検出される最大ノード**数には、検出間隔ごとに検出されるノードの最大数を設定します。これにより、検出オペレーション中にゲートウェイと OPC UA サーバーの両方の負荷を制御できます。

   1. (オプション) **[プロパティグループ]** として、**[新しいグループを追加]** を選択します。

      1. プロパティグループの「**名前**」を入力します。

      1. **[Properties]** (プロパティ) の場合。

         1. (オプション) **[ノードパス]** については、OPC UA ノードフィルタを追加して、 AWS IoT SiteWiseにアップロードされる OPC UA パスを制限します。形式は、**[選択できるノード ID]** と同様です。

      1. **[Group settings]** (グループ設定) については、次のようにします。

         1. **データ品質設定**で、 AWS IoT SiteWise コレクターが取り込むデータ品質のタイプを選択します。

         1. **[スキャンモードの設定]** については、**[スキャンモード]** を使用して標準のサブスクリプションプロパティを設定します。**[サブスクライブ]** または **[ポーリング]** を選択できます。スキャンモードの詳細については、 [OPC UA でデータインジェスト範囲をフィルタリングする](opcua-data-acquisition.md) を参照してください。

------
#### [ Subscribe ]

**すべてのデータポイントを送信するには**

            1. **[サブスクライブ]** を選択し、以下を設定します。

               1. **[データ変更トリガー](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.2/)** - データ変更アラートを開始する条件。

               1. **[サブスクリプションキューサイズ](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.16/)** – モニタリング対象項目の通知がキューに入れられる特定のメトリクスの OPC UA サーバーのキューの深さ。

               1. **[サブスクリプションパブリッシュ間隔](https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.2/)** - サブスクリプションの作成時に指定されたパブリッシュサイクルの間隔 (ミリ秒単位)。

               1. **スナップショット間隔 - *オプション*** – AWS IoT SiteWise Edge が安定したデータストリームを取り込むようにするためのスナップショット頻度タイムアウト設定。

               1. **スキャンレート** – SiteWise Edge ゲートウェイが registers を読み取るレート。 はSiteWise Edge ゲートウェイの最小許容スキャンレート AWS IoT SiteWise を自動的に計算します。

               1. **[タイムスタンプ]** – OPC UA データポイントに含めるタイムスタンプ。サーバーのタイムスタンプまたはデバイスのタイムスタンプを使用できます。
**注記**  
IoT SiteWise OPC UA コレクターコンポーネントのバージョン 2.5.0 以降を使用します。以前のバージョンでタイムスタンプ機能を使用すると、設定の更新は失敗します。詳細については、「[AWS IoT SiteWise コンポーネントのバージョンを更新する](manage-gateways-ggv2.md#update-component-version)」を参照してください。

            1. **[デッドバンド設定]** で、**[デッドバンドタイプ]** を設定します。デッドバンドタイプは AWS IoT SiteWise、ソースが送信するデータと破棄するデータを制御します。デッドバンド設定の詳細は、[OPC UA でデータインジェスト範囲をフィルタリングする](opcua-data-acquisition.md) を参照してください。
               + **[なし]** – 関連付けられたサーバーは、このプロパティグループのすべてのデータポイントを送信します。
               + **[パーセンテージ]** — 関連付けられたサーバーは、データの範囲の指定されたパーセンテージから外れたデータのみを送信します。この範囲は、ノードごとに定義されたエンジニアリングユニットの最小値と最大値に基づいてサーバーによって計算されます。サーバーがデッドバンドの割合をサポートしていない場合、または定義されたエンジニアリングユニットがない場合、ゲートウェイは以下に記載されている最小値と最大値を使用して範囲を計算します。
               + **[絶対値]** – 関連付けられたサーバーは、特定の範囲外のデータのみを送信します。

               1. **[デッドバンド値]** をデータ範囲のパーセンテージとしてデッドバンドに設定します。

               1. (オプション) **[最小範囲 - *オプション*]** と **[最大範囲 - *オプション*]** を使用して、デッドバンド範囲の最小値と最大値を指定します。

------
#### [ Poll ]

**特定の間隔でデータポイントを送信するには**
            + **[ポーリング]** を選択し、以下を設定します。

              1. **スキャンレート** – SiteWise Edge ゲートウェイが registers を読み取るレート。 はSiteWise Edge ゲートウェイの最小許容スキャンレート AWS IoT SiteWise を自動的に計算します。

              1. **[タイムスタンプ]** – OPC UA データポイントに含めるタイムスタンプ。サーバーのタイムスタンプまたはデバイスのタイムスタンプを使用できます。
**注記**  
IoT SiteWise OPC UA コレクターコンポーネントのバージョン 3.1.0 以降を使用します。以前のバージョンでタイムスタンプ機能を使用すると、設定の更新は失敗します。詳細については、「[AWS IoT SiteWise コンポーネントのバージョンを更新する](manage-gateways-ggv2.md#update-component-version)」を参照してください。

**注記**  
**[デッドバンド設定]** は、**[スキャンモード設定]** で **[サブスクライブ]** を選択した場合に適用されます。

------

1. **[保存]** を選択します。

## OPC UA ソースを設定する (AWS CLI)
<a name="configure-opc-ua-source-cli"></a>

 AWS CLIを使用して、SiteWise Edge ゲートウェイの OPC UA データソースを定義できます。これを行うには、OPC UA 機能設定 JSON ファイルを作成し、[update-gateway-capability-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotsitewise/update-gateway-capability-configuration.html#) コマンドを使用して SiteWise Edge ゲートウェイ設定を更新します。すべての OPC UA ソースを 1 つの機能構成で定義する必要があります。

------
#### [ 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"
        }           
      },
      "defaultPropertyGroupConfig": {
        "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP"
      },
      "discoveryConfig": {
        "enableNodeTraversal": true | false,
        "avoidNodeTreeLoops": true | false,
        "maxConcurrentBrowseRequests": integer,
        "maxNodesPerBrowseRequest": integer,
        "periodicDiscovery": {
          "interval": "string",
          "maxNodesDiscoveredPerInterval": 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
          }  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ 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
          }  
        }  
      ]  
    }  
  ]  
}
```

------

### リクエストボディ
<a name="opcua-request-body"></a>

`sources`  
OPC UA ソース定義構造のリスト。それぞれに以下の情報が含まれています。    
`name`  
ソースの一意のわかりやすい名前。  
`endpoint`  
次の情報を含むエンドポイント構造。    
`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` - (非推奨) `Basic128Rsa15` セキュリティポリシーは、安全とはみなされなくなったため、非推奨とされます。別のセキュリティポリシーを選択することをお勧めします。詳細については、[「プロファイル SecurityPolicy – Basic128Rsa15](https://profiles.opcfoundation.org/profile/1532)」を参照してください。
+ `BASIC256` - (非推奨) `Basic256` セキュリティポリシーは、安全とはみなされなくなったため、非推奨とされます。別のセキュリティポリシーを選択することをお勧めします。詳細については、[SecurityPolicy – Basic256](https://profiles.opcfoundation.org/profile/1536)」を参照してください。
`NONE` 以外のセキュリティポリシーを選択した場合、`messageSecurityMode` は `SIGN` または `SIGN_AND_ENCRYPT` を選択する必要があります。また、SiteWise Edge ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「[AWS IoT SiteWise Edge ゲートウェイを信頼するように OPC UA サーバーを設定する](enable-source-trust.md)」を参照してください。  
`messageSecurityMode`  
OPC UA ソースへの接続を保護するために使用するメッセージセキュリティモード。次のいずれかを選択します。  
+ `NONE` - SiteWise Edge ゲートウェイは OPC UA ソースへの接続をセキュリティ保護しません。他のメッセージセキュリティモードを選択することをお勧めします。このオプションを選択する場合は、`securityPolicy` に `NONE` を選択する必要もあります。
+ `SIGN` - SiteWise Edge ゲートウェイと OPC UA ソース間で転送されるデータは署名されますが、暗号化されません。
+ `SIGN_AND_ENCRYPT` - ゲートウェイと OPC UA ソース間で転送されるデータは署名され、暗号化されます。
メッセージセキュリティモードを `NONE` 以外を選択した場合、`securityPolicy` は `NONE`以外を選択する必要があります。また、SiteWise Edge ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「[AWS IoT SiteWise Edge ゲートウェイを信頼するように OPC UA サーバーを設定する](enable-source-trust.md)」を参照してください。  
`identityProvider`  
次の情報を含む ID プロバイダ構造。    
`type`  
ソースで必要な認証資格情報のタイプ。次のいずれかを選択します。  
+ `Anonymous` - ソースは接続に認証を必要としません。
+ `Username` - ソースに接続するには、ユーザー名とパスワードが必要です。このオプションを選択する場合は、`identityProvider` で `usernameSecretArn` を定義する必要があります。  
`usernameSecretArn`  
(オプション) AWS Secrets Manager シークレットの ARN。SiteWise Edge ゲートウェイは、このソースに接続するとき、このシークレットの認証情報を使用します。ソース認証に使用するには、シークレットを SiteWise Edge ゲートウェイの IoT SiteWise コネクタにアタッチする必要があります。詳細については、「[SiteWise Edge のデータソース認証を設定する](configure-source-authentication-ggv2.md)」を参照してください。  
このフィールドは、`identityProvider` で `type` に `Username` を選択する場合に必須です。  
`nodeFilterRules`  
 AWS クラウドに送信する OPC UA データストリームパスを定義するノードフィルタールール構造のリスト。ノードフィルターを使用して、 AWS IoT SiteWiseでモデル化するデータへのパスのみを含めることで、SiteWise Edge ゲートウェイの起動時間と CPU 使用率を減らすことができます。デフォルトでは、SiteWise Edge ゲートウェイは `/Server/` で始まるパスを除くすべての OPC UA パスをアップロードします。OPC UA ノードフィルターを定義するには、ノードパスと `*` および `**` のワイルドカード文字を使用できます。詳細については、「[SiteWise Edge で OPC UA ノードフィルターを使用する](opc-ua-node-filters.md)」を参照してください。  
リスト内の各構造には、次の情報が含まれている必要があります。    
`action`  
このノードフィルタルールのアクション。以下のオプションを選択できます。  
+ `INCLUDE` - SiteWise Edge ゲートウェイには、このルールに一致するデータストリームのみが含まれます。  
`definition`  
次の情報を含むノードフィルタルール構造。    
`type`  
このルールのノードフィルタパスのタイプ。以下のオプションを選択できます。  
+ `OpcUaRootPath` - SiteWise Edge ゲートウェイは、OPC UA パス階層のルートに対して、このノードフィルターパスを評価します。  
`rootPath`  
OPC UA パス階層のルートに対して評価するノードフィルターパス。このパスは `/` から始まる必要があります。  
`measurementDataStreamPrefix`  
ソースからのすべてのデータストリームの前に付加する文字列。SiteWise Edge ゲートウェイは、このプレフィックスをこのソースからのすべてのデータストリームに追加します。データストリームのプレフィックスを使用して、異なるソースから同じ名前を持つデータストリームを区別します。各データストリームは、アカウント内で一意の名前を持つ必要があります。  
`typeConversions`  
サポートされていない OPC UA データ型で使用できる変換のタイプ。各データ型は文字列に変換されます。詳細については、「[サポートされていないデータ型の変換](string-conversion.md)」を参照してください。    
`array`  
文字列に変換される単純な配列データ型。以下のオプションを選択できます。  
+ `JsonArray` – 単純な配列データ型を文字列に変換することを選択することを示します。  
`datetime`  
文字列に変換される DateTime データ型。以下のオプションを選択できます。  
+ `ISO8601String` – ISO 8601 データ型を文字列に変換することを選択することを示します。  
`destination`  
OPC UA タグの送信先の設定。クラシックストリーム、v2 および MQTT 対応、V3 ゲートウェイでは、送信先の設定が異なります。    
`type`  
デスティネーションの型。  
`streamName` — *Classic ストリーム、V2 ゲートウェイのみ*  
 ストリームの名前。ストリーム名は一意である必要があります。  
`streamBufferSize` — *Classic ストリーム、V2 ゲートウェイのみ*  
ストリームのバッファサイズ。これは、OPC UA ソースからのデータフローを管理するために重要です。  
`defaultPropertyGroupConfig` – *MQTT 対応、V3 ゲートウェイのみ*  
(オプション) デフォルトのプロパティグループの設定。デフォルトのプロパティグループには、ユーザー定義のプロパティグループに含まれていないすべてのノードが含まれます。    
`dataChangeTrigger`  
デフォルトのプロパティグループで使用するデフォルトのデータ変更トリガー。有効な値は `STATUS_VALUE_TIMESTAMP`、`STATUS_VALUE`、または `STATUS` です。
`defaultPropertyGroupConfig` には、IoT SiteWise OPC UA コレクターコンポーネントのバージョン 3.1.0 以降が必要です。詳細については、「[AWS IoT SiteWise コンポーネントのバージョンを更新する](manage-gateways-ggv2.md#update-component-version)」を参照してください。  
`discoveryConfig` – *MQTT 対応、V3 ゲートウェイのみ*  
(オプション) OPC UA ノード検出プロセスの設定。    
`enableNodeTraversal`  
データソースのノードフィルターで定義されたルートノードの子ノードを引き続き通過するかどうかを指定します。に設定すると`false`、検出はルートノードで停止します。  
`avoidNodeTreeLoops`  
OPC UA ノードブラウジングプロセス中に無限ループを回避するかどうかを指定します。に設定すると`true`、ゲートウェイはアクセスされたノードを追跡して、循環参照を防止します。  
`maxConcurrentBrowseRequests`  
OPC UA サーバーが同時に処理できる同時参照リクエストの最大数。有効な範囲は 1～500 です。  
`maxNodesPerBrowseRequest`  
OPC UA サーバーへの各参照リクエストで送信するノードの最大数。有効な範囲は 1～1,000 です。  
`periodicDiscovery`  
定期的に一定の間隔で検出を実行するための設定。この設定を指定すると、定期的な検出が有効になります。    
`interval`  
定期的な検出オペレーション間の時間。を `m`分、 `h` を 時間、 `d`を 日間使用できます。例えば、`90m`、`1h` です。最小間隔は 30 秒です。  
`maxNodesDiscoveredPerInterval`  
検出間隔ごとに検出する必要があるノードの最大数。これにより、ゲートウェイと OPC UA サーバーの両方の負荷を制御できます。
`periodicDiscovery` には、IoT SiteWise OPC UA コレクターコンポーネントのバージョン 3.1.0 以降が必要です。詳細については、「[AWS IoT SiteWise コンポーネントのバージョンを更新する](manage-gateways-ggv2.md#update-component-version)」を参照してください。
検出が無限にループする場合は、 を有効にします`avoidNodeTreeLoops`。`aws.iot.SiteWiseOpcUaCollector` コンポーネントの CloudWatch Logs で検出の進行状況をモニタリングします。

`propertyGroups`  
(オプション) プロトコルが要求する `deadband` と `scanMode` を定義するプロパティグループのリストです。    
`name`  
プロパティグループの名前です。これは一意な識別子である必要があります。  
`deadband`  
`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` です。  
`rate`  
スキャンモードのサンプリング間隔。  
`timestampToReturn`  
タイムスタンプのソース。以下のオプションを選択できます。  
+ `SOURCE_TIME` – デバイスからのタイムスタンプを使用します。
+ `SERVER_TIME` – サーバーからのタイムスタンプを使用します。
IoT SiteWise OPC UA コレクターコンポーネントのバージョン 2.5.0 以降`TimestampToReturn`で を使用します。以前のバージョンでこの機能を使用すると、設定の更新は失敗します。詳細については、「[AWS IoT SiteWise コンポーネントのバージョンを更新する](manage-gateways-ggv2.md#update-component-version)」を参照してください。  
`nodeFilterRuleDefinitions`  
(オプション) プロパティグループに含めるノードパスのリスト。プロパティグループの重複があってはいけません。このフィールドに値を指定しなかった場合、グループにはルート下のすべてのパスが含まれ、追加のプロパティグループを作成することはできません。`nodeFilterRuleDefinitions` 構造体には、以下の情報が含まれています。    
`type`  
`OpcUaRootPath`は、サポートされている唯一のタイプです。これは、`rootPath` の値が OPC UA ブラウジングスペースのルートからの相対パスであることを指定します。  
`rootPath`  
プロパティグループに含めるパス (ルートからの相対パス) を指定したカンマ区切りのリスト。

### Classic ストリーム、V2 ゲートウェイの追加機能設定の例 (AWS CLI)
<a name="opc-ua-source-example-cli"></a>

次の例は、JSON ファイルに保存されているペイロードから OPC UA SiteWise Edge ゲートウェイの機能設定を定義します。

```
aws iotsitewise update-gateway-capability-configuration \
--capability-namespace "iotsitewise:opcuacollector:2" \
--capability-configuration file://opc-ua-configuration.json
```

**Example : 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": ""
        }
    ]
}
```

**Example : プロパティグループが定義された 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
                     }
                 }
             ]
        }
    ]
}
```

**Example : OPC UA プロパティ付きソース構成**  
次の `opc-ua-configuration.json` の JSON 例は、次のプロパティを持つ OPC UA ソース設定を定義しています。  
+ すべての証明書を信頼します。
+ メッセージの保護に `BASIC256` セキュリティポリシーを使用します。
+ `SIGN_AND_ENCRYPT` モードを使用して接続をセキュリティ保護します。
+ Secrets Manager シークレットに保存されている認証資格情報を使用します。
+ パスが `/WindFarm/2/WindTurbine/` で始まるものを除き、データストリームを除外します。
+ この「Wind Farm \$12」と別のエリアの「Wind Farm \$12」を区別するために、すべてのデータストリームパスの先頭に `/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"
        }
    ]
}
```

**Example : 証明書の信頼による 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": ""
              
        }
    ]
}
```