

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

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

# Twilio 通知コネクタ
<a name="twilio-notifications-connector"></a>

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

Twilio 通知[コネクタ](connectors.md)は、電話の通話を自動化したり、Twilio を介してテキストメッセージを送信したりします。このコネクタを使用して、Greengrass グループのイベントに応じて通知を送信できます。通話の場合、コネクタは音声メッセージを受取人に転送できます。

このコネクタは、MQTT トピックに関する Twilio メッセージ情報を受信し、Twilio 通知をトリガーします。

**注記**  
Twilio 通知コネクタを使用する方法のチュートリアルについては、「[Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)」または「[Greengrass コネクタの開始方法 (CLI)](connectors-cli.md)」を参照してください。

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


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

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

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

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

------
#### [ Version 4 - 5 ]
+ <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 要件を満たすようにデバイスが設定されます。
+ Twilio アカウントの SID、認証トークン、Twilio 対応の電話番号。Twilio プロジェクトを作成した後、これらの値をプロジェクトダッシュボードで使用できます。
**注記**  
Twilio トライアルアカウントを使用できます。トライアルアカウントを使用している場合は、Twilio 以外の受信者の電話番号を、確認済みの電話番号リストに追加する必要があります。詳細については、「[無料の Twilio トライアルアカウントを使用する方法](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account)」を参照してください。
+ <a name="conn-twilio-req-secret"></a>Twilio 認証トークン AWS Secrets Manager を保存する のテキストタイプのシークレット。詳細については、「AWS Secrets Manager ユーザーガイド」の「[Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」(基本的なシークレットの作成) を参照してください。
**注記**  
Secrets Manager コンソールでシークレットを作成するには、**[Plaintext]** (プレーンテキスト) タブにトークンを入力します。引用符やその他の書式は含めないでください。API で、`SecretString` プロパティの値としてトークンを指定します。
+ Secrets Manager シークレットを参照する Greengrass グループのシークレットリソース。詳細については、「[シークレットを AWS IoT Greengrass コアにデプロイする](secrets.md)」を参照してください。

------
#### [ Versions 1 - 3 ]
+ <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 環境変数に追加されている。
+ Twilio アカウントの SID、認証トークン、Twilio 対応の電話番号。Twilio プロジェクトを作成した後、これらの値をプロジェクトダッシュボードで使用できます。
**注記**  
Twilio トライアルアカウントを使用できます。トライアルアカウントを使用している場合は、Twilio 以外の受信者の電話番号を、確認済みの電話番号リストに追加する必要があります。詳細については、「[無料の Twilio トライアルアカウントを使用する方法](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account)」を参照してください。
+ <a name="conn-twilio-req-secret"></a>Twilio 認証トークン AWS Secrets Manager を保存する のテキストタイプのシークレット。詳細については、「AWS Secrets Manager ユーザーガイド」の「[Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」(基本的なシークレットの作成) を参照してください。
**注記**  
Secrets Manager コンソールでシークレットを作成するには、**[Plaintext]** (プレーンテキスト) タブにトークンを入力します。引用符やその他の書式は含めないでください。API で、`SecretString` プロパティの値としてトークンを指定します。
+ Secrets Manager シークレットを参照する Greengrass グループのシークレットリソース。詳細については、「[シークレットを AWS IoT Greengrass コアにデプロイする](secrets.md)」を参照してください。

------

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

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

------
#### [ Version 5 ]

`TWILIO_ACCOUNT_SID`  <a name="twilio-TWILIO_ACCOUNT_SID"></a>
Twilio API を呼び出すために使用される Twilio アカウント SID。  
 AWS IoT コンソールでの名前の表示: **Twilio アカウント SID**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`TwilioAuthTokenSecretArn`  <a name="twilio-TwilioAuthTokenSecretArn"></a>
Twilio 認証トークンを保存する Secrets Manager シークレットの ARN。  
この ARN は、Core 上のローカルシークレットの値にアクセスするために使用されます。
 AWS IoT コンソールの表示名: **Twilio 認証トークンシークレットの 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]+`

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

`DefaultFromPhoneNumber`  <a name="twilio-DefaultFromPhoneNumber"></a>
Twilio がメッセージの送信に使用するデフォルトの Twilio 対応電話番号。Twilio はこの番号を使用してテキストまたは通話を開始します。  
+ デフォルトの電話番号を設定しない場合は、入力メッセージ本文の `from_number` プロパティに電話番号を指定する必要があります。
+ デフォルトの電話番号を設定する場合は、オプションで、入力メッセージ本文の `from_number` プロパティを指定してデフォルトを上書きすることができます。
 AWS IoT コンソールの表示名: **電話番号の**デフォルト  
必須: `false`  
型: `string`  
有効なパターン: `^$|\+[0-9]+`

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

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

`TWILIO_ACCOUNT_SID`  <a name="twilio-TWILIO_ACCOUNT_SID"></a>
Twilio API を呼び出すために使用される Twilio アカウント SID。  
 AWS IoT コンソールでの名前の表示: **Twilio アカウント SID**  
必須: `true`  
型: `string`  
有効なパターン: `.+`

`TwilioAuthTokenSecretArn`  <a name="twilio-TwilioAuthTokenSecretArn"></a>
Twilio 認証トークンを保存する Secrets Manager シークレットの ARN。  
この ARN は、Core 上のローカルシークレットの値にアクセスするために使用されます。
 AWS IoT コンソールの表示名: **Twilio 認証トークンシークレットの 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]+`

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

`DefaultFromPhoneNumber`  <a name="twilio-DefaultFromPhoneNumber"></a>
Twilio がメッセージの送信に使用するデフォルトの Twilio 対応電話番号。Twilio はこの番号を使用してテキストまたは通話を開始します。  
+ デフォルトの電話番号を設定しない場合は、入力メッセージ本文の `from_number` プロパティに電話番号を指定する必要があります。
+ デフォルトの電話番号を設定する場合は、オプションで、入力メッセージ本文の `from_number` プロパティを指定してデフォルトを上書きすることができます。
 AWS IoT コンソールの表示名: **電話番号のデフォルト**  
必須: `false`  
型: `string`  
有効なパターン: `^$|\+[0-9]+`

------

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

以下の CLI コマンドの例では、Twilio 通知コネクタを含む初期バージョンで `ConnectorDefinition` を作成します。

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyTwilioNotificationsConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/TwilioNotifications/versions/5",
            "Parameters": {
                "TWILIO_ACCOUNT_SID": "abcd12345xyz",
                "TwilioAuthTokenSecretArn": "arn:aws:secretsmanager:region:account-id:secret:greengrass-secret-hash",
                "TwilioAuthTokenSecretArn-ResourceId": "MyTwilioSecret",
                "DefaultFromPhoneNumber": "+19999999999",
                "IsolationMode" : "GreengrassContainer"
            }
        }
    ]
}'
```

グループに Twilio 通知コネクタを追加する方法を示すチュートリアルについては、「[Greengrass コネクタの開始方法 (CLI)](connectors-cli.md)」および「[Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)」を参照してください。

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

このコネクタは、2 つの MQTT トピックに関する Twilio メッセージ情報を受け取ります。入力メッセージは JSON 形式である必要があります。
+ `twilio/txt` トピックに関するテキストメッセージ情報。
+ `twilio/call` トピックに関する電話メッセージ情報。

**注記**  
入力メッセージのペイロードには、テキストメッセージ (`message`) またはボイスメッセージ (`voice_message_location`) を含めることができますが、両方を含めることはできません。

**トピックのフィルター: `twilio/txt`**    
**メッセージのプロパティ**    
`request`  
Twilio 通知に関する情報。  
必須: `true`  
型: 以下のプロパティを含む `object`。    
`recipient`  
メッセージ受取人。サポートされる受取人は 1 人のみです。  
必須: `true`  
タイプ: `object`。以下のプロパティを含みます。    
`name`  
受取人の名前。  
必須: `true`  
型: `string`  
有効なパターン: `.*`  
`phone_number`  
受取人の電話番号。  
必須: `true`  
型: `string`  
有効なパターン: `\+[1-9]+`  
`message`  
テキストメッセージのテキスト内容。このトピックでは、テキストメッセージのみがサポートされています。音声メッセージの場合は、`twilio/call` を使用します。  
必須: `true`  
型: `string`  
有効なパターン: `.+`  
`from_number`  
送信者の電話番号。Twilio はこの電話番号を使用してメッセージを開始します。このプロパティは、`DefaultFromPhoneNumber` パラメータが設定されていない場合に必須です。`DefaultFromPhoneNumber` が設定されている場合は、このプロパティを使用してデフォルトを上書きできます。  
必須: `false`  
型: `string`  
有効なパターン: `\+[1-9]+`  
`retries`  
再試行の回数。デフォルトは 0 です。  
必須: `false`  
型: `integer`  
`id`  
リクエストの任意の ID。このプロパティは、入力リクエストを出力レスポンスにマッピングするために使用します。  
必須: `true`  
型: `string`  
有効なパターン: `.+`  
**入力例**  

```
{
    "request": {
        "recipient": {
            "name": "Darla",
            "phone_number": "+12345000000",
            "message": "Hello from the edge"
        },
        "from_number": "+19999999999",
        "retries": 3
    },
    "id": "request123"
}
```

**トピックのフィルター: `twilio/call`**    
**メッセージのプロパティ**    
`request`  
Twilio 通知に関する情報。  
必須: `true`  
型: 以下のプロパティを含む `object`。    
`recipient`  
メッセージ受取人。サポートされる受取人は 1 人のみです。  
必須: `true`  
タイプ: `object`。以下のプロパティを含みます。    
`name`  
受取人の名前。  
必須: `true`  
型: `string`  
有効なパターン: `.+`  
`phone_number`  
受取人の電話番号。  
必須: `true`  
型: `string`  
有効なパターン: `\+[1-9]+`  
`voice_message_location`  
音声メッセージのオーディオコンテンツの URL。これは TwiML 形式であることが必要です。このトピックでは、音声メッセージのみがサポートされています。テキストメッセージの場合は、`twilio/txt` を使用します。  
必須: `true`  
型: `string`  
有効なパターン: `.+`  
`from_number`  
送信者の電話番号。Twilio はこの電話番号を使用してメッセージを開始します。このプロパティは、`DefaultFromPhoneNumber` パラメータが設定されていない場合に必須です。`DefaultFromPhoneNumber` が設定されている場合は、このプロパティを使用してデフォルトを上書きできます。  
必須: `false`  
型: `string`  
有効なパターン: `\+[1-9]+`  
`retries`  
再試行の回数。デフォルトは 0 です。  
必須: `false`  
型: `integer`  
`id`  
リクエストの任意の ID。このプロパティは、入力リクエストを出力レスポンスにマッピングするために使用します。  
必須: `true`  
型: `string`  
有効なパターン: `.+`  
**入力例**  

```
{
    "request": {
        "recipient": {
            "name": "Darla",
            "phone_number": "+12345000000",
            "voice_message_location": "https://some-public-TwiML"
        },
        "from_number": "+19999999999",
        "retries": 3
    },
    "id": "request123"
}
```

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

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

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

**出力例: 成功**  

```
{
    "response": {
        "status": "success",
        "payload": {
            "from_number": "+19999999999",
            "messages": {
                "message_status": "queued",
                "to_number": "+12345000000",
                "name": "Darla"
            }
        }
    },
    "id": "request123"
}
```

**出力例: 失敗**  

```
{
    "response": {
        "status": "fail",
        "error_message": "Recipient name cannot be None",
        "error": "InvalidParameter",
        "payload": None
        }
    },
    "id": "request123"
}
```
出力の `payload` プロパティは、メッセージが送信されたときの Twilio API からのレスポンスです。コネクタは、入力データが無効であること (必須の入力フィールドが指定されていないなど) を検出した場合、エラーを返し、値を `None` に設定します。以下に示しているのは、ペイロードの例です。  

```
{
    'from_number':'+19999999999',
    'messages': {
        'name':'Darla',
        'to_number':'+12345000000',
        'message_status':'undelivered'
    }
}
```

```
{
    'from_number':'+19999999999',
    'messages': {
        'name':'Darla',
        'to_number':'+12345000000',
        'message_status':'queued'
    }
}
```

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

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

**注記**  <a name="connectors-setup-get-started-topics"></a>
[Greengrass コネクタの開始方法 (コンソール)](connectors-console.md) および [Greengrass コネクタの開始方法 (CLI)](connectors-cli.md) のトピックには、Twilio 通知コネクタのセットアップ、デプロイ、およびテスト方法を示すエンドツーエンドのステップが含まれています。

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

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

   [サンプルコード](#twilio-notifications-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. コネクタを追加し、その[パラメータ](#twilio-notifications-connector-param)を設定します。

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

次の例では、Lambda 関数で入力メッセージをコネクタに送信します。この例では、テキストメッセージがトリガーされます。

```
import greengrasssdk
import json

iot_client = greengrasssdk.client('iot-data')
TXT_INPUT_TOPIC = 'twilio/txt'
CALL_INPUT_TOPIC = 'twilio/call'

def publish_basic_message():

    txt = {
        "request": {
            "recipient" : {
                "name": "Darla",
                "phone_number": "+12345000000",
                "message": 'Hello from the edge'
            },
            "from_number" : "+19999999999"
        },
        "id" : "request123"
    }
    
    print("Message To Publish: ", txt)

    client.publish(topic=TXT_INPUT_TOPIC,
                   payload=json.dumps(txt))

publish_basic_message()

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

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

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

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

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

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


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

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

## 関連情報
<a name="twilio-notifications-connector-see-also"></a>
+ [Greengrass コネクタを使用したサービスおよびプロトコルとの統合](connectors.md)
+ [Greengrass コネクタの開始方法 (コンソール)](connectors-console.md)
+ [Greengrass コネクタの開始方法 (CLI)](connectors-cli.md)
+ [Twilio API リファレンス](https://www.twilio.com/docs/api)