新增目的地至 AWS IoT Core for LoRaWAN - AWS IoT Wireless

新增目的地至 AWS IoT Core for LoRaWAN

AWS IoT Core for LoRaWAN 描述處理裝置資料以供 AWS 服務使用的 AWS IoT 規則。

因為大部分 LoRaWAN 裝置不會以 AWS 服務可以使用的格式,將資料傳送至 AWS IoT Core for LoRaWAN,所以 AWS IoT 規則必須先處理它。AWS IoT 規則包含解譯裝置資料的 SQL 陳述式,以及將 SQL 陳述式結果傳送至將使用它的服務的主題規則動作。

如果是第一次新增目的地,我們建議您使用主控台。

使用主控台新增目的地

如果是使用主控台新增無線裝置 (如 使用主控台將您的無線裝置規格新增至 AWS IoT Core for LoRaWAN 所述),則在已將無線裝置規格和設定檔新增至 AWS IoT Core for LoRaWAN 之後,您可以繼續並新增目的地。

您也可以從 AWS IoT 主控台的 Destinations (目的地) 頁面新增 AWS IoT Core for LoRaWAN 目的地。

若要處理裝置的資料,請在建立 AWS IoT Core for LoRaWAN 目的地時指定下列欄位,然後選擇 Add destination (新增目的地)。

  • 目的地詳細資訊

    為您的目的地輸入 Destination name (目的地名稱) 和選用描述。

  • 規則名稱

    AWS IoT 規則被設定為評估裝置傳送的訊息並處理裝置的資料。規則名稱會映射至目的地。目的地需要規則來處理接收到的訊息。您可以選擇透過叫用 AWS IoT 規則或發佈至 AWS IoT 訊息代理程式的方式來處理訊息。

    • 如果選擇 Enter a rule name (輸入規則名稱),請輸入名稱然後選擇 Copy (複製),來複製您在建立 AWS IoT 規則時將輸入的規則名稱。您可以選擇 Create rule (建立規則) 來立即建立規則,或導覽至 AWS IoT 主控台的規則中樞,並使用該名稱建立規則。

      您也可以輸入規則,再使用 Advanced (進階) 設定來指定主題名稱。主題名稱會在規則叫用期間提供,而且可以使用規則中的 topic 運算式存取。如需AWS IoT規則的詳細資訊,請參閱 https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html

    • 若您選擇發佈至 AWS IoT 訊息代理程式,請輸入主題名稱。然後您可以複製 MQTT 主題名稱,多位訂閱者可以訂閱此主題,以接收發佈至該主題的訊息。如需詳細資訊,請參閱https://docs.aws.amazon.com/iot/latest/developerguide/topics.html

    如需有關目的地之 AWS IoT 規則的詳細資訊,請參閱 建立規則來處理 LoRaWAN 裝置訊息

  • 角色名稱

    授予裝置資料許可,以存取在 Rule name (規則名稱) 中命名之規則的 IAM 角色。您可以在主控台中建立新的服務角色,或選取現有的服務角色。如果正在建立新的服務角色,您可以輸入角色名稱 (例如 IoTWirelessDestinationRole),或為 AWS IoT Core for LoRaWAN 保留為空白以產生新的角色名稱。AWS IoT Core for LoRaWAN 會代表您自動建立具有適當許可的 IAM 角色。

    如需有關 IAM 角色的詳細資訊,請參閱使用 IAM 角色

使用 API 新增目的地

如果想要改用 CLI 來新增目的地,您必須已為目的地建立規則和 IAM 角色。如需目的地在角色中需要的詳細資訊,請參閱 為您的目的地建立 IAM 角色

下方清單包含執行與新增、更新或刪除目的地相關聯之任務的 API 動作。

如需可用來建立和管理 AWS IoT Core for LoRaWAN 資源的動作和資料類型完整清單,請參閱 AWS IoT Wireless API 參考

如何使用 AWS CLI 來新增目的地

您可以使用 AWS CLI 來新增目的地,方法為使用 create-destination 命令。以下範例顯示如何透過使用 RuleName 作為 expression-type 參數值而輸入值名稱,以建立目的地。如果要指定要發佈或訂閱訊息代理程式的主題名稱,請將 expression-type 參數值變更為 MqttTopic

aws iotwireless create-destination \ --name IoTWirelessDestination \ --expression-type RuleName \ --expression IoTWirelessRule \ --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole

執行此命令會使用指定的目的地名稱、規則名稱和角色名稱建立目的地。如需目的地之規則和角色名稱的相關資訊,請參閱 建立規則來處理 LoRaWAN 裝置訊息為您的目的地建立 IAM 角色

如需您可以使用哪些 CLI 的相關資訊,請參閱 AWS CLI 參考

為您的目的地建立 IAM 角色

AWS IoT Core for LoRaWAN 目的地需要 IAM 角色,這些角色會將資料傳送至 AWS IoT 規則所需的許可給與 AWS IoT Core for LoRaWAN。如果尚未定義此類角色,則必須定義它,以便它顯示在角色清單中。

在使用主控台新增目的地時,AWS IoT Core for LoRaWAN 會自動為您建立 IAM 角色,如本主題先前所述。使用 API 或 CLI 新增目的地時,您必須為目的地建立 IAM 角色。

為 AWS IoT Core for LoRaWAN 目的地角色建立 IAM 政策
  1. 開啟 IAM 主控台的政策中樞

  2. 選擇 Create policy (建立政策),然後選擇 JSON 標籤。

  3. 在編輯器中,刪除編輯器中的任何內容,然後貼上此政策文件。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeEndpoint", "iot:Publish" ], "Resource": "*" } ] }
  4. 選擇 Review Policy (檢閱政策),然後在 Name (名稱) 中,輸入此政策的名稱。您將需要此名稱用於下一個程序中。

    您也可以在 Description (描述) 中描述此政策 (如果您想要的話)。

  5. 選擇 Create policy (建立政策)

為 AWS IoT Core for LoRaWAN 目的地建立 IAM 角色
  1. 開啟 IAM 主控台的角色中樞,然後選擇 Create role (建立角色)。

  2. Select type of trusted entity (選取信任的實體類型) 中,選擇 Another AWS 帳戶 (另一個 AWS 帳戶 帳戶)。

  3. Account ID (帳戶 ID) 中,請輸入您的 AWS 帳戶 ID,然後選擇 Next: Permissions (下一步:許可)。

  4. 在搜尋方塊中,輸入您在上一個程序中建立的 IAM 政策名稱。

  5. 在搜尋結果中,檢查您在上一個程序中建立的 IAM 政策。

  6. 選擇 Next: Tags (下一步:標籤),然後選擇 Next: Review (下一步:檢閱)。

  7. Role name (角色名稱) 中,輸入此角色的名稱,然後選擇 Create role (建立角色)。

  8. 在確認訊息中,選擇您已建立的角色名稱來編輯新角色。

  9. Summary (摘要) 上,選擇 Trust relationships (信任關係) 標籤,然後選擇 Edit trust relationship (編輯信任關係)。

  10. Policy Document (政策文件) 中,變更 Principal 屬性以看起來像此範例。

    "Principal": { "Service": "iotwireless.amazonaws.com" },

    在您變更 Principal 屬性之後,完整政策文件應該看起來像此範例。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotwireless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
  11. 若要儲存您的變更,請選擇 Update Trust Policy (更新信任政策)。

定義此角色後,在設定 AWS IoT Core for LoRaWAN 目的地時,您可以在角色清單中找到它。