選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Twilio 通知連接器

焦點模式
Twilio 通知連接器 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長生命週期階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,且會繼續運作並連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2 ,這會新增重要的新功能,並支援其他平台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長生命週期階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,且會繼續運作並連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2 ,這會新增重要的新功能,並支援其他平台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

警告

此連接器已進入延長的生命週期階段, AWS IoT Greengrass 且不會發佈提供現有功能、增強功能、安全修補程式或錯誤修正的更新。如需詳細資訊,請參閱AWS IoT Greengrass Version 1 維護政策

Twilio Notifications 連接器會透過 Twilio 進行自動電話呼叫或傳送文字訊息。您可以使用此連接器傳送通知,以回應 Greengrass 群組中的事件。對於電話呼叫,連接器可以將語音訊息轉發給收件人。

此連接器會接收 MQTT 主題上的 Twilio 訊息,然後觸發 Twilio 通知。

注意

如需示範如何使用 Twilio Notifications 連接器的教學課程,請參閱 Greengrass 連接器入門 (主控台)Greengrass 連接器入門 (CLI)

此連接器具有下列版本。

版本

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

要求

此連接器有下列要求:

Version 4 - 5
  • AWS IoT Greengrass 核心軟體 v1.9.3 或更新版本。 AWS IoT Greengrass 必須設定為支援本機秘密,如秘密要求中所述。

    注意

    此要求包括允許存取您的 Secrets Manager 秘密。如果您使用的是預設 Greengrass 服務角色,Greengrass 具有許可,可取得名稱開頭為 greengrass- 的秘密值。

  • 安裝在核心裝置上並新增至 PATH 環境變數的 Python 3.7 或 3.8 版。

    注意

    若要使用 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 試用帳戶

  • 在 中 AWS Secrets Manager 存放 Twilio 驗證字符的文字類型秘密。如需詳細資訊,請參閱AWS Secrets Manager 《 使用者指南》中的建立基本秘密

    注意

    若要在 Secrets Manager 主控台中建立秘密,請在純文字索引標籤上輸入您的字符。請勿包含引號或其他格式。在 API 中,指定字符做為 SecretString 屬性的值。

  • Greengrass 群組中參考 Secrets Manager 秘密的秘密資源。如需詳細資訊,請參閱將秘密部署到 AWS IoT Greengrass 核心

Versions 1 - 3
  • AWS IoT Greengrass 核心軟體 v1.7 或更新版本。 AWS IoT Greengrass 必須設定為支援本機秘密,如秘密要求中所述。

    注意

    此要求包括允許存取您的 Secrets Manager 秘密。如果您使用的是預設 Greengrass 服務角色,Greengrass 具有許可,可取得名稱開頭為 greengrass- 的秘密值。

  • 安裝在核心裝置上並新增至 PATH 環境變數的 Python 2.7 版。

  • Twilio 帳戶 SID、驗證字符和已啟用 Twilio 的電話號碼。在您建立 Twilio 專案後,您就可在專案儀表板上使用這些值。

    注意

    您可以使用 Twilio 試用帳戶。如果您使用的是試驗帳戶,則必須將非 Twilio 收件人的電話號碼新增至已驗證的電話號碼清單。如需詳細資訊,請參閱如何使用您的免費 Twilio 試用帳戶

  • 在 中 AWS Secrets Manager 存放 Twilio 驗證字符的文字類型秘密。如需詳細資訊,請參閱AWS Secrets Manager 《 使用者指南》中的建立基本秘密

    注意

    若要在 Secrets Manager 主控台中建立秘密,請在純文字索引標籤上輸入您的字符。請勿包含引號或其他格式。在 API 中,指定字符做為 SecretString 屬性的值。

  • Greengrass 群組中參考 Secrets Manager 秘密的秘密資源。如需詳細資訊,請參閱將秘密部署到 AWS IoT Greengrass 核心

  • AWS IoT Greengrass 核心軟體 v1.9.3 或更新版本。 AWS IoT Greengrass 必須設定為支援本機秘密,如秘密要求中所述。

    注意

    此要求包括允許存取您的 Secrets Manager 秘密。如果您使用的是預設 Greengrass 服務角色,Greengrass 具有許可,可取得名稱開頭為 greengrass- 的秘密值。

  • 安裝在核心裝置上並新增至 PATH 環境變數的 Python 3.7 或 3.8 版。

    注意

    若要使用 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 試用帳戶

  • 在 中 AWS Secrets Manager 存放 Twilio 驗證字符的文字類型秘密。如需詳細資訊,請參閱AWS Secrets Manager 《 使用者指南》中的建立基本秘密

    注意

    若要在 Secrets Manager 主控台中建立秘密,請在純文字索引標籤上輸入您的字符。請勿包含引號或其他格式。在 API 中,指定字符做為 SecretString 屬性的值。

  • Greengrass 群組中參考 Secrets Manager 秘密的秘密資源。如需詳細資訊,請參閱將秘密部署到 AWS IoT Greengrass 核心

連接器參數

此連接器提供下列參數。

Version 5
TWILIO_ACCOUNT_SID

用於叫用 Twilio API 的 Twilio 帳戶 SID。

AWS IoT 主控台中的顯示名稱:Twilio 帳戶 SID

必要: true

類型:string

有效模式: .+

TwilioAuthTokenSecretArn

存放 Twilio 驗證字符的 Secrets Manager 秘密的 ARN。

注意

這用於存取核心上的本機私密值。

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

Greengrass 群組中參考 Twilio 驗證字符私密的私密資源的 ID。

AWS IoT 主控台中的顯示名稱:Twilio 驗證字符資源

必要: true

類型:string

有效模式: .+

DefaultFromPhoneNumber

預設已啟用 Twilio 的電話號碼,供 Twilio 用來傳送訊息。Twilio 使用此號碼來起始文字或通話。

  • 如果您不設定預設電話號碼,則必須在輸入訊息本文的 from_number 屬性中指定電話號碼。

  • 如果您設定預設電話號碼,您可以選擇在輸入訊息本文中指定 from_number 屬性,以覆寫預設值。

AWS IoT 主控台中的顯示名稱:電話號碼的預設

必要: false

類型:string

有效模式: ^$|\+[0-9]+

IsolationMode

此連接器的容器化模式。預設值為 GreengrassContainer,這表示連接器在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。

注意

群組的預設容器化設定不會套用至連接器。

AWS IoT 主控台中的顯示名稱:容器隔離模式

必要: false

類型:string

有效值:GreengrassContainerNoContainer

有效模式: ^NoContainer$|^GreengrassContainer$

Version 1 - 4
TWILIO_ACCOUNT_SID

用於叫用 Twilio API 的 Twilio 帳戶 SID。

AWS IoT 主控台中的顯示名稱:Twilio 帳戶 SID

必要: true

類型:string

有效模式: .+

TwilioAuthTokenSecretArn

存放 Twilio 驗證字符的 Secrets Manager 秘密的 ARN。

注意

這用於存取核心上的本機私密值。

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

Greengrass 群組中參考 Twilio 驗證字符私密的私密資源的 ID。

AWS IoT 主控台中的顯示名稱:Twilio 驗證字符資源

必要: true

類型:string

有效模式: .+

DefaultFromPhoneNumber

預設已啟用 Twilio 的電話號碼,供 Twilio 用來傳送訊息。Twilio 使用此號碼來起始文字或通話。

  • 如果您不設定預設電話號碼,則必須在輸入訊息本文的 from_number 屬性中指定電話號碼。

  • 如果您設定預設電話號碼,您可以選擇在輸入訊息本文中指定 from_number 屬性,以覆寫預設值。

AWS IoT 主控台中的顯示名稱:電話號碼的預設

必要: false

類型:string

有效模式: ^$|\+[0-9]+

TWILIO_ACCOUNT_SID

用於叫用 Twilio API 的 Twilio 帳戶 SID。

AWS IoT 主控台中的顯示名稱:Twilio 帳戶 SID

必要: true

類型:string

有效模式: .+

TwilioAuthTokenSecretArn

存放 Twilio 驗證字符的 Secrets Manager 秘密的 ARN。

注意

這用於存取核心上的本機私密值。

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

Greengrass 群組中參考 Twilio 驗證字符私密的私密資源的 ID。

AWS IoT 主控台中的顯示名稱:Twilio 驗證字符資源

必要: true

類型:string

有效模式: .+

DefaultFromPhoneNumber

預設已啟用 Twilio 的電話號碼,供 Twilio 用來傳送訊息。Twilio 使用此號碼來起始文字或通話。

  • 如果您不設定預設電話號碼,則必須在輸入訊息本文的 from_number 屬性中指定電話號碼。

  • 如果您設定預設電話號碼,您可以選擇在輸入訊息本文中指定 from_number 屬性,以覆寫預設值。

AWS IoT 主控台中的顯示名稱:電話號碼的預設

必要: false

類型:string

有效模式: ^$|\+[0-9]+

IsolationMode

此連接器的容器化模式。預設值為 GreengrassContainer,這表示連接器在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。

注意

群組的預設容器化設定不會套用至連接器。

AWS IoT 主控台中的顯示名稱:容器隔離模式

必要: false

類型:string

有效值:GreengrassContainerNoContainer

有效模式: ^NoContainer$|^GreengrassContainer$

建立範例連接器 (AWS CLI)

下列範例 CLI 命令ConnectorDefinition會使用包含 Twilio Notifications 連接器的初始版本來建立 。

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 Notifications 連接器新增至群組的教學課程,請參閱 Greengrass 連接器入門 (CLI)Greengrass 連接器入門 (主控台)

輸入資料

此連接器接受兩個 MQTT 主題的 Twilio 訊息資訊。輸入訊息必須是 JSON 格式。

  • twilio/txt 主題上的文字訊息資訊。

  • twilio/call 主題上的電話訊息資訊。

注意

輸入訊息承載可包含文字訊息 (message) 或語音訊息 (voice_message_location),但非同時包含兩者。

主題篩選條件:twilio/txt
訊息屬性
request

Twilio 通知的相關資訊。

必要: true

類型:object包含下列屬性:

recipient

訊息收件人。僅支援一個收件人。

必要: 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

訊息收件人。僅支援一個收件人。

必要: 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" }

輸出資料

這個連接器會將狀態資訊發佈為輸出資料,且主題為 MQTT。

訂閱中的主題篩選條件

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' } }

使用範例

使用下列高階步驟來設定範例 Python 3.7 Lambda 函數,您可以用來嘗試連接器。

注意

Greengrass 連接器入門 (主控台)Greengrass 連接器入門 (CLI) 主題包含端對端步驟,說明如何設定、部署和測試 Twilio 通知連接器。

  1. 確定您符合連接器的要求

  2. 建立並發佈 Lambda 函數,將輸入資料傳送至連接器。

    範例程式碼儲存為 PY 檔案。下載並解壓縮AWS IoT Greengrass 適用於 Python 的 核心 SDK。然後,建立在根層級包含 PY 檔案和 greengrasssdk 資料夾的 zip 套件。此 zip 套件是您上傳至 的部署套件 AWS Lambda。

    建立 Python 3.7 Lambda 函數後,發佈函數版本並建立別名。

  3. 設定 Greengrass 群組。

    1. 依別名新增 Lambda 函數 (建議)。將 Lambda 生命週期設定為長期 (或在 CLI "Pinned": true中)。

    2. 新增必要的秘密資源,並授予 Lambda 函數的讀取存取權。

    3. 新增連接器並設定其參數

    4. 新增訂閱,允許連接器在支援主題篩選條件上接收輸入資料並傳送輸出資料

      • 將 Lambda 函數設定為來源,將連接器設定為目標,並使用支援的輸入主題篩選條件。

      • 將連接器設為來源、將 AWS IoT Core 設為目標,並使用支援的輸出主題篩選條件。您可以使用此訂閱在 AWS IoT 主控台中檢視狀態訊息。

  4. 部署群組。

  5. 在 AWS IoT 主控台的測試頁面上,訂閱輸出資料主題,以檢視連接器的狀態訊息。Lambda 函數範例為長期函數,並在部署群組後立即開始傳送訊息。

    完成測試後,您可以將 Lambda 生命週期設定為隨需 (或在 CLI "Pinned": false中) 並部署群組。這會讓函數停止傳送訊息。

範例

下列範例 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

授權

Twilio Notifications 連接器包含下列第三方軟體/授權:

此連接器根據 Greengrass 核心軟體授權合約發行。

變更記錄

下表說明連接器每個版本中的變更。

版本

變更

5

已新增 IsolationMode 參數,以設定連接器的容器化模式。

4

將 Lambda 執行時間升級至 Python 3.7,這會變更執行時間需求。

3

可減少過多記錄的修正。

2

少量错误修复和改进。

1

初始版本。

Greengrass 群組一次只能包含一個版本的連接器。若要取得有關升級連接器版本的資訊,請參閱升級連接器版本

另請參閱

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。