

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

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

# ServiceNow MetricBase 統合コネクタ
<a name="servicenow-connector"></a>

**警告**  <a name="connectors-extended-life-phase-warning"></a>
このコネクタは延長ライフサイクルフェーズに移行しており、 AWS IoT Greengrass では、機能、既存機能の拡張、セキュリティパッチ、バグ修正を提供するアップデートはリリースされません。詳細については、「[AWS IoT Greengrass Version 1 メンテナンスポリシー](maintenance-policy.md)」を参照してください。

ServiceNow MetricBase 統合[コネクタ](connectors.md)は、Greengrass デバイスから ServiceNow MetricBase に時系列メトリクスを発行します。これにより、Greengrass Core 環境からの時系列データを保存、分析、可視化して、ローカルイベントに対処できます。

このコネクタは、MQTT トピックに関する時系列データを受け取り、ServiceNow API に定期的に発行します。

このコネクタを使用して、以下のようなシナリオをサポートできます。
+ Greengrass デバイスから収集した時系列データに基づいて、しきい値ベースのアラートとアラームを作成する。
+ ServiceNow プラットフォームに構築されたカスタムアプリケーションで、Greengrass デバイスのタイムサービスデータを使用する。

このコネクタには、次のバージョンがあります。


| バージョン | ARN | 
| --- | --- | 
| 4 | `arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/4` | 
| 3 | `arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/3` | 
| 2 | `arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/2` | 
| 1 | `arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/1` | 

バージョンの変更については、「[Changelog](#servicenow-connector-changelog)」を参照してください。

## 要件
<a name="servicenow-connector-req"></a>

このコネクタには以下の要件があります。

------
#### [ Version 3 - 4 ]
+ <a name="conn-req-ggc-v1.9.3-secrets"></a>AWS IoT Greengrass Core ソフトウェア v1.9.3 以降。「シークレット[要件」で説明されているように、ローカルシークレット](secrets.md#secrets-reqs)をサポートするように設定 AWS IoT Greengrass する必要があります。
**注記**  
この要件には、Secrets Manager シークレットへのアクセス許可が含まれます。デフォルトの Greengrass サービスロールを使用している場合、Greengrass は *greengrass-* で始まる名前の付いたシークレット値にアクセスできます。
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) バージョン 3.7 または 3.8 が Core デバイスにインストールされ、PATH 環境変数に追加されている。
**注記**  <a name="use-runtime-py3.8"></a>
Python 3.8 を使用するには、次のコマンドを実行して、Python 3.7 のデフォルトのインストールフォルダからインストール済みの Python 3.8 バイナリへのシンボリックリンクを作成します。  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
これにより、 AWS IoT Greengrassの Python 要件を満たすようにデバイスが設定されます。
+ <a name="conn-servicenow-req-servicenow-account"></a>MetricBase へのサブスクリプションを有効化した ServiceNow アカウント。さらに、メトリクスとメトリクステーブルをアカウントに作成する必要があります。詳細については、ServiceNow ドキュメントの「[MetricBase](https://docs.servicenow.com/bundle/london-servicenow-platform/page/administer/metricbase/concept/metricbase.html)」を参照してください。
+ <a name="conn-servicenow-req-secret"></a>基本認証を使用して ServiceNow インスタンスにログインするためのユーザー名とパスワード AWS Secrets Manager を保存する のテキストタイプのシークレット。シークレットには、対応する値が設定された「user」と「password」キーが含まれている必要があります。詳細については、「AWS Secrets Manager ユーザーガイド」の「[Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」(基本的なシークレットの作成) を参照してください。
+ Secrets Manager シークレットを参照する Greengrass グループのシークレットリソース。詳細については、「[シークレットを AWS IoT Greengrass コアにデプロイする](secrets.md)」を参照してください。

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0-secrets"></a>AWS IoT Greengrass Core ソフトウェア v1.7 以降。「シークレット[要件」で説明されているように、ローカルシークレット](secrets.md#secrets-reqs)をサポートするように設定 AWS IoT Greengrass する必要があります。
**注記**  
この要件には、Secrets Manager シークレットへのアクセス許可が含まれます。デフォルトの Greengrass サービスロールを使用している場合、Greengrass は *greengrass-* で始まる名前の付いたシークレット値にアクセスできます。
+ [Python](https://www.python.org/) バージョン 2.7 が Core デバイスにインストールされ、PATH 環境変数に追加されている。
+ <a name="conn-servicenow-req-servicenow-account"></a>MetricBase へのサブスクリプションを有効化した ServiceNow アカウント。さらに、メトリクスとメトリクステーブルをアカウントに作成する必要があります。詳細については、ServiceNow ドキュメントの「[MetricBase](https://docs.servicenow.com/bundle/london-servicenow-platform/page/administer/metricbase/concept/metricbase.html)」を参照してください。
+ <a name="conn-servicenow-req-secret"></a>基本認証を使用して ServiceNow インスタンスにログインするためのユーザー名とパスワード AWS Secrets Manager を保存する のテキストタイプのシークレット。シークレットには、対応する値が設定された「user」と「password」キーが含まれている必要があります。詳細については、「AWS Secrets Manager ユーザーガイド」の「[Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」(基本的なシークレットの作成) を参照してください。
+ Secrets Manager シークレットを参照する Greengrass グループのシークレットリソース。詳細については、「[シークレットを AWS IoT Greengrass コアにデプロイする](secrets.md)」を参照してください。

------

## コネクタパラメータ
<a name="servicenow-connector-param"></a>

このコネクタには、以下のパラメータが用意されています。

------
#### [ Version 4 ]

`PublishInterval`  <a name="service-now-PublishInterval"></a>
ServiceNow への発行イベント間の最大待機秒数。最大値は 900 です。  
`PublishBatchSize` に達するか、`PublishInterval` が有効期限切れになると、コネクタは ServiceNow への発行を行います。  
 AWS IoT コンソールの表示名: **秒単位の発行間隔**  
必須: `true`  
型: `string`  
有効な値: `1 - 900`  
有効なパターン: `[1-9]|[1-9]\d|[1-9]\d\d|900`

`PublishBatchSize`  <a name="service-now-PublishBatchSize"></a>
ServiceNow への発行前にバッチにまとめることのできるメトリクス値の最大数。  
`PublishBatchSize` に達するか、`PublishInterval` が有効期限切れになると、コネクタは ServiceNow への発行を行います。  
 AWS IoT コンソールの表示名: **バッチサイズ**を発行する  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`InstanceName`  <a name="service-now-InstanceName"></a>
ServiceNow への接続に使用されるインスタンスの名前。  
 AWS IoT コンソールの表示名: **ServiceNow インスタンスの名前**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`DefaultTableName`  <a name="service-now-DefaultTableName"></a>
時系列 MetricBase データベースに関連付けられた `GlideRecord` を含むテーブルの名前。入力メッセージペイロードの `table` プロパティは、この値を上書きするために使用できます。  
 AWS IoT コンソールの表示名: **メトリクスを含むテーブルの名前**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`MaxMetricsToRetain`  <a name="service-now-MaxMetricsToRetain"></a>
新しいメトリクスに置き換えられるまでメモリに保存するメトリクスの最大数。  
この制限は、インターネットへの接続がなく、コネクタが後で発行するメトリクスをバッファし始めるときに適用されます。バッファが満杯になると、最も古いメトリクスが新しいメトリクスに置き換えられます。  
コネクタのホストプロセスが中断された場合、メトリクスは保存されません。例えば、この状況はグループデプロイ中またはデバイスの再起動時に発生する可能性があります。
この値は、バッチサイズより大きく、MQTT メッセージの受信率に基づいてメッセージを保持するのに十分な大きさであることが必要です。  
 AWS IoT コンソールの表示名: **メモリに保持する最大メトリクス**  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`AuthSecretArn`  <a name="service-now-AuthSecretArn"></a>
ServiceNow ユーザー名とパスワード AWS Secrets Manager を保存する のシークレット。これはテキスト形式のシークレットであることが必要です。シークレットには、対応する値が設定された「user」と「password」キーが含まれている必要があります。  
 AWS IoT コンソールの表示名: **認証シークレットの ARN**  
必須: `true`  
型: `string`  
有効なパターン: `arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+`

`AuthSecretArn-ResourceId`  <a name="service-now-AuthSecretArn-ResourceId"></a>
ServiceNow 認証情報の Secrets Manager シークレットを参照するグループのシークレットリソース。  
 AWS IoT コンソールの表示名: **認証トークンリソース**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`IsolationMode`  <a name="IsolationMode"></a>
このコネクタの[コンテナ化](connectors.md#connector-containerization)モード。デフォルトは です。つまり`GreengrassContainer`、コネクタは AWS IoT Greengrass コンテナ内の分離されたランタイム環境で実行されます。  
グループの既定のコンテナ化設定は、コネクタには適用されません。
 AWS IoT コンソールの表示名: **コンテナ分離モード**  
必須: `false`  
型: `string`  
有効な値: `GreengrassContainer` または `NoContainer`  
有効なパターン: `^NoContainer$|^GreengrassContainer$`

------
#### [ Version 1 - 3 ]

`PublishInterval`  <a name="service-now-PublishInterval"></a>
ServiceNow への発行イベント間の最大待機秒数。最大値は 900 です。  
`PublishBatchSize` に達するか、`PublishInterval` が有効期限切れになると、コネクタは ServiceNow への発行を行います。  
 AWS IoT コンソールの表示名: **秒単位の発行間隔**  
必須: `true`  
型: `string`  
有効な値: `1 - 900`  
有効なパターン: `[1-9]|[1-9]\d|[1-9]\d\d|900`

`PublishBatchSize`  <a name="service-now-PublishBatchSize"></a>
ServiceNow への発行前にバッチにまとめることのできるメトリクス値の最大数。  
`PublishBatchSize` に達するか、`PublishInterval` が有効期限切れになると、コネクタは ServiceNow への発行を行います。  
 AWS IoT コンソールの表示名: **バッチサイズ**を発行する  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`InstanceName`  <a name="service-now-InstanceName"></a>
ServiceNow への接続に使用されるインスタンスの名前。  
 AWS IoT コンソールの表示名: **ServiceNow インスタンスの名前**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`DefaultTableName`  <a name="service-now-DefaultTableName"></a>
時系列 MetricBase データベースに関連付けられた `GlideRecord` を含むテーブルの名前。入力メッセージペイロードの `table` プロパティは、この値を上書きするために使用できます。  
 AWS IoT コンソールの表示名: **メトリクスを含むテーブルの名前**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`MaxMetricsToRetain`  <a name="service-now-MaxMetricsToRetain"></a>
新しいメトリクスに置き換えられるまでメモリに保存するメトリクスの最大数。  
この制限は、インターネットへの接続がなく、コネクタが後で発行するメトリクスをバッファし始めるときに適用されます。バッファが満杯になると、最も古いメトリクスが新しいメトリクスに置き換えられます。  
コネクタのホストプロセスが中断された場合、メトリクスは保存されません。例えば、この状況はグループデプロイ中またはデバイスの再起動時に発生する可能性があります。
この値は、バッチサイズより大きく、MQTT メッセージの受信率に基づいてメッセージを保持するのに十分な大きさであることが必要です。  
 AWS IoT コンソールの表示名: **メモリに保持する最大メトリクス**  
必須: `true`  
型: `string`  
有効なパターン: `^[0-9]+$`

`AuthSecretArn`  <a name="service-now-AuthSecretArn"></a>
ServiceNow ユーザー名とパスワード AWS Secrets Manager を保存する のシークレット。これはテキスト形式のシークレットであることが必要です。シークレットには、対応する値が設定された「user」と「password」キーが含まれている必要があります。  
 AWS IoT コンソールの表示名: **認証シークレットの ARN**  
必須: `true`  
型: `string`  
有効なパターン: `arn:aws:secretsmanager:[a-z0-9\-]+:[0-9]{12}:secret:([a-zA-Z0-9\\]+/)*[a-zA-Z0-9/_+=,.@\-]+-[a-zA-Z0-9]+`

`AuthSecretArn-ResourceId`  <a name="service-now-AuthSecretArn-ResourceId"></a>
ServiceNow 認証情報の Secrets Manager シークレットを参照するグループのシークレットリソース。  
 AWS IoT コンソールの表示名: **認証トークンリソース**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

------

### サンプルコネクタを作成する (AWS CLI)
<a name="servicenow-connector-create"></a>

以下の CLI コマンドは、ServiceNow MetricBase 統合コネクタを含む初期バージョンで `ConnectorDefinition` を作成します。

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyServiceNowMetricBaseIntegrationConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/ServiceNowMetricBaseIntegration/versions/4",
            "Parameters": {
                "PublishInterval" : "10",
                "PublishBatchSize" : "50",
                "InstanceName" : "myinstance",
                "DefaultTableName" : "u_greengrass_app",
                "MaxMetricsToRetain" : "20000",
                "AuthSecretArn" : "arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash",
                "AuthSecretArn-ResourceId" : "MySecretResource", 
                "IsolationMode" : "GreengrassContainer"
            }
        }
    ]
}'
```

**注記**  
このコネクタの Lambda 関数には[存続期間の長い](lambda-functions.md#lambda-lifecycle)ライフサイクルがあります。

 AWS IoT Greengrass コンソールでは、グループのコネクタページから**コネクタ**を追加できます。詳細については、「[Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)」を参照してください。

## 入力データ
<a name="servicenow-connector-data-input"></a>

このコネクタは、MQTT トピックに関する時系列メトリクスを受け取り、それを ServiceNow に発行します。入力メッセージは JSON 形式である必要があります。

<a name="topic-filter"></a>**サブスクリプションのトピックフィルター**  
`servicenow/metricbase/metric`

**メッセージのプロパティ**    
`request`  
テーブル、レコード、メトリクスに関する情報。このリクエストは時系列 POST リクエストの `seriesRef` オブジェクトを表します。詳細については、「[Clotho Time Series API - POST](https://docs.servicenow.com/bundle/london-application-development/page/integrate/inbound-rest/concept/Clotho-Time-Series-API.html#clotho-POST-put)」を参照してください。  
  
必須: `true`  
型: 以下のプロパティを含む `object`。    
`subject`  
テーブル内の特定のレコードの `sys_id`。  
必須: `true`  
型: `string`  
`metric_name`  
メトリクスフィールドの名前。  
必須: `true`  
型: `string`  
`table`  
レコードを保存するテーブルの名前。`DefaultTableName` パラメータを無効にするには、この値を指定します。  
必須: `false`  
型: `string`  
`value`  
個々のデータポイントの値。  
必須: `true`  
型: `float`  
`timestamp`  
個々のデータポイントのタイムスタンプ。デフォルト値は現在の時刻です。  
必須: `false`  
型: `string`

**入力例**  

```
{
    "request": {
        "subject":"ef43c6d40a0a0b5700c77f9bf387afe3",
        "metric_name":"u_count",
        "table": "u_greengrass_app"
        "value": 1.0,
        "timestamp": "2018-10-14T10:30:00"
    }
}
```

## 出力データ
<a name="servicenow-connector-data-output"></a>

このコネクタは、MQTT トピックの出力データとしてステータス情報を発行します。

<a name="topic-filter"></a>**サブスクリプションのトピックフィルター**  
`servicenow/metricbase/metric/status`

**出力例: 成功**  

```
{
    "response": {
        "metric_name": "Errors",
        "table_name": "GliderProd",
        "processed_on": "2018-10-14T10:35:00",
        "response_id": "khjKSkj132qwr23fcba",
        "status": "success",
        "values": [
            {
                "timestamp": "2016-10-14T10:30:00",
                "value": 1.0
            },
            {
                "timestamp": "2016-10-14T10:31:00",
                "value": 1.1
            }
        ]
    }
}
```

**出力例: 失敗**  

```
{
    "response": {
        "error": "InvalidInputException",
        "error_message": "metric value is invalid",
        "status": "fail"
    }
}
```
コネクタが再試行可能なエラー (接続エラーなど) を検出した場合は、次のバッチ処理で再発行を試します。

## 使用例
<a name="servicenow-connector-usage"></a>

<a name="connectors-setup-intro"></a>コネクタの試用に利用できる Python 3.7 Lambda 関数の例を設定するには、次のステップ (概要) を使用します。

**注記**  <a name="connectors-setup-get-started-topics"></a>
他の Python ランタイムを使用する場合は、Python 3.x から Python 3.7 へのシンボリックリンクを作成します。
「[コネクタの使用を開始する (コンソール)](connectors-console.md)」および「[コネクタの使用を開始する (CLI)](connectors-cli.md)」トピックには、Twilio 通知コネクタの例を設定およびデプロイする方法を示す詳細なステップが含まれています。

1. コネクタの[要件](#servicenow-connector-req)を満たしていることを確認します。

1. <a name="connectors-setup-function"></a>入力データをコネクタに送信する Lambda 関数を作成して発行します。

   [サンプルコード](#servicenow-connector-usage-example)を PY ファイルとして保存します。<a name="connectors-setup-function-sdk"></a>[AWS IoT Greengrass Core SDK for Python](lambda-functions.md#lambda-sdks-core) をダウンロードして解凍します。次に、PY ファイルとルートレベルの `greengrasssdk` フォルダを含む zip パッケージを作成します。この zip パッケージは、 AWS Lambdaにアップロードするデプロイパッケージです。

   <a name="connectors-setup-function-publish"></a>Python 3.7 Lambda 関数を作成したら、関数バージョンを公開し、エイリアスを作成します。

1. Greengrass グループを設定します。

   1. <a name="connectors-setup-gg-function"></a>エイリアスで Lambda 関数を追加します (推奨)。Lambda ライフサイクルを長期間有効に (または CLI で `"Pinned": true` に) 設定します。

   1. <a name="connectors-setup-secret-resource"></a>必要なシークレットリソースを追加し、Lambda 関数への読み取りアクセスを許可します。

   1. コネクタを追加し、その[パラメータ](#servicenow-connector-param)を設定します。

   1. コネクタが[入力データ](#servicenow-connector-data-input)を受信し、サポートされているトピックフィルターで[出力データ](#servicenow-connector-data-output)を送信できるようにするサブスクリプションを追加します。
      + <a name="connectors-setup-subscription-input-data"></a>Lambda 関数をソースに、コネクタをターゲットに設定し、サポートされている入力トピックフィルターを使用します。
      + <a name="connectors-setup-subscription-output-data"></a>コネクタをソースとして、 AWS IoT Core をターゲットとして設定し、サポートされている出力トピックフィルターを使用します。このサブスクリプションを使用して、 AWS IoT コンソールでステータスメッセージを表示します。

1. <a name="connectors-setup-deploy-group"></a>グループをデプロイします。

1. <a name="connectors-setup-test-sub"></a> AWS IoT コンソールの**テスト**ページで、出力データトピックをサブスクライブして、コネクタからのステータスメッセージを表示します。この例の Lambda 関数は長期間有効であり、グループがデプロイされた直後にメッセージの送信を開始します。

   テストが終了したら、Lambda ライフサイクルをオンデマンドに (または CLI で `"Pinned": false` に) 設定して、グループをデプロイできます。これにより、関数がメッセージの送信を停止します。

### 例
<a name="servicenow-connector-usage-example"></a>

次の例では、Lambda 関数で入力メッセージをコネクタに送信します。

```
import greengrasssdk
import json

iot_client = greengrasssdk.client('iot-data')
SEND_TOPIC = 'servicenow/metricbase/metric'

def create_request_with_all_fields():
    return {
        "request": {
             "subject": '2efdf6badbd523803acfae441b961961',
             "metric_name": 'u_count',
             "value": 1234,
             "timestamp": '2018-10-20T20:22:20',
             "table": 'u_greengrass_metricbase_test'
        }
    }

def publish_basic_message():
    messageToPublish = create_request_with_all_fields()
    print("Message To Publish: ", messageToPublish)
    iot_client.publish(topic=SEND_TOPIC,
        payload=json.dumps(messageToPublish))

publish_basic_message()

def lambda_handler(event, context):
    return
```

## ライセンス
<a name="servicenow-connector-license"></a>

ServiceNow MetricBase 統合コネクタには、以下のサードパーティーのソフトウェアおよびライセンスが含まれています。
+ [pysnow](https://github.com/rbw/pysnow)/MIT

このコネクタは、[Greengrass Core ソフトウェアライセンス契約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)に従ってリリースされます。

## 変更ログ
<a name="servicenow-connector-changelog"></a>

次の表に、コネクタの各バージョンにおける変更点を示します。


| バージョン | 変更 | 
| --- | --- | 
| 4 | <a name="isolation-mode-changelog"></a>コネクタのコンテナ化モードを設定するための `IsolationMode` パラメータが追加されました。 | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Lambda ランタイムを Python 3.7 にアップグレードしたことで、ランタイム要件が変更。 | 
| 2 | 過剰なログ記録を減らすための修正。 | 
| 1 | 初回リリース。  | 

<a name="one-conn-version"></a>Greengrass グループには、一度に 1 つのバージョンのコネクタしか含めることができません。コネクタのバージョンのアップグレードについては、「[コネクタのバージョンのアップグレード](connectors.md#upgrade-connector-versions)」を参照してください。

## 関連情報
<a name="servicenow-connector-see-also"></a>
+ [Greengrass コネクタを使用したサービスおよびプロトコルとの統合](connectors.md)
+ [Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)
+ [Greengrass コネクタの開始方法 (CLI)](connectors-cli.md)