

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

# 傳統訂閱路由器
<a name="legacy-subscription-router-component"></a>

舊版訂閱路由器 (`aws.greengrass.LegacySubscriptionRouter`) 會管理 Greengrass 核心裝置上的訂閱。訂閱是 AWS IoT Greengrass V1 的一項功能，定義 Lambda 函數可用於核心裝置上的 MQTT 訊息的主題。如需詳細資訊，請參閱《*AWS IoT Greengrass V1 開發人員指南*[》中的 MQTT 訊息工作流程中的受管訂閱](https://docs.aws.amazon.com/greengrass/v1/developerguide/gg-sec.html#gg-msg-workflow)。

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

**注意**  <a name="legacy-subscription-router-requirement-note"></a>
只有在您的 Lambda 函數在 AWS IoT Greengrass 核心 SDK 中使用 `publish()` 函數時，才需要舊版訂閱路由器元件。如果您更新 Lambda 函數程式碼以使用 AWS IoT Device SDK V2 中的程序間通訊 (IPC) 界面，則不需要部署舊版訂閱路由器元件。如需詳細資訊，請參閱下列[程序間通訊](interprocess-communication.md)服務：  
[發佈/訂閱本機訊息](ipc-publish-subscribe.md)
[發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)

**Topics**
+ [版本](#legacy-subscription-router-component-versions)
+ [Type](#legacy-subscription-router-component-type)
+ [作業系統](#legacy-subscription-router-component-os-support)
+ [要求](#legacy-subscription-router-component-requirements)
+ [相依性](#legacy-subscription-router-component-dependencies)
+ [Configuration](#legacy-subscription-router-component-configuration)
+ [本機日誌檔案](#legacy-subscription-router-component-log-file)
+ [變更記錄](#legacy-subscription-router-component-changelog)

## 版本
<a name="legacy-subscription-router-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## Type
<a name="legacy-subscription-router-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="legacy-subscription-router-component-os-support"></a>

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

## 要求
<a name="legacy-subscription-router-component-requirements"></a>

此元件有下列需求：
+ 舊版訂閱路由器支援在 VPC 中執行。

## 相依性
<a name="legacy-subscription-router-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#legacy-subscription-router-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.15 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.17.0 | 軟式 | 

------
#### [ 2.1.14 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0 | 軟式 | 

------
#### [ 2.1.13 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0 | 軟式 | 

------
#### [ 2.1.12 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0 | 軟式 | 

------
#### [ 2.1.11 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.10 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.9 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.8 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.7 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.6 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.5 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.4 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.3 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.2 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.1 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.0 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------
#### [ 2.0.3 ]

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


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="legacy-subscription-router-component-configuration"></a>

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

------
#### [ v2.1.x ]

`subscriptions`  
<a name="legacy-subscription-router-component-configuration-subscriptions-intro"></a>（選用） 在核心裝置上啟用的訂閱。這是物件，其中每個金鑰都是唯一的 ID，而每個值都是定義該連接器訂閱的物件。當您部署使用 AWS IoT Greengrass Core SDK 的 V1 連接器元件或 Lambda 函數時，必須設定訂閱。  
每個訂閱物件都包含下列資訊：    
`id`  <a name="legacy-subscription-router-component-configuration-subscription-id"></a>
此訂閱的唯一 ID。此 ID 必須符合此訂閱物件的金鑰。  
`source`  
使用 AWS IoT Greengrass 核心 SDK 的 Lambda 函數，將 MQTT 訊息發佈至您在 中指定的主題`subject`。請指定下列其中一項：  
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-component-name"></a>核心裝置上的 Lambda 函數元件名稱。使用 `component:` 字首指定元件名稱，例如 **component:com.example.HelloWorldLambda**。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
若要部署 V1 連接器元件的訂閱，請指定元件的名稱或連接器元件 Lambda 函數的 ARN。  
`subject`  <a name="legacy-subscription-router-component-configuration-subscription-subject"></a>
來源和目標可發佈和接收訊息的 MQTT 主題或主題篩選條件。此值支援 `+`和 `#`主題萬用字元。  
`target`  
<a name="legacy-subscription-router-component-configuration-subscription-target-intro"></a>針對您在 中指定的主題接收 MQTT 訊息的目標`subject`。訂閱指定 `source`函數將 MQTT 訊息發佈到 AWS IoT Core 核心裝置上的 Lambda 函數或 。請指定下列其中一項：  
+ <a name="legacy-subscription-router-component-configuration-subscription-target-cloud"></a>`cloud`。 `source` 函數會將 MQTT 訊息發佈至 AWS IoT Core。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-component-name"></a>核心裝置上的 Lambda 函數元件名稱。使用 `component:` 字首指定元件名稱，例如 **component:com.example.HelloWorldLambda**。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
預設：無訂閱

**Example 範例組態更新 （定義訂閱 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"
    }
  }
}
```

**Example 範例組態更新 （定義另一個 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`  
<a name="legacy-subscription-router-component-configuration-subscriptions-intro"></a>（選用） 在核心裝置上啟用的訂閱。這是物件，其中每個金鑰都是唯一的 ID，而每個值都是定義該連接器訂閱的物件。當您部署使用 AWS IoT Greengrass Core SDK 的 V1 連接器元件或 Lambda 函數時，必須設定訂閱。  
每個訂閱物件都包含下列資訊：    
`id`  <a name="legacy-subscription-router-component-configuration-subscription-id"></a>
此訂閱的唯一 ID。此 ID 必須符合此訂閱物件的金鑰。  
`source`  
使用 AWS IoT Greengrass 核心 SDK 的 Lambda 函數，將 MQTT 訊息發佈至您在 中指定的主題`subject`。指定下列內容：  
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
若要部署 V1 連接器元件的訂閱，請指定連接器元件 Lambda 函數的 ARN。  
`subject`  <a name="legacy-subscription-router-component-configuration-subscription-subject"></a>
來源和目標可發佈和接收訊息的 MQTT 主題或主題篩選條件。此值支援 `+`和 `#`主題萬用字元。  
`target`  
<a name="legacy-subscription-router-component-configuration-subscription-target-intro"></a>針對您在 中指定的主題接收 MQTT 訊息的目標`subject`。訂閱指定 `source`函數將 MQTT 訊息發佈到 AWS IoT Core 核心裝置上的 Lambda 函數或 。請指定下列其中一項：  
+ <a name="legacy-subscription-router-component-configuration-subscription-target-cloud"></a>`cloud`。 `source` 函數會將 MQTT 訊息發佈至 AWS IoT Core。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
預設：無訂閱

**Example 範例組態更新 （定義訂閱 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"
  }
}
```

**Example 範例組態更新 （定義另一個 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"
  }
}
```

------

## 本機日誌檔案
<a name="legacy-subscription-router-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="legacy-subscription-router-component-changelog"></a>

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


|  版本  |  變更  | 
| --- | --- | 
| 2.1.16 | 更新 Greengrass nucleus 2.17.0 版的元件版本。 | 
| 2.1.15 | 針對 Greengrass nucleus 2.16.0 版更新版本。 | 
| 2.1.14 | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
| 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 |  <a name="changelog-legacy-subscription-router-2.1.0"></a>[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/legacy-subscription-router-component.html)  | 
| 2.0.3 | 初始版本。 | 