

サポート終了通知: 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)」を参照してください。

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

# シリアルストリーミングコネクタ
<a name="serial-stream-connector"></a>

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

シリアルストリーム[コネクタ](connectors.md)は、 AWS IoT Greengrass コアデバイスのシリアルポートに読み書きします。

このコネクタは 2 つのオペレーションモードをサポートしています。
+ **オンデマンド読み取り** MQTT トピックに対する読み取りおよび書き込みリクエストを受け取り、読み取りオペレーションのレスポンスまたは書き込みオペレーションのステータスを発行します。
+ **ポーリング読み取り** 定期的にシリアルポートから読み取ります。このモードではオンデマンド読み取りリクエストもサポートされます。

**注記**  
読み取りリクエストの最大読み取り長は 63,994 バイトに制限されています。書き込みリクエストの最大データ長は 128,000 バイトに制限されています。

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


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

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

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

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

------
#### [ Version 3 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass Core ソフトウェア v1.9.3 以降。
+ <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-serial-stream-req-serial-port-resource"></a>ターゲットシリアルポートを参照する Greengrass グループの[ローカルデバイスリソース](access-local-resources.md)。
**注記**  
このコネクタをデプロイする前に、シリアルポートを設定し、このシリアルポートに対して読み書きできることを確認してください。

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass Core ソフトウェア v1.7 以降。
+ [Python](https://www.python.org/) バージョン 2.7 が Core デバイスにインストールされ、PATH 環境変数に追加されている。
+ <a name="conn-serial-stream-req-serial-port-resource"></a>ターゲットシリアルポートを参照する Greengrass グループの[ローカルデバイスリソース](access-local-resources.md)。
**注記**  
このコネクタをデプロイする前に、シリアルポートを設定し、このシリアルポートに対して読み書きできることを確認してください。

------

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

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

`BaudRate`  
シリアル接続のボーレート。  
 AWS IoT コンソールの表示名: **ボーレート**  
必須: `true`  
型: `string`  
有効な値: `110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400`  
有効なパターン: `^110$|^300$|^600$|^1200$|^2400$|^4800$|^9600$|^14400$|^19200$|^28800$|^38400$|^56000$|^57600$|^115200$|^230400$`

`Timeout`  
読み取りオペレーションのタイムアウト (秒単位)。  
 AWS IoT コンソールの表示名: **タイムアウト**  
必須: `true`  
型: `string`  
有効な値: `1 - 59`  
有効なパターン: `^([1-9]|[1-5][0-9])$`

`SerialPort`  
デバイス上の物理シリアルポートへの絶対パス。これは、ローカルデバイスリソースに指定されているソースパスです。  
 AWS IoT コンソールの表示名: **シリアルポート**  
必須: `true`  
型: `string`  
有効なパターン: `[/a-zA-Z0-9_-]+`

`SerialPort-ResourceId`  
物理シリアルポートを表すローカルデバイスリソースの ID。  
このコネクタには、リソースへの読み取りと書き込みアクセスが付与されています。
 AWS IoT コンソールの表示名: **シリアルポートリソース**  
必須: `true`  
型: `string`  
有効なパターン: `[a-zA-Z0-9_-]+`

`PollingRead`  
読み取りモードとしてポーリング読み取りまたはオンデマンド読み取りを設定します。  
+ ポーリング読み取りモードの場合は、`true` を指定します。このモードでは、`PollingInterval`、`PollingReadType`、および `PollingReadLength` プロパティは必須です。
+ オンデマンド読み取りモードの場合は、`false` を指定します。このモードでは、タイプと長さの値が読み取りリクエストで指定されます。
 AWS IoT コンソールの表示名: **読み取りモード**  
必須: `true`  
型: `string`  
有効な値: `true, false`  
有効なパターン: `^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`PollingReadLength`  
各ポーリング読み取りオペレーションで読み取るデータの長さ (バイト単位)。これは、ポーリング読み取りモードを使用している場合にのみ適用されます。  
 AWS IoT コンソールの表示名: **ポーリングの読み取り長**  
必須: `false`。このプロパティは、`PollingRead` が `true` の場合に必須です。  
型: `string`  
有効なパターン: `^(|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-2][0-9]{3}|63[0-8][0-9]{2}|639[0-8][0-9]|6399[0-4])$`

`PollingReadInterval`  
ポーリング読み取りが行われる間隔 (秒単位)。これは、ポーリング読み取りモードを使用している場合にのみ適用されます。  
 AWS IoT コンソールの表示名: **ポーリング読み取り間隔**  
必須: `false`。このプロパティは、`PollingRead` が `true` の場合に必須です。  
型: `string`  
有効な値: 1～999  
有効なパターン: `^(|[1-9]|[1-9][0-9]|[1-9][0-9][0-9])$`

`PollingReadType`  
ポーリングスレッドが読み取るデータのタイプ。これは、ポーリング読み取りモードを使用している場合にのみ適用されます。  
 AWS IoT コンソールの表示名: **ポーリング読み取りタイプ**  
必須: `false`。このプロパティは、`PollingRead` が `true` の場合に必須です。  
型: `string`  
有効な値: `ascii, hex`  
有効なパターン: `^(|[Aa][Ss][Cc][Ii][Ii]|[Hh][Ee][Xx])$`

`RtsCts`  
RTS/CTS フロー制御を有効にするかどうかを示します。デフォルト値は `false` です。詳細については、「[RTS、CTS、RTR](https://en.wikipedia.org/wiki/RS-232#RTS,_CTS,_and_RTR)」を参照してください。  
 AWS IoT コンソールの表示名: **RTS/CTS フローコントロール**  
必須: `false`  
型: `string`  
有効な値: `true, false`  
有効なパターン: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`XonXoff`  
ソフトウェアフロー制御を有効にするかどうかを示します。デフォルト値は `false` です。詳細については、「[ソフトウェアフロー制御](https://en.wikipedia.org/wiki/Software_flow_control)」を参照してください。  
 AWS IoT コンソールの表示名: **ソフトウェアフローコントロール**  
必須: `false`  
型: `string`  
有効な値: `true, false`  
有効なパターン: `^(|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$`

`Parity`  
シリアルポートのパリティ。デフォルト値は `N` です。詳細については、「[パリティ](https://en.wikipedia.org/wiki/Serial_port#Parity)」を参照してください。  
 AWS IoT コンソールの表示名: **シリアルポートパリティ**  
必須: `false`  
型: `string`  
有効な値: `N, E, O, S, M`  
有効なパターン: `^(|[NEOSMneosm])$`

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

以下の CLI コマンドは、シリアルストリーミングコネクタを含む初期バージョンで `ConnectorDefinition` を作成します。ポーリング読み取りモード用にコネクタを設定します。

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MySerialStreamConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/SerialStream/versions/3",
            "Parameters": {
                "BaudRate" : "9600",
                "Timeout" : "25",
                "SerialPort" : "/dev/serial1",
                "SerialPort-ResourceId" : "my-serial-port-resource",
                "PollingRead" : "true",
                "PollingReadLength" : "30",
                "PollingReadInterval" : "30",
                "PollingReadType" : "hex"
            }
        }
    ]
}'
```

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

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

このコネクタは、以下の 2 つの MQTT トピックのシリアルポートに対する読み取りリクエストまたは書き込みリクエストを受け入れます。入力メッセージは JSON 形式である必要があります。
+ `serial/+/read/#` トピックの読み取りリクエスト。
+ `serial/+/write/#` トピックの書き込みリクエスト。

これらのトピックに発行するには、`+` ワイルドカードを Core モノ名に置き換え、`#` ワイルドカードをシリアルポートへのパスに置き換えます。例:

```
serial/core-thing-name/read/dev/serial-port
```

**トピックのフィルター:** `serial/+/read/#`  
このトピックを使用して、オンデマンド読み取りリクエストをシリアルピンに送信します。読み取りリクエストの最大読み取り長は 63,994 バイトに制限されています。    
**メッセージのプロパティ**    
`readLength`  
シリアルポートから読み取るデータの長さ。  
必須: `true`  
型: `string`  
有効なパターン: `^[1-9][0-9]*$`  
`type`  
読み取るデータのタイプ。  
必須: `true`  
型: `string`  
有効な値: `ascii, hex`  
有効なパターン: `(?i)^(ascii|hex)$`  
`id`  
リクエストの任意の ID。このプロパティは、入力リクエストを出力レスポンスにマッピングするために使用します。  
必須: `false`  
型: `string`  
有効なパターン: `.+`  
**入力例**  

```
{
    "readLength": "30",
    "type": "ascii",
    "id": "abc123"
}
```

**トピックのフィルター:** `serial/+/write/#`  
このトピックを使用して書き込みリクエストをシリアルピンに送信します。書き込みリクエストの最大データ長は 128,000 バイトに制限されています。    
**メッセージのプロパティ**    
`data`  
シリアルポートに書き込む文字列。  
必須: `true`  
型: `string`  
有効なパターン: `^[1-9][0-9]*$`  
`type`  
読み取るデータのタイプ。  
必須: `true`  
型: `string`  
有効な値: `ascii, hex`  
有効なパターン: `^(ascii|hex|ASCII|HEX)$`  
`id`  
リクエストの任意の ID。このプロパティは、入力リクエストを出力レスポンスにマッピングするために使用します。  
必須: `false`  
型: `string`  
有効なパターン: `.+`  
**入力例: ASCII リクエスト**  

```
{
    "data": "random serial data",
    "type": "ascii",
    "id": "abc123"
}
```  
**入力例: 16 進リクエスト**  

```
{
    "data": "base64 encoded data",
    "type": "hex",
    "id": "abc123"
}
```

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

コネクタは 2 つのトピックに関する出力データを発行します。
+ `serial/+/status/#` トピックに関するコネクタからのステータス情報。
+ `serial/+/read_response/#` トピックに関する読み取りリクエストからのレスポンス。

このトピックに発行すると、コネクタは `+` ワイルドカードを Core モノ名に、`#` ワイルドカードをシリアルポートへのパスに置き換えます。例:

```
serial/core-thing-name/status/dev/serial-port
```

**トピックのフィルター:** `serial/+/status/#`  
このトピックを使用して、読み取りおよび書き込みリクエストのステータスをリッスンします。`id` プロパティがリクエストに含まれている場合は、レスポンスで返されます。    
**出力例: 成功**  

```
{
    "response": {
        "status": "success"
    },
    "id": "abc123"
}
```  
**出力例: 失敗**  
失敗レスポンスには、読み取りまたは書き込みオペレーションの実行中に発生したエラーまたはタイムアウトを説明する `error_message` プロパティが含まれています。  

```
{
    "response": {
        "status": "fail",
        "error_message": "Could not write to port"
    },
    "id": "abc123"
}
```

**トピックのフィルター:** `serial/+/read_response/#`  
このトピックを使用して、読み取りオペレーションからレスポンスデータを受信します。タイプが `hex` の場合、レスポンスデータは Base64 でエンコードされます。    
**出力例**  

```
{
    "data": "output of serial read operation"
    "id": "abc123"
}
```

## 使用例
<a name="serial-stream-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. コネクタの[要件](#serial-stream-connector-req)を満たしていることを確認します。

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

   [サンプルコード](#serial-stream-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-device-resource"></a>必要なローカルデバイスリソースを追加し、Lambda 関数への読み取り/書き込みアクセスを許可します。

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

   1. コネクタが[入力データ](#serial-stream-connector-data-input)を受信し、サポートされているトピックフィルターで[出力データ](#serial-stream-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="serial-stream-connector-usage-example"></a>

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

```
import greengrasssdk
import json

TOPIC_REQUEST = 'serial/CORE_THING_NAME/write/dev/serial1'

# Creating a greengrass core sdk client
iot_client = greengrasssdk.client('iot-data')

def create_serial_stream_request():
	request = {
		"data": "TEST",
		"type": "ascii",
		"id": "abc123"
	}
	return request

def publish_basic_request():
	iot_client.publish(payload=json.dumps(create_serial_stream_request()), topic=TOPIC_REQUEST)

publish_basic_request()

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

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

シリアルストリーミングコネクタには、以下のサードパーティーのソフトウェアおよびライセンスが含まれています。
+ [pyserial](https://github.com/pyserial/pyserial)/BSD

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

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

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


| バージョン | 変更 | 
| --- | --- | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Lambda ランタイムを Python 3.7 にアップグレードしたことで、ランタイム要件が変更。 | 
| 2 |  AWS リージョン サポート用にコネクタ ARN を更新しました。 | 
| 1 | 初回リリース。  | 

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

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