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

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

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

設定新的AWS IoT Greengrass V2核心裝置,為您的應用程AWS式部署和測試提供的元件和AWS Lambda功AWS IoT Greengrass V1能。您也可以使用此 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 函數元件時,請將其設定為具有允許在AWS IoT Device SDK V2 中使用 GetSecretValue IPC 作業的 IPC 授權政策

  • 局部陰影

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

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

  • 訂閱

    • 如果您的 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不提供直接取代 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 函數) 之間轉送訊息,請部署並設定 MQTT 橋接器元件。您可以部署 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服務,才能將它們部署到其他核心裝置。