

支援終止通知：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)。

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

# Greengrass 連接器入門 (主控台)
<a name="connectors-console"></a>

此功能適用於 AWS IoT Greengrass Core v1.7 和更新版本。

本教學課程說明如何使用 AWS 管理主控台 來使用連接器。

使用連接器來加速您的開發生命週期。連接器是預先建置的、可重複使用的模組，可讓您更輕鬆地與服務、通訊協定和資源互動。它們可協助您更快地將商業邏輯部署到 Greengrass 裝置。如需詳細資訊，請參閱[使用 Greengrass 連接器來整合服務和通訊協定](connectors.md)。

在本教學課程中，您會設定和部署 [ Twilio Notifications](twilio-notifications-connector.md) 連接器。連接器接收 Twilio 訊息資訊做為輸入資料，然後觸發 Twilio 文字訊息。下圖顯示資料流程。

![\[從 Lambda 函數到 Twilio Notifications 連接器到 Twilio 的資料流程。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/connectors/twilio-solution.png)


設定連接器之後，您可以建立 Lambda 函數和訂閱。
+ 此函數會評估來自溫度感應器的模擬資料。它會有條件地將 Twilio 訊息資訊發佈到 MQTT 主題。這是連接器訂閱的主題。
+ 該訂閱允許將函數發佈到主題，也允許連接器從主題接收資料。

Twilio Notifications 連接器需要 Twilio 驗證字符才能與 Twilio API 互動。字符是在 中建立 AWS Secrets Manager 並從群組資源參考的文字類型秘密。這 AWS IoT Greengrass 可讓 在 Greengrass 核心上建立秘密的本機副本，並在其中加密並提供給連接器。如需詳細資訊，請參閱[將秘密部署到 AWS IoT Greengrass 核心](secrets.md)。

本教學課程所述以下高階執行步驟：

1. [建立 Secrets Manager 秘密](#connectors-console-create-secret)

1. [將私密資源新增至群組](#connectors-console-create-resource)

1. [將連接器新增到群組](#connectors-console-create-connector)

1. [建立 Lambda 函數部署套件](#connectors-console-create-deployment-package)

1. [建立 Lambda 函式](#connectors-console-create-function)

1. [將函數新增到群組](#connectors-console-create-gg-function)

1. [新增訂閱到群組](#connectors-console-create-subscription)

1. [部署群組](#connectors-console-create-deployment)

1. [測試解決方案](#connectors-console-test-solution)

此教學課程需約 20 分鐘完成。

## 先決條件
<a name="connectors-console-prerequisites"></a>

為完成此教學課程您需要：
+ Greengrass 群組和 Greengrass 核心 (1.9.3 版或更新版本)。若要了解如何建立 Greengrass 群組或核心，請參閱 [入門 AWS IoT Greengrass](gg-gs.md)。入門教學課程也包含 AWS IoT Greengrass Core 軟體的安裝步驟。
+  AWS IoT Greengrass 核心裝置上已安裝 Python 3.7。
+  AWS IoT Greengrass 必須設定為支援本機秘密，如[秘密要求](secrets.md#secrets-reqs)中所述。
**注意**  
此要求包括允許存取您的 Secrets Manager 秘密。如果您使用預設 Greengrass 服務角色，Greengrass 有權取得名稱開頭為 *greengrass-* 的秘密值。
+ Twilio 帳戶 SID、驗證字符和已啟用 Twilio 的電話號碼。在您建立 Twilio 專案後，您就可在專案儀表板上使用這些值。
**注意**  
您可以使用 Twilio 試用帳戶。如果您使用試驗帳戶，則必須將非 Twilio 收件人的電話號碼新增至已驗證的電話號碼清單。如需詳細資訊，請參閱[如何使用您的 免費 Twilio 試用帳戶](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account)。

## 步驟 1：建立 Secrets Manager 秘密
<a name="connectors-console-create-secret"></a>

在此步驟中，您可以使用 AWS Secrets Manager 主控台為 Twilio 驗證字符建立文字類型秘密。

1. <a name="create-secret-step-signin"></a>登入 [AWS Secrets Manager 主控台](https://console.aws.amazon.com/secretsmanager/)。
**注意**  
如需此程序的詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[步驟 1：建立和存放您的秘密 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html)。

1. <a name="create-secret-step-create"></a>選擇**儲存新機密**。

1. <a name="create-secret-step-othertype"></a>在**選擇秘密類型**下，選擇**其他類型的秘密**。

1. 在**指定要為此秘密存放的金鑰/值對**下，在**純文字**索引標籤上，輸入您的 Twilio 驗證字符。移除所有的 JSON 格式，只輸入字符值。

1. <a name="create-secret-step-encryption"></a>保持選取加密金鑰的 **aws/secretsmanager**，然後選擇**下一步**。
**注意**  
 AWS KMS 如果您使用 Secrets Manager 在帳戶中建立的預設 AWS 受管金鑰，則 不會向您收費。

1. 針對 **Secret name (私密名稱)**，輸入 **greengrass-TwilioAuthToken**，然後選擇 **Next (下一步)**。
**注意**  
根據預設，Greengrass 服務角色允許 AWS IoT Greengrass 取得名稱開頭為 *greengrass-* 的秘密值。如需詳細資訊，請參閱[私密需求](secrets.md#secrets-reqs)。

1. <a name="create-secret-step-rotation"></a>本教學課程不需要輪換，因此請選擇停用自動輪換，然後選擇**下一步**。

1. <a name="create-secret-step-review"></a>在 **Review (檢閱)** 頁面上，檢閱設定，然後選擇 **Store (儲存)**。

   接著，您可以在 Greengrass 群組中建立一個參考私密的私密資源。

## 步驟 2：將私密資源新增至 Greengrass 群組
<a name="connectors-console-create-resource"></a>

在此步驟中，您會將*私密資源*新增到 Greengrass 群組。此資源會參考您在上一步中建立的私密。

1. <a name="console-gg-groups"></a>在 AWS IoT 主控台導覽窗格的**管理**下，展開 **Greengrass 裝置**，然後選擇**群組 (V1)**。

1. <a name="create-secret-resource-step-choosegroup"></a>選擇您要將私密資源新增至其中的群組。

1. <a name="create-secret-resource-step-secretstab"></a>在群組組態頁面上，選擇**資源**索引標籤，然後向下捲動至**秘密**區段。**秘密**區段會顯示屬於 群組的秘密資源。您可以從本節新增、編輯和移除秘密資源。
**注意**  
或者，主控台可讓您在設定連接器或 Lambda 函數時建立秘密和秘密資源。您可以從連接器**的設定參數**頁面或 Lambda 函數**的資源**頁面執行此操作。

1. <a name="create-secret-resource-step-addsecretresource"></a>在**秘密**區段下選擇**新增**。

1. 在**新增秘密資源**頁面上，輸入 **MyTwilioAuthToken** 做為**資源名稱**。

1. 針對**秘密**，選擇 **greengrass-TwilioAuthToken**。

1. <a name="create-secret-resource-step-selectlabels"></a>在**選取標籤 （選用）** 區段中，AWSCURRENT 預備標籤代表秘密的最新版本。此標籤一律包含在私密資源中。
**注意**  
本教學課程僅需要 AWSCURRENT 標籤。您可以選擇性地包含 Lambda 函數或連接器所需的標籤。

1. 選擇 **Add resource (新增資源)**。

## 步驟 3：將連接器新增到 Greengrass 群組
<a name="connectors-console-create-connector"></a>

在此步驟中，您會設定 [Twilio Notifications 連接器](twilio-notifications-connector.md)的參數，並將其新增至群組。

1. 在群組組態頁面上，選擇 **Connectors (連接器)**，然後選擇 **Add a connector (新增連接器)**。

1. 在**新增連接器**頁面上，選擇 **Twilio Notifications**。

1. 選擇 版本。

1. 在**組態**區段中：
   + 對於 **Twilio 驗證字符資源**，輸入您在上一個步驟中建立的資源。
**注意**  
當您輸入 資源時，會為您填入 **Twilio 驗證字符秘密屬性的 ARN**。
   + 針對 **Default from phone number (預設從電話號碼)**，輸入已啟用 Twilio 的電話號碼。
   + 針對 **Twilio account SID (Twilio 帳戶 SID)**，輸入您的 Twilio 帳戶 SID。

1. 選擇 **Add resource (新增資源)**。

## 步驟 4：建立 Lambda 函數部署套件
<a name="connectors-console-create-deployment-package"></a>

若要建立 Lambda 函數，您必須先建立包含函數程式碼和相依性的 Lambda 函數*部署套件*。Greengrass Lambda 函數需要 [AWS IoT Greengrass 核心 SDK](lambda-functions.md#lambda-sdks-core) 來處理任務，例如與核心環境中的 MQTT 訊息通訊，以及存取本機秘密。本教學課程會建立 Python 函數，因此您可以在部署套件中使用 SDK 的 Python 版本。

1. <a name="download-ggc-sdk"></a> 從[AWS IoT Greengrass 核心開發套件](what-is-gg.md#gg-core-sdk-download)下載頁面，將適用於 Python AWS IoT Greengrass 的核心開發套件下載至您的電腦。

1. <a name="unzip-ggc-sdk"></a>解壓縮下載的封裝，以取得軟體開發套件。SDK 為 `greengrasssdk` 資料夾。

1. 將以下 Python 程式碼函數儲存在名為 `temp_monitor.py` 的本機檔案中。

   ```
   import greengrasssdk
   import json
   import random
   
   client = greengrasssdk.client('iot-data')
   
   # publish to the Twilio Notifications connector through the twilio/txt topic
   def function_handler(event, context):
       temp = event['temperature']
       
       # check the temperature
       # if greater than 30C, send a notification
       if temp > 30:
           data = build_request(event)
           client.publish(topic='twilio/txt', payload=json.dumps(data))
           print('published:' + str(data))
           
       print('temperature:' + str(temp))
       return
   
   # build the Twilio request from the input data
   def build_request(event):
       to_name = event['to_name']
       to_number = event['to_number']
       temp_report = 'temperature:' + str(event['temperature'])
   
       return {
           "request": {
               "recipient": {
                   "name": to_name,
                   "phone_number": to_number,
                   "message": temp_report
               }
           },
           "id": "request_" + str(random.randint(1,101))
       }
   ```

1. 將下列項目壓縮成名為 `temp_monitor_python.zip` 的檔案。建立 ZIP 檔案時，只包含程式碼及其依存項目，而不包含資料夾。
   + **temp\$1monitor.py**。應用程式邏輯。
   + **greengrasssdk**。發佈 MQTT 訊息的 Python Greengrass Lambda 函數所需的程式庫。

   這是您的 Lambda 函數部署套件。

現在，建立使用部署套件的 Lambda 函數。

## 步驟 5：在 AWS Lambda 主控台中建立 Lambda 函數
<a name="connectors-console-create-function"></a>

在此步驟中，您會使用 AWS Lambda 主控台來建立 Lambda 函數，並將其設定為使用您的部署套件。然後，您會發佈函數版本和建立別名。

1. 首先，建立 Lambda 函數。

   1. <a name="lambda-console-open"></a>在 中 AWS 管理主控台，選擇**服務**，然後開啟 AWS Lambda 主控台。

   1. <a name="lambda-console-create-function"></a>選擇**建立函數**，然後選擇**從頭開始撰寫**。

   1. 在 **Basic information (基本資訊)** 區段中，使用下列值：
      + 針對**函數名稱**，請輸入 **TempMonitor**。
      + 針對**執行期**，選擇 **Python 3.7**。
      + 對於**許可**，請保留預設設定。這會建立授予基本 Lambda 許可的執行角色。不會使用此角色 AWS IoT Greengrass。

   1. <a name="lambda-console-save-function"></a>請在頁面底部，選擇**建立函式**。

1. 接著，註冊處理常式並上傳您的 Lambda 函數部署套件。

   1. <a name="lambda-console-upload"></a>在**程式碼**索引標籤的**程式碼來源**下，選擇**上傳來源**。從下拉式清單中，選擇 **.zip 檔案**。  
![\[從下拉式清單上傳，並反白顯示 .zip 檔案。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. 選擇**上傳**，然後選擇您的`temp_monitor_python.zip`部署套件。然後選擇 **Save (儲存)**。

   1. <a name="lambda-console-runtime-settings-para"></a>在函數的**程式碼**索引標籤的**執行時間設定**下，選擇**編輯**，然後輸入下列值。
      + 針對**執行期**，選擇 **Python 3.7**。
      + 對於 **Handler (處理常式)**，輸入 **temp\$1monitor.function\$1handler**。

   1. <a name="lambda-console-save-config"></a>選擇**儲存**。
**注意**  
 AWS Lambda 主控台上的**測試**按鈕不適用於此函數。 AWS IoT Greengrass 核心 SDK 不包含在 AWS Lambda 主控台中獨立執行 Greengrass Lambda 函數所需的模組。這些模組 （例如 `greengrass_common`) 會在部署到您的 Greengrass 核心之後提供給函數。

1. 現在，發佈 Lambda 函數的第一個版本，並為[該版本建立別名](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html)。
**注意**  
Greengrass 群組可以依別名 （建議） 或版本參考 Lambda 函數。使用別名可讓您更輕鬆地管理程式碼更新，因為您不必在更新函數程式碼時變更訂閱資料表或群組定義。反之，您只需將別名指向新的函數版本。

   1. <a name="shared-publish-function-version"></a>請從**操作**功能表中選擇**發行新版本**。

   1. <a name="shared-publish-function-version-description"></a>針對 **Version description (版本描述)**，輸入 **First version**，然後選擇 **Publish (發佈)**。

   1. 在 **TempMonitor: 1 ** 組態頁面，從 **Actions (動作)** 選單中選擇 **Create alias (建立別名)**。

   1. 在**建立警示**頁面上使用下列值：
      + 對於**名稱**，輸入 **GG\$1TempMonitor**。
      + 對於**版本**，選擇 **1**。
**注意**  
AWS IoT Greengrass 不支援 **\$1LATEST** 版本的 Lambda 別名。

   1. 選擇**建立**。

現在您已準備好將 Lambda 函數新增至 Greengrass 群組。

## 步驟 6：將 Lambda 函數新增至 Greengrass 群組
<a name="connectors-console-create-gg-function"></a>

在此步驟中，您將 Lambda 函數新增至 群組，然後設定其生命週期和環境變數。如需詳細資訊，請參閱[使用群組特定的組態控制 Greengrass Lambda 函數的執行](lambda-group-config.md)。

1. <a name="choose-add-lambda"></a>在群組組態頁面上，選擇 **Lambda 函數**索引標籤。

1. 在**我的 Lambda 函數**下，選擇**新增**。

1. 在**新增 Lambda 函數**頁面上，為您的 Lambda 函數選擇 **TempMonitor**。

1. 針對 **Lambda 函數版本**，選擇**別名：GG\$1TempMonitor**。

1. 選擇**新增 Lambda 函數**。

## 步驟 7：將訂閱新增到 Greengrass 群組
<a name="connectors-console-create-subscription"></a>

<a name="connectors-how-to-add-subscriptions-p1"></a>在此步驟中，您會新增訂閱，讓 Lambda 函數將輸入資料傳送至連接器。連接器定義它所訂閱的 MQTT 主題，所以這個訂閱使用其中一個主題。這是範例函數發佈到的同一個主題。

<a name="connectors-how-to-add-subscriptions-p2"></a>在本教學課程中，您也會建立訂閱，允許函數接收來自 AWS IoT 的模擬溫度讀數 AWS IoT ，並允許 從連接器接收狀態資訊。

1. <a name="shared-subscriptions-addsubscription"></a>在群組組態頁面上，選擇**訂閱**索引標籤，然後選擇**新增訂閱**。

1. 在**建立訂閱**頁面上，設定來源和目標，如下所示：

   1. 針對**來源類型**，選擇 **Lambda 函數**，然後選擇 **TempMonitor**。

   1. 針對**目標類型**，選擇**連接器**，然後選擇 **Twilio Notifications**。

1. 針對**主題篩選條件**，選擇 **twilio/txt**。

1. 選擇**建立訂閱**。

1. 重複步驟 1 - 4 來建立允許 AWS IoT 將訊息發佈至 函數的訂閱。

   1. 針對**來源類型**，選擇**服務**，然後選擇 **IoT Cloud**。

   1. 針對**選取目標**，選擇 **Lambda 函數**，然後選擇 **TempMonitor**。

   1. 針對 **Topic filter (主題篩選條件)**，輸入 **temperature/input**。

1. 重複步驟 1 – 4，建立允許連接器發佈訊息至 AWS IoT的訂閱。

   1. 針對**來源類型**，選擇**連接器**，然後選擇 **Twilio Notifications**。

   1. 針對**目標類型**，選擇**服務**，然後選擇 **IoT 雲端**。

   1. 針對 **Topic filter (主題篩選條件)**，已為您輸入 **twilio/message/status**。此為連接器所發佈到的預先定義主題。

## 步驟 8：部署 Greengrass 群組
<a name="connectors-console-create-deployment"></a>

將群組部署到核心裝置。

1. <a name="shared-deploy-group-checkggc"></a>確定 AWS IoT Greengrass 核心正在執行。如果需要，請在您的 Raspberry Pi 終端機執行以下命令。

   1. 檢查精靈是否有在運作：

      ```
      ps aux | grep -E 'greengrass.*daemon'
      ```

      若輸出的 `root` 含有 `/greengrass/ggc/packages/ggc-version/bin/daemon` 項目，則精靈有在運作。
**注意**  
路徑中的版本取決於核心裝置上安裝的核心 AWS IoT Greengrass 軟體版本。

   1. 若要啟動協助程式：

      ```
      cd /greengrass/ggc/core/
      sudo ./greengrassd start
      ```

1. <a name="shared-deploy-group-deploy"></a>在群組組態頁面上，選擇**部署**。

1. <a name="shared-deploy-group-ipconfig"></a>

   1. 在 **Lambda 函數**索引標籤**的系統 Lambda 函數**區段下，選取 **IP 偵測器**，然後選擇**編輯**。

   1. 在**編輯 IP 偵測器設定**對話方塊中，選取**自動偵測和覆寫 MQTT 代理程式端點**。

   1. 選擇**儲存**。

      這可讓裝置自動取得核心的連接資訊，例如 IP 位址、DNS、連接埠編號。建議自動偵測，但 AWS IoT Greengrass 也支援手動指定的端點。只會在第一次部署群組時收到復原方法的提示。
**注意**  
如果出現提示，請授予許可來建立 [Greengrass 服務角色](service-role.md)，並將其與目前 AWS 帳戶 中的 建立關聯 AWS 區域。此角色允許 AWS IoT Greengrass 存取 AWS 服務中的資源。

      此**部署**頁面會顯示部署時間戳記、版本 ID 和狀態。完成後，部署顯示的狀態應為**已完成**。

      如需故障診斷協助，請參閱[故障診斷 AWS IoT Greengrass](gg-troubleshooting.md)。

**注意**  
<a name="one-conn-version"></a>Greengrass 群組一次只能包含一個版本的連接器。若要取得有關升級連接器版本的資訊，請參閱[升級連接器版本](connectors.md#upgrade-connector-versions)。

## 測試解決方案
<a name="connectors-console-test-solution"></a>

1. <a name="choose-test-page"></a>在 AWS IoT 主控台首頁上，選擇**測試**。

1. 對於**訂閱主題**，請使用下列值，然後選擇**訂閱**。Twilio Notifications 連接器會將狀態資訊發佈至此主題。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/connectors-console.html)

1. 針對**發佈至主題**，請使用下列值，然後選擇**發佈**以叫用函數。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/connectors-console.html)

   如果成功，收件人會收到文字訊息，而主控台會顯示來自[輸出資料](twilio-notifications-connector.md#twilio-notifications-connector-data-output)`success`的狀態。

   現在，將輸入訊息中的 `temperature` 變更為 **29** 並發佈。由於此值小於 30，TempMonitor 函數不會觸發 Twilio 訊息。

## 另請參閱
<a name="connectors-console-see-also"></a>
+ [使用 Greengrass 連接器來整合服務和通訊協定](connectors.md)
+  [AWS提供的 Greengrass 連接器](connectors-list.md)