傳統訂閱路由器 - AWS IoT Greengrass

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

傳統訂閱路由器

舊版訂閱路由器 (aws.greengrass.LegacySubscriptionRouter) 會在 Greengrass 核心裝置上管理訂閱。訂閱是 AWS IoT Greengrass V1 的一項功能,定義 Lambda 函數可用於核心裝置上的MQTT訊息傳送的主題。如需詳細資訊,請參閱《AWS IoT Greengrass V1 開發人員指南》中的MQTT訊息工作流程中的受管訂閱

您可以使用此元件來啟用使用 AWS IoT Greengrass Core 的連接器元件和 Lambda 函數元件的訂閱SDK。

注意

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

版本

此元件具有下列版本:

  • 2.1.x

  • 2.0.x

Type

元件是一般元件 (aws.greengrass.generic)。Greengrass 核會執行元件的生命週期指令碼。

如需詳細資訊,請參閱元件類型

作業系統

此元件只能在 Linux 核心裝置上安裝。

要求

此元件有下列需求:

  • 舊版訂閱路由器支援在 中執行VPC。

相依性

部署元件時, AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求,才能成功部署元件。本節列出此元件發行版本的相依性,以及為每個相依性定義元件版本的語意版本限制。您也可以在 AWS IoT Greengrass 主控台中檢視每個版本元件的相依性。在元件詳細資訊頁面上,尋找相依性清單。

2.1.13

下表列出此元件 2.1.13 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.15.0 軟式
2.1.12

下表列出此元件 2.1.12 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.14.0 軟式
2.1.11

下表列出此元件 2.1.11 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.13.0 軟式
2.1.10

下表列出此元件 2.1.10 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.12.0 軟式
2.1.9

下表列出此元件 2.1.9 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.11.0 軟式
2.1.8

下表列出此元件 2.1.8 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.10.0 軟式
2.1.7

下表列出此元件 2.1.7 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.9.0 軟式
2.1.6

下表列出此元件 2.1.6 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.8.0 軟式
2.1.5

下表列出此元件 2.1.5 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.7.0 軟式
2.1.4

下表列出此元件 2.1.4 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.6.0 軟式
2.1.3

下表列出此元件 2.1.3 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.5.0 軟式
2.1.2

下表列出此元件 2.1.2 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.4.0 軟式
2.1.1

下表列出此元件 2.1.1 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.3.0 軟式
2.1.0

下表列出此元件 2.1.0 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.0 <2.2.0 軟式
2.0.3

下表列出此元件 2.0.3 版的相依性。

相依性 相容版本 相依性類型
Greengrass 核 >=2.0.3 <2.1.0 軟式

如需元件相依性的詳細資訊,請參閱元件配方參考

組態

此元件提供下列組態參數,您可以在部署元件時自訂這些參數。

v2.1.x
subscriptions

(選用) 在核心裝置上啟用的訂閱。這是物件,其中每個金鑰都是唯一的 ID,而每個值都是定義該連接器訂閱的物件。當您部署使用 AWS IoT Greengrass Core 的 V1 連接器元件或 Lambda 函數時,您必須設定訂閱SDK。

每個訂閱物件都包含下列資訊:

id

此訂閱的唯一 ID。此 ID 必須符合此訂閱物件的金鑰。

source

使用 AWS IoT Greengrass Core SDK來發佈MQTT訊息的 Lambda 函數,主題為您在 中指定的主題subject。請指定下列其中一項:

  • 核心裝置上的 Lambda 函數元件名稱。使用 component: 字首指定元件名稱,例如 component:com.example.HelloWorldLambda

  • 核心裝置上的 Lambda 函數 Amazon Resource Name (ARN)。

    重要

    如果 Lambda 函數的版本變更,您必須使用新版本的函數設定訂閱。否則,此元件在版本符合訂閱之前,不會路由訊息。

    您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 $LATEST 之類的版本別名。

若要部署 V1 連接器元件的訂閱,請指定元件的名稱或連接器元件的 Lambda 函數ARN的 。

subject

來源和目標可發佈和接收訊息MQTT的主題或主題篩選條件。此值支援 +#主題萬用字元。

target

接收您在 中指定主題MQTT訊息的目標subject。訂閱會指定 source函數將MQTT訊息發佈到 AWS IoT Core 核心裝置上的 Lambda 函數或 。請指定下列其中一項:

  • cloudsource 函數會將MQTT訊息發佈至 AWS IoT Core。

  • 核心裝置上的 Lambda 函數元件名稱。使用 component: 字首指定元件名稱,例如 component:com.example.HelloWorldLambda

  • 核心裝置上的 Lambda 函數 Amazon Resource Name (ARN)。

    重要

    如果 Lambda 函數的版本變更,您必須使用新版本的函數設定訂閱。否則,此元件在版本符合訂閱之前,不會路由訊息。

    您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 $LATEST 之類的版本別名。

預設:無訂閱

範例組態更新 (定義訂閱 AWS IoT Core)

下列範例指定 com.example.HelloWorldLambda Lambda 函數元件在hello/world主題 AWS IoT Core 上將MQTT訊息發佈至 。

{ "subscriptions": { "Greengrass_HelloWorld_to_cloud": { "id": "Greengrass_HelloWorld_to_cloud", "source": "component:com.example.HelloWorldLambda", "subject": "hello/world", "target": "cloud" } } }
範例組態更新 (定義另一個 Lambda 函數的訂閱)

下列範例指定 com.example.HelloWorldLambda Lambda 函數元件將MQTT訊息發佈至hello/world主題上的 com.example.MessageRelay Lambda 函數元件。

{ "subscriptions": { "Greengrass_HelloWorld_to_MessageRelay": { "id": "Greengrass_HelloWorld_to_MessageRelay", "source": "component:com.example.HelloWorldLambda", "subject": "hello/world", "target": "component:com.example.MessageRelay" } } }
v2.0.x
subscriptions

(選用) 在核心裝置上啟用的訂閱。這是物件,其中每個金鑰都是唯一的 ID,而每個值都是定義該連接器訂閱的物件。當您部署使用 AWS IoT Greengrass Core 的 V1 連接器元件或 Lambda 函數時,您必須設定訂閱SDK。

每個訂閱物件都包含下列資訊:

id

此訂閱的唯一 ID。此 ID 必須符合此訂閱物件的金鑰。

source

使用 AWS IoT Greengrass Core SDK來發佈MQTT訊息的 Lambda 函數,主題為您在 中指定的主題subject。指定下列內容:

  • 核心裝置上的 Lambda 函數 Amazon Resource Name (ARN)。

    重要

    如果 Lambda 函數的版本變更,您必須使用新版本的函數設定訂閱。否則,此元件在版本符合訂閱之前,不會路由訊息。

    您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 $LATEST 之類的版本別名。

若要部署 V1 連接器元件的訂閱,請指定連接器元件 Lambda 函數ARN的 。

subject

來源和目標可發佈和接收訊息MQTT的主題或主題篩選條件。此值支援 +#主題萬用字元。

target

接收您在 中指定主題MQTT訊息的目標subject。訂閱會指定 source函數將MQTT訊息發佈到 AWS IoT Core 核心裝置上的 Lambda 函數或 。請指定下列其中一項:

  • cloudsource 函數會將MQTT訊息發佈至 AWS IoT Core。

  • 核心裝置上的 Lambda 函數 Amazon Resource Name (ARN)。

    重要

    如果 Lambda 函數的版本變更,您必須使用新版本的函數設定訂閱。否則,此元件在版本符合訂閱之前,不會路由訊息。

    您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 $LATEST 之類的版本別名。

預設:無訂閱

範例組態更新 (定義訂閱 AWS IoT Core)

下列範例指定 Greengrass_HelloWorld函數在hello/world主題 AWS IoT Core 上將MQTT訊息發佈至 。

"subscriptions": { "Greengrass_HelloWorld_to_cloud": { "id": "Greengrass_HelloWorld_to_cloud", "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5", "subject": "hello/world", "target": "cloud" } }
範例組態更新 (定義另一個 Lambda 函數的訂閱)

下列範例指定 Greengrass_HelloWorld函數將MQTT訊息發佈至hello/world主題Greengrass_MessageRelay上的 。

"subscriptions": { "Greengrass_HelloWorld_to_MessageRelay": { "id": "Greengrass_HelloWorld_to_MessageRelay", "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5", "subject": "hello/world", "target": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_MessageRelay:5" } }

本機日誌檔案

此元件不會輸出日誌。

變更記錄

下表說明每個版本元件的變更。

版本

變更

2.1.13

針對 Greengrass nucleus 2.14.0 版更新版本。

2.1.12

針對 Greengrass nucleus 2.13.0 版更新版本。

2.1.11

針對 Greengrass nucleus 2.12.0 版更新版本。

2.1.10

針對 Greengrass nucleus 2.11.0 版更新版本。

2.1.9

針對 Greengrass nucleus 2.10.0 版更新版本。

2.1.8

針對 Greengrass nucleus 2.9.0 版更新版本。

2.1.7

針對 Greengrass nucleus 2.8.0 版更新版本。

2.1.6

針對 Greengrass nucleus 2.7.0 版更新版本。

2.1.5

針對 Greengrass nucleus 2.6.0 版更新版本。

2.1.4

針對 Greengrass nucleus 2.5.0 版更新版本。

2.1.3

針對 Greengrass nucleus 2.4.0 版更新版本。

2.1.2

針對 Greengrass nucleus 2.3.0 版更新版本。

2.1.1

針對 Greengrass nucleus 2.2.0 版更新版本。

2.1.0

錯誤修正和改善
  • 新增支援以指定元件名稱,而不是ARNs針對 sourcetarget。如果您指定訂閱的元件名稱,則不需要在每次 Lambda 函數版本變更時重新設定訂閱。

2.0.3

初始版本。