使用 Greengrass 連接器來整合服務和通訊協定 - AWS IoT Greengrass

若我們提供該指南英語版本的翻譯,在有任何牴觸的狀況下請以英文版本的指南為主。其透過機器翻譯提供翻譯。

使用 Greengrass 連接器來整合服務和通訊協定

只有 AWS IoT Greengrass Core v1.7 與更新版本才提供這項功能。

Greengrass 連接器是預先建置的模組,可協助加速一般邊緣案例的開發生命週期。這可讓您更輕鬆與本機基礎設施、裝置通訊協定、AWS 和其他雲端服務互動。使用連接器,您可以花費較少的時間學習新的通訊協定和 API,有更多時間專注於業務上重要的邏輯。

下圖顯示連接器在 AWS IoT Greengrass 領域中的定位。

連接器連接到裝置、服務和本機資源。

許多連接器都使用MQTT消息與設備進行通信, Greengrass Lambda 組中的功能,或 AWS IoT 本地影子服務。在以下示例中, Twilio 通知 連接器從用戶定義接收MQTT消息 Lambda 功能,使用本地引用的 AWS Secrets Manager,並致電TwilioAPI。

從 Lambda 函數接收 MQTT 訊息和呼叫服務的連接器。

如需建立此解決方案的教學課程,請參閱 Greengrass 連接器入門 (主控台) 和 。Greengrass 連接器入門 (CLI).

Greengrass 連接器可以協助您快速擴展裝置功能或建立單一用途的裝置。連接器可以讓您更輕鬆地完成以下任務:

  • 實作可重複使用的商業邏輯。

  • 與雲端和本機服務 (包括 AWS 和第三方服務) 互動。

  • 擷取和處理裝置資料。

  • 使用 MQTT 主題訂閱和使用者定義的 Lambda 函數啟用裝置對裝置呼叫。

AWS 提供一組 Greengrass 連接器,以簡化與常見服務和資料來源的互動。這些預先建置的模組可提供記錄和診斷、補充、產業資料處理及警示和簡訊的案例。如需詳細資訊,請參閱AWS 提供的 Greengrass 連接器.

Requirements

連接器有下列要求:

  • 您必須符合您所使用的每個連接器的要求。這些要求可能包括最低 AWS IoT Greengrass 核心軟體版本、裝置先決條件、必要的許可及限制。如需詳細資訊,請參閱AWS 提供的 Greengrass 連接器.

  • 一個 Greengrass 群組只能包含特定連接器的一個設定執行個體,但執行個體可用於多個訂閱。如需詳細資訊,請參閱組態參數.

  • 默認容器化 GreengrassGroup設置爲 無容器,組中的連接器必須運行,無需容器化。查找支持的連接器 無容器 模式,參見 AWS 提供的 Greengrass 連接器.

使用 Greengrass 連接器

連接器是一種群組元件。就像其他群組元件 (例如裝置和使用者定義的 Lambda 函數),您將連接器新增至群組、進行設定,然後部署到 。AWS IoT Greengrass 核心. 連接器在核心環境中執行。

有些連接器可部署為簡單的獨立應用程式。例如, Device Defender 連接器從核心設備讀取系統度量標準,並將其發送到 AWS IoT Device Defender 用於分析。

其他連接器可在較大的解決方案中做為建置區塊。以下示例解決方案使用 Modbus-RTU 協定界面卡 來處理傳感器和 Twilio 通知 連接器觸發Twilio消息。


                數據流量 Lambda 功能至 Modbus-RTU 協定界面卡 連接器至 Lambda 功能至 Twilio 通知 連接器到Twilio。

解決方案通常包含緊鄰連接器的使用者定義 Lambda 函數,並處理連接器傳送或接收的資料。在此範例中,TempMonitor 函數從 Modbus-RTU 協定界面卡 接收資料、執行一些商業邏輯,然後將資料傳送至 。Twilio 通知.

若要建立和部署解決方案,請依照此一般程序:

  1. 規劃高階資料流程。識別您需要使用的資料來源、資料管道、服務、通訊協定和資源。在範例解決方案中,這包括經過 Modbus RTU 通訊協定、實體 Modbus 序列埠和 Twilio 的資料。

  2. 識別要在解決方案中包含的連接器,並將其新增到群組。此範例解決方案使用 Modbus-RTU 協定界面卡 與 。Twilio 通知. 為了協助尋找適用您情境的連接器並了解其個別要求,請參閱 AWS 提供的 Greengrass 連接器.

  3. 識別是否需要使用者定義的 Lambda 函數、裝置或資源,接著建立並將其新增到群組。這可能包括包含了商業邏輯的函數,或將資料處理成解決方案中另一個實體所需的格式。範例解決方案使用函數傳送 Modbus RTU 請求和觸發 Twilio 通知。此外也包含 Modbus RTU 序列埠的本機裝置資源和 Twilio 驗證字符的私密資源。

    注意

    私密資源會參考來自 的密碼、字符和其他私密。AWS Secrets Manager. 連接器和 Lambda 函數可以使用私密來驗證服務和應用程式。默認情況下, AWS IoT Greengrass 可以使用以“”開頭的名稱訪問密碼格林草格“”。如需詳細資訊,請參閱將私密部署至 AWS IoT Greengrass 核心.

  4. 建立訂閱以允許解決方案中的實體交換 MQTT 訊息。若訂閱中使用連接器,則連接器和訊息來源或目標必須使用連接器支援的預先定義主題語法。如需詳細資訊,請參閱輸入和輸出.

  5. 將群組部署至 Greengrass 核心。

若要了解如何建立和部署連接器,請參閱以下教學課程:

組態參數

許多連接器會提供參數讓您自訂行為或輸出。這些參數用於連接器生命週期的初始化期間、執行時間或其他時間。

參數類型和用法依連接器而有不同。例如, SNS 連接器有一個配置默認SNS主題的參數, Device Defender 有一個配置數據採樣速率的參數。

一個群組版本可以包含多個連接器,但特定連接器一次只能有一個執行個體。這表示群組中的每個連接器都僅會有一個作用中的組態。然而,連接器執行個體可在群組中的多個訂閱中使用。例如,您可以建立訂閱,以允許許多裝置將資料傳送到 Kinesis Firehose 連接器。

用於存取群組資源的參數

Greengrass 連接器使用群組資源存取核心裝置上的檔案系統、連接埠、周邊設備和其他本機資源。如果連接器需要存取群組資源,則會提供相關的組態參數。

群組資源包括:

  • 本機資源。. Greengrass 核心裝置上存在的目錄、檔案、連接埠、接腳和周邊設備。

  • 機器學習資源. 在雲端中訓練並部署至核心的機器學習模型,用於本機推論。

  • 私密資源。. 來自 的密碼、金鑰、字符或任意文字的本機、加密副本。AWS Secrets Manager. 連接器可以安全地存取這些本機私密,並使用它們來向服務或本機基礎設施進行驗證。

例如, Device Defender 啓用對主機中系統度量標準的訪問 /proc 的目錄和參數 Twilio 通知 啓用對本地存儲的Twilio認證令牌的訪問。

更新連接器參數

參數是在連接器新增到 Greengrass 群組時設定。新增連接器之後,您可以變更參數值。

  • 在 主控台中 從組配置頁面打開 連接器,從連接器的上下文菜單中選擇 編輯.

    注意

    如果連接器使用的私密資源後來變更為參考不同的私密,則您必須編輯連接器的參數並確認變更。

  • 在API中: 創建定義新配置的連接器的另一個版本。

    AWS IoT Greengrass API 使用版本來管理群組。版本是不變的,因此,若要新增或變更群組元件—例如群組的裝置、函式和資源—您必須建立新的或更新元件的版本。然後您可以建立和部署包含每個元件目標版本的群組版本。

變更連接器組態後,您必須部署群組,以將變更傳播至核心。

輸入和輸出

許多 Greengrass 連接器可藉由傳送和接收 MQTT 訊息與其他實體通訊。MQTT通信受訂閱控制,允許連接器交換數據 Lambda Greengrass集團的功能、設備和其他連接器,或者 AWS IoT 本地影子服務。若要允許此通訊,您必須在連接器所屬的群組中建立訂閱。如需詳細資訊,請參閱MQTT 簡訊工作流程中的受管訂閱.

連接器可以是訊息發佈者、訊息訂閱者或兩者。每個連接器都會定義其發佈或訂閱的 MQTT 主題。這些預先定義的主題必須在連接器是訊息來源或訊息目標的訂閱中使用。如需包括為連接器設定訂閱之步驟的教學課程,請參閱 Greengrass 連接器入門 (主控台) 和 。Greengrass 連接器入門 (CLI).

注意

許多連接器也有內建的通訊模式可以與雲端或本機服務互動。這些因素因連接器而異,可能要求您配置參數或添加權限 組角色. 如需連接器要求的相關資訊,請參閱 AWS 提供的 Greengrass 連接器.

輸入主題

大多數連接器會接收 MQTT 主題的輸入資料。有些連接器會訂閱輸入資料的多個主題。例如,序列串流 連接器支援兩個主題:

  • serial/+/read/#

  • serial/+/write/#

針對此連接器,讀取和寫入請求會傳送至對應的主題。建立訂閱時,務必使用適用於實作的主題。

TheThethe +# 以前示例中的字符爲通配符。這些萬用字元可讓訂閱者在多個主題上接收訊息,並可讓發佈者自訂他們發佈到的主題。

  • TheThethe + 通配符可以顯示在主題層次結構中的任何位置。這可替換成一個階層項目。

    例如,對話題 sensor/+/input,可以將消息發佈至主題 sensor/id-123/input 但不是 sensor/group-a/id-123/input.

  • TheThethe # 通配符只能顯示在主題層次結構的末尾。這可替換為零或多個階層。

    例如,對話題 sensor/#,可以將消息發佈至 sensor/sensor/id-123,和 sensor/group-a/id-123,但不是 sensor.

只有在訂閱主題時,萬用字元才有效。無法將訊息發佈到包含萬用字元的主題。請參閱連接器的說明文件,以了解其輸入或輸出主題的要求。如需詳細資訊,請參閱AWS 提供的 Greengrass 連接器.

容器化支援

根據預設,大部分的連接器會在由 管理之隔離執行階段環境中的 Greengrass 核心上執行。AWS IoT Greengrass. 這些運行時環境,稱爲 容器,在連接器和主機系統之間提供隔離,爲主機和連接器提供更多安全性。

但是,在某些環境下,如您運行的一些環境中不支持Greengrass集裝箱化 AWS IoT Greengrass 在docker容器或舊的Linux內容中,而不是cgroups。在這些環境中,連接器必須在 無容器 模式。查找支持的連接器 無容器 模式,參見 AWS 提供的 Greengrass 連接器. 有些連接器會以此模式原生執行,而有些連接器可讓您設定隔離模式。

也可以將隔離模式設置爲 無容器 在支持Greengrass容器化的環境中,建議使用 Greengrass容器 可能的模式。

注意

TheThethe 默認容器化 Greengrass集團的設置不適用於連接器。

升級連接器版本

連接器提供者可能會發佈新增功能、修正問題或改善效能的新版連接器。有關可用版本和相關變更的信息,請參閱 每個連接器的文檔.

在 AWS IoT 主控台 中,您可以檢查 Greengrass 群組中的連接器是否有新版本。

  1. 選擇 格林草格,然後選擇您的組。

  2. 選擇 連接器 顯示組中的連接器。

    如果連接器具有新版本, 可用 按鈕顯示在 升級 列。

  3. 若要升級連接器版本:

    1. 連接器 頁面, 升級 列,選擇 可用. TheThethe 升級連接器 頁面打開,並顯示當前參數設置(如適用)。

      選擇新的連接器版本,根據需要定義參數,然後選擇 升級.

    2. 訂閱 頁面,在組中添加新訂閱以替換將連接器作爲源或目標使用的任何內容。然後,移除舊訂閱。

      訂閱會根據版本參考連接器,因此如果您變更群組中的連接器版本,訂閱則會變成無效。

    3. 操作 菜單,選擇 部署 將您的更改部署到核心。

若要從 AWS IoT Greengrass API 升級連接器,請建立並部署加入更新連接器和訂閱的群組版本。使用與將連接器新增至群組相同的程序。如需瞭解如何使用 AWS CLI 配置和部署示例 Twilio 通知 連接器,參見 Greengrass 連接器入門 (CLI).

連接器的記錄

Greengrass 連接器包含將事件和錯誤寫入 Greengrass 日誌的 Lambda 函數。根據您的群組設定,日誌會寫入 CloudWatch Logs、本機檔案系統或兩者。來自連接器的日誌包含對應函數的 ARN。以下是來自 Kinesis Firehose 連接器的範例 ARN:

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

預設記錄組態使用以下目錄結構,將資訊層級日誌寫入檔案系統:

greengrass-root/ggc/var/log/user/region/aws/function-name.log

如需有關 Greengrass 的詳細資訊,請參閱 使用 AWS IoT Greengrass 日誌進行監控