將屬性值更新發佈 Amazon DynamoDB - AWS IoT SiteWise

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

將屬性值更新發佈 Amazon DynamoDB

本教學介紹使用 Amazon DynamoDB 存放資料的便利方式,讓您可以更輕鬆地存取歷史資產資料,而無需重複查詢. AWS IoT SiteWise API 完成本教學課程後,您可以建立自訂軟體來消耗資產資料,例如整個風電場的風速和方向的即時地圖。如果您想要在不實作自訂軟體解決方案的情況下監視和視覺化資料,請參閱監控資料 AWS IoT SiteWise Monitor

在本教學課程中,您將以提供風力發電場範例資料集的 AWS IoT SiteWise 示範為基礎建置。您可以從風力發電場示範設定內容值更新,透過 AWS IoT 核心規則將資料傳送至您建立的 DynamoDB 表格。當您啟用屬性值更新時, AWS IoT SiteWise 會將資料傳送至MQTT訊息 AWS IoT Core 中。然後,根據這些訊息的內容定義執行動作 (例如 DynamoDB 動作) 的 AWS IoT 核心規則。如需詳細資訊,請參閱與其他 AWS 服務互動

必要條件

為了完成本教學,您需要以下項目:

  • 一個 AWS 帳戶。如果您沒有帳戶,請參閱 設置一個 AWS 帳戶

  • 執行視窗、macOS、Linux 或 Unix 的開發電腦來存取 AWS Management Console. 如需詳細資訊,請參閱 AWS Management Console入門

  • 擁有管理員許可的 IAM 使用者。

  • 正在運行的 AWS IoT SiteWise 風電場演示。當您設定示範時,它會在中定義模型和資產, AWS IoT SiteWise 並將資料串流給它們以代表風力發電場。如需詳細資訊,請參閱使用 AWS IoT SiteWise 演示

步驟 1:設定 AWS IoT SiteWise 為發佈屬性值更新

在此程序中,您會在示範渦輪機資產的 Wind Speed (風速) 屬性上啟用屬性值通知。啟用內容值通知後, AWS IoT SiteWise 會將MQTT訊息中的每個值更新發佈至 AWS IoT Core。

啟用資產屬性的屬性值更新通知
  1. 登入 AWS IoT SiteWise 主控台

  2. 檢閱受支援的AWS IoT SiteWise 端點和配額,並在 AWS IoT SiteWise 必要時切換 AWS 區域。切換到您正在執行 AWS IoT SiteWise 示範的區域。

  3. 在左側導覽窗格中,選擇 Assets (資產)

    AWS IoT SiteWise 「資產」左側導航元素截圖。
  4. 選擇 Demo Wind Farm Asset 旁的箭號,以展開發力發電廠資產的階層。

    AWS IoT SiteWise 「Demo Wind Farm Asset」階層截圖。
  5. 選擇一個示範渦輪機,然後選擇 Edit (編輯)

    AWS IoT SiteWise "Demo Turbine Asset" 螢幕截圖。
  6. Wind Speed屬性的通知狀態更新為ENABLED

    AWS IoT SiteWise 「編輯通知狀態」截圖。
  7. 選擇頁面底部的 Save asset (儲存資產)

  8. 針對每個示範渦輪機資產重複步驟 5 到 7。

  9. 選擇示範渦輪機 (例如 Demo Turbine Asset 1 (示範渦輪機資產))。

  10. 選擇 Measurements (衡量值)

  11. 選擇 Wind Speed 屬性旁的複製圖示,以將通知主題複製到剪貼簿。儲存通知主題,以在本教學的稍後使用。您只需要記錄一台渦輪機的通知主題。

    AWS IoT SiteWise 「複製通知主題」截圖。

    通知主題看起來應該會與以下範例相似。

    $aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

步驟 2:在 AWS IoT 核心中建立規則

在此程序中,您可以在 AWS IoT Core 中建立規則,以剖析屬性值通知訊息,並將資料插入 Amazon DynamoDB 表格。 AWS IoT 核心規則會剖析MQTT訊息,並根據每封郵件的內容和主題執行動作。然後,您可以使用 DynamoDB 動作建立規則,將資料插入您在本教學課程中建立的 DynamoDB 表格。

若要使用 DynamoDB 動作建立規則
  1. 導覽至 AWS IoT 主控台。如果出現 Get started (開始使用) 按鈕,請選擇此按鈕。

  2. 在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)

    AWS IoT 核心「創建規則」屏幕截圖。
  3. 如果 You don’t have any rules yet (您尚未有任何規則) 對話方塊出現,請選擇 Create a rule (建立規則)。否則,請選擇 Create (建立)。

  4. 輸入規則的名稱和描述。

    AWS IoT 核心「創建規則」頁面截圖與「名稱」和「描述」突出顯示。
  5. 尋找您在本教學中稍早儲存的通知主題。

    $aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

    將主題中的資產 ID (後面的 IDassets/) 取代為+. 這會為所有示範風力發電機資產選取風速屬性。+ 主題篩選條件接受主題中單一層級的所有節點。您的主題應如下列範例所示。

    $aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
  6. 輸入以下規則查詢陳述式。將 FROM 區段中的主題取代成您的通知主題。

    SELECT payload.assetId AS asset, (SELECT VALUE (value.doubleValue) FROM payload.values) AS windspeed, timestamp() AS timestamp FROM '$aws/sitewise/asset-models/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE' WHERE type = 'PropertyValueUpdate'
  7. Set one or more actions (設定一或多個動作) 下,選擇 Add action (新增動作)。

    AWS IoT 核心「創建規則」頁面截圖,突出顯示「添加操作」。
  8. 在 [選取動作] 頁面上,選擇 [將訊息分割為 DynamoDB 表格的多個欄 (D ynamoDBv 2)]。

    AWS IoT 核心「選取動作」頁面螢幕擷取畫面,並反白顯示 D ynamoDBv 2 動作。
  9. 選擇頁面底部的 Configure action (設定動作)

  10. Configure action (設定動作) 頁面,選擇 Create a new resource (建立新的資源)。

    DynamoDB 主控台會在新索引標籤中開啟。在您完成下列程序期間,請將規則動作標籤維持在開啟狀態。

步驟 3:建立 DynamoDB 料表

在此程序中,您會建立 Amazon DynamoDB 表,以接收來自規則動作的風速資料。

建立 DynamoDB 資料表
  1. 在 DynamoDB 主控台儀表板中,選擇「建立表格」。

  2. 輸入資料表的名稱。

    DynamoDB「建立表格」頁面螢幕擷取畫面。
  3. 針對 Primary key (主索引鍵),執行以下作業:

    1. 輸入 timestamp 做為分割區索引鍵。

    2. 選擇 Number (數字) 類型。

    3. 選取 Add sort key (新增排序索引鍵) 核取方塊。

    4. 輸入 asset 做為排序索引鍵,並保留預設的 String (字串) 排序索引鍵類型。

  4. 選擇 Create (建立)。

    Table is being created (正在建立資料表) 通知消失時,您的資料表便已準備就緒。

  5. 返回包含 Configure action (設定動作) 頁面的標籤。完成下列程序時,請將 DynamoDB 索引標籤保持開啟狀態。

步驟 4:設定 DynamoDB 規則動作

在此程序中,您可以設定 Amazon DynamoDB 規則動作,將內容值更新中的資料插入新的 DynamoDB 表格。

若要設定 DynamoDB 規則動作
  1. 在 [設定] 動作頁面上,重新整理 [表格名稱] 清單,然後選擇新的 DynamoDB 表格。

    AWS IoT 核心「配置 D ynamoDBv 2 操作」頁面截圖,並突出顯示了表格查找器。
  2. 選擇 [建立角色] 以建立授與 AWS IoT 核心存取權的IAM角色,以執行規則動作。

  3. 輸入角色名稱,然後選擇 Create role (建立角色)

    AWS IoT 核心「配置 D ynamoDBv 2 操作」頁面截圖,「創建角色」突出顯示。
  4. 選擇新增動作

  5. 選擇頁面底部的 Create rule (建立規則) 來完成建立規則。

    您的示範資產資料應該會開始顯示在 DynamoDB 表格中。

步驟 5:探索資料

在此程序中,您會在新的 Amazon DynamoDB 表格中探索示範資產的風速資料。

若要在 DynamoDB 中探索資產資料
  1. 在 DynamoDB 表格開啟的情況下返回索引標籤。

  2. 在您稍早建立的資料表中,選擇 Items (項目) 標籤,以檢視資料表中的資料。如果您在資料表中沒有看見資料列,請重新整理頁面。如果在幾分鐘之後資料列沒有出現,請參閱對規則進行疑難排解 (DynamoDB)

    DynamoDB 表格頁面螢幕擷取畫面會反白顯示「項目」索引標籤。
  3. 在資料表的資料列中,選擇編輯圖示以展開資料。

    DynamoDB 表格頁面螢幕擷取畫面會反白顯示列上的編輯圖示。
  4. 選擇 windspeed 結構旁邊的箭頭,展開風速資料點的清單。每個清單反映風電場示範傳送至 AWS IoT SiteWise 的一批風速資料點。如果您為自身用途設定了規則動作,建議您使用不同的資料格式。如需詳細資訊,請參閱查詢資產屬性通知訊息

    DynamoDB「編輯表格列」面板螢幕擷取畫面。

現在您已完成教學課程,請停用或刪除規則並刪除 DynamoDB 表格,以避免產生額外費用。若要清理資源,請參閱步驟 6:完成教學課程後清理資源

步驟 6:完成教學課程後清理資源

完成本教學課程之後,請清除資源,以避免產生額外的費用。您的示範風電場資產會在您建立示範時選擇的持續時間結束時刪除。您也可以手動刪除示範。如需詳細資訊,請參閱刪除示 AWS IoT SiteWise 範

使用下列程序停用內容值更新通知 (如果您未刪除示範)、停用或刪除 AWS IoT 規則,以及刪除 DynamoDB 表格。

停用資產屬性的屬性值更新通知
  1. 導覽至 AWS IoT SiteWise 主控台

  2. 在左側導覽窗格中,選擇 Assets (資產)

    AWS IoT SiteWise 「資產」左側導航元素截圖。
  3. 選擇 Demo Wind Farm Asset 旁的箭號,以展開發力發電廠資產的階層。

    AWS IoT SiteWise 「Demo Wind Farm Asset」階層截圖。
  4. 選擇一個示範渦輪機,然後選擇 Edit (編輯)

    AWS IoT SiteWise "Demo Turbine Asset" 螢幕截圖。
  5. Wind Speed屬性的通知狀態更新為DISABLED

    AWS IoT SiteWise 「編輯通知狀態」截圖。
  6. 選擇頁面底部的 Save asset (儲存資產)

  7. 針對每個示範渦輪機資產重複步驟 4 到 6。

若要停用或刪除中的規則 AWS IoT Core
  1. 導覽至 AWS IoT 主控台

  2. 在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)

  3. 選擇您規則上的選單,然後選擇 Disable (停用)Delete (刪除)

    AWS IoT 核心「規則」頁面截圖與規則的菜單打開並突出顯示。
刪除 DynamoDB 資料表
  1. 導覽至動 DynamoDB 主控台。

  2. 在左側導覽窗格中,選擇 Tables (資料表)

  3. 選擇您之前建立的資料表 WindSpeedData

  4. 選擇 刪除資料表

    DynamoDB「表格」頁面螢幕擷取畫面會反白顯示「刪除表格」。
  5. Delete table (刪除資料表) 對話方塊中,選擇 Delete (刪除)

    DynamoDB 的「刪除表格」對話方塊螢幕擷取畫面會反白顯示「刪除」。