設定新的 V2 核心裝置以測試 V1 應用程式 - AWS IoT Greengrass

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

設定新的 V2 核心裝置以測試 V1 應用程式

設定新的 AWS IoT Greengrass V2 核心裝置,為您的 AWS IoT Greengrass V1 應用程 AWS式部署和測試提供的元件和 AWS Lambda 功能。您也可以使用此 V2 核心裝置來開發和測試在核心裝置上執行原生處理程序的其他自訂 Greengrass 元件。在 V2 核心裝置上測試應用程式之後,您可以將現有的 V1 核心裝置升級至 V2,並部署提供 V1 功能的 V2 元件。

步驟 1:在新設備 AWS IoT Greengrass V2 上安裝

在新裝置上安裝 AWS IoT Greengrass 核心軟體 v2.x。您可以依照入門教學課程來設定裝置,並學習如何開發和部署元件。本教學課程使用自動佈建來快速設定裝置。當您安裝 AWS IoT Greengrass 核心軟體 v2.x 時,請指定要部署 Greengrass CLI--deploy-dev-tools引數,以便您可以直接在裝置上開發、測試和偵錯元件。如需有關其他安裝選項的詳細資訊,包括如何在 Proxy 後方安裝 AWS IoT Greengrass Core 軟體或使用硬體安全性模組 (HSM),請參閱安裝 AWS IoT Greengrass 核心軟體

(選擇性) 啟用記錄至 Amazon CloudWatch 日誌

若要讓 V2 核心裝置將日誌上傳到 Amazon CloudWatch Logs,您可以部署 AWS提供的日誌管理員元件。您可以使用 CloudWatch 記錄檔來檢視元件記錄,以便在不存取核心裝置的檔案系統的情況下偵錯和疑難排解。如需詳細資訊,請參閱 監控AWS IoT Greengrass日誌

步驟 2:建立和部署 AWS IoT Greengrass V2 元件以移轉 AWS IoT Greengrass V1 應用程式

您可以在上執行大多數 AWS IoT Greengrass V1 應用程式 AWS IoT Greengrass V2。您可以將 Lambda 函數匯入為執行於上的元件 AWS IoT Greengrass V2,也可以使用AWS提供與 AWS IoT Greengrass 連接器相同功能的元件

您還可以開發自定義組件來構建任何功能或運行時在 Greengrass 核心設備上運行。如需有關如何在本機開發和測試元件的資訊,請參閱建立 AWS IoT Greengrass 元件

匯入 V1 Lambda 函數

您可以將 Lambda 函數匯入為 AWS IoT Greengrass V2 元件。從下列方法中選擇:

  • 將 V1 Lambda 函數直接匯入為綠色元件。

  • 更新您的 Lambda 函數以使用 AWS IoT Device SDK v2 中的 Greengrass 程式庫,然後將 Lambda 函數匯入為 Greengrass 元件。

  • 建立使用非 Lambda 程式碼和 AWS IoT Device SDK v2 的自訂元件,以實作與 Lambda 函數相同的功能。

如果您的 Lambda 函數使用諸如串流管理員或本機密等功能,您必須定義封裝這些功能的所 AWS提供元件的相依性。部署 Lambda 函數元件時,部署也會包含您定義為相依性之每個功能的元件。在部署中,您可以設定參數,例如要部署到核心裝置的密碼。並非所有 V1 功能都需要 V2 上的 Lambda 函數具有元件相依性。下列清單說明如何在 V2 Lambda 函數元件中使用 V1 功能。

  • 使用其他 AWS 服務

    如果您的 Lambda 函數使用 AWS 認證向其他 AWS 服務發出請求,則核心裝置的權杖交換角色必須允許核心裝置執行 Lambda 函數使用的 AWS 作業。如需詳細資訊,請參閱 授權核心裝置與 AWS 服務互動

  • 流管理器

    如果您的 Lambda 函數使用串流管理員aws.greengrass.StreamManager,請在匯入函數時指定為元件相依性。部署串流管理員元件時,請指定要為目標核心裝置設定的串流管理員參數。核心裝置的權杖交換角色必須允許核心裝置存取您搭配串流管理員使用的 AWS 雲端 目的地。如需詳細資訊,請參閱 串流管理員

  • 當地秘密

    如果您的 Lambda 函數使用本機密,請在匯入函數時指定aws.greengrass.SecretManager為元件相依性。部署 Secret Manager 元件時,請指定要部署到目標核心裝置的秘密資源。核心設備的令牌交換角色必須允許核心設備檢索要部署的秘密資源。如需詳細資訊,請參閱 秘密經理

    部署 Lambda 函數元件時,請將其設定為具有允許在 V2 中使用 GetSecretValue IPC 作業的 IPC 授權政策。 AWS IoT Device SDK

  • 局部陰影

    如果您的 Lambda 函數與本機陰影互動,您必須更新 Lambda 函數程式碼才能使用 AWS IoT Device SDK V2。您也必須在匯入函數時指定aws.greengrass.ShadowManager為元件相依性。如需詳細資訊,請參閱 與裝置陰影互動

    部署 Lambda 函數元件時,請將其設定為具有 IPC 授權原則,以授與 V2 中使用陰影 IPC 作業的 AWS IoT Device SDK 權限。

  • 訂閱

    • 如果您的 Lambda 函數訂閱來自雲端來源的訊息,請在匯入函數時將這些訂閱指定為事件來源。

    • 如果您的 Lambda 函數訂閱來自其他 Lambda 函數的訊息,或者您的 Lambda 函數將訊息發佈到 AWS IoT Core 或其他 Lambda 函數,請在部署 Lambda 函數時設定和部署舊版訂閱路由器元件。部署舊版訂閱路由器元件時,請指定 Lambda 函數使用的訂閱。

      注意

      只有當 Lambda 函數使用 AWS IoT Greengrass Core SDK 中的函數時,才需要舊版訂閱路由器元件。publish()如果您更新 Lambda 函數程式碼以使用 AWS IoT Device SDK V2 中的處理序間通訊 (IPC) 介面,則不需要部署舊版訂閱路由器元件。如需詳細資訊,請參閱下列處理序間通訊服務:

    • 如果您的 Lambda 函數訂閱來自本機連線裝置的訊息,請在匯入函數時將這些訂閱指定為事件來源。您還必須設定和部署 MQTT 橋接器元件,以將連線裝置的郵件轉送到您指定為事件來源的本機發佈/訂閱主題。

    • 如果您的 Lambda 函數將訊息發佈到本機連線的裝置,則必須更新 Lambda 函數程式碼,以使用 AWS IoT Device SDK V2 來發佈本機發佈/訂閱訊息。您也必須設定並部署 MQTT 橋接器元件,以將訊息從本機發佈/訂閱訊息代理程式轉送至連線的裝置。

  • 本機磁碟區和裝置

    如果您的容器化 Lambda 函數存取本機磁碟區或裝置,請在匯入 Lambda 函數時指定這些磁碟區和裝置。此功能不需要組件依賴關係。

如需詳細資訊,請參閱 執行AWS Lambda函數

使用 V1 連接器

您可以部署 AWS提供與某些 AWS IoT Greengrass 連接器相同功能的元件。建立部署時,您可以設定連接器的參數。

下列 AWS IoT Greengrass V2 元件提供 Greengrass V1 連接器功能:

運行碼頭容器

AWS IoT Greengrass V2 不提供直接取代 V1 Docker 應用程式部署連接器的元件。不過,您可以使用 Docker 應用程式管理員元件下載 Docker 映像,然後建立自訂元件,以便從下載的映像執行 Docker 容器。如需詳細資訊,請參閱 運行碼頭容器碼頭應用程序管理器

執行機器學習推論

AWS IoT Greengrass V2 提供安裝 Amazon SageMaker Edge 管理器代理程式的 Amazon SageMaker 邊緣管理器元件,並可讓您使用 SageMaker 新編譯的模型做為 Greengrass 核心裝置上的模型元件。 AWS IoT Greengrass V2 還提供在您的設備上安裝深度學習運行時TensorFlow Lite 的組件。您可以使用對應的 DLR 和 TensorFlow Lite 模型和推論組件來執行樣本圖像分類和對象檢測推論。若要使用其他機器學習架構 (例如 MXNet 和) TensorFlow,您可以開發使用這些架構的自訂元件。

Connect V1 Greengrass 設備

中的已連線裝 AWS IoT Greengrass V1 置稱為中的用戶端裝置 AWS IoT Greengrass V2。 AWS IoT Greengrass V2 對用戶端裝置的支援向後相容 AWS IoT Greengrass V1,因此您可以將 V1 用戶端裝置連接到 V2 核心裝置,而無需變更其應用程式程式碼。若要讓用戶端裝置連線到 V2 核心裝置,請部署啟用用戶端裝置支援的 Greengrass 元件,並將用戶端裝置與核心裝置建立關聯。若要在用戶端裝置、 AWS IoT Core 雲端服務和 Greengrass 元件 (包括 Lambda 函數) 之間轉送訊息,請部署並設定 M QTT 橋接器元件。您可以部署 IP 偵測器元件以自動偵測連線資訊,也可以手動管理端點。如需詳細資訊,請參閱 與本機 IoT 裝置互動

啟用本機陰影服務

在中 AWS IoT Greengrass V2,本機陰影服務是由 AWS提供的陰影管理員元件實作。 AWS IoT Greengrass V2 也包括對已命名陰影的支援。若要讓您的元件與本機陰影互動,並將陰影狀態同步到 AWS IoT Core、設定和部署陰影管理員元件,以及在元件程式碼中使用陰影 IPC 作業。如需詳細資訊,請參閱 與裝置陰影互動

與整合 AWS IoT SiteWise

如果您使用 V1 核心裝置做為 AWS IoT SiteWise 閘道,請依照指示將新的 V2 核心裝置設定為 AWS IoT SiteWise 閘道。 AWS IoT SiteWise 提供可為您部署 AWS IoT SiteWise 元件的安裝指令碼。

步驟 3:測試您的 AWS IoT Greengrass V2 應用程式

在您建立 V2 元件並將其部署到新的 V2 核心裝置之後,請確認您的應用程式符合您的期望。您可以檢查設備的日誌以查看組件的標準輸出(stdout)和標準錯誤(stderr)消息。如需詳細資訊,請參閱 監控AWS IoT Greengrass日誌

如果您將 Greengrass CLI 部署到核心裝置,您可以使用它來偵錯元件及其組態。如需詳細資訊,請參閱 Greengrass CLI 命令

驗證應用程式在 V2 核心裝置上運作之後,您可以將應用程式的 Greengrass 元件部署到其他核心裝置。如果您開發了執行原生處理序或 Docker 容器的自訂元件,則必須先將這些元件發佈到 AWS IoT Greengrass 服務,才能將它們部署到其他核心裝置。