本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將屬性值更新發佈 Amazon DynamoDB
本教學介紹使用 Amazon DynamoDB
在本教學課程中,您將以提供風力發電場範例資料集的 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。
啟用資產屬性的屬性值更新通知
-
檢閱受支援的AWS IoT SiteWise 端點和配額,並在 AWS IoT SiteWise 必要時切換 AWS 區域。切換到您正在執行 AWS IoT SiteWise 示範的區域。
-
在左側導覽窗格中,選擇 Assets (資產)。
-
選擇 Demo Wind Farm Asset 旁的箭號,以展開發力發電廠資產的階層。
-
選擇一個示範渦輪機,然後選擇 Edit (編輯)。
-
將Wind Speed屬性的通知狀態更新為ENABLED。
-
選擇頁面底部的 Save asset (儲存資產)。
-
針對每個示範渦輪機資產重複步驟 5 到 7。
-
選擇示範渦輪機 (例如 Demo Turbine Asset 1 (示範渦輪機資產))。
-
選擇 Measurements (衡量值)。
-
選擇 Wind Speed 屬性旁的複製圖示,以將通知主題複製到剪貼簿。儲存通知主題,以在本教學的稍後使用。您只需要記錄一台渦輪機的通知主題。
通知主題看起來應該會與以下範例相似。
$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 動作建立規則
-
導覽至 AWS IoT 主控台
。如果出現 Get started (開始使用) 按鈕,請選擇此按鈕。 -
在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)。
-
如果 You don’t have any rules yet (您尚未有任何規則) 對話方塊出現,請選擇 Create a rule (建立規則)。否則,請選擇 Create (建立)。
-
輸入規則的名稱和描述。
-
尋找您在本教學中稍早儲存的通知主題。
$aws/sitewise/asset-models/
a1b2c3d4-5678-90ab-cdef-11111EXAMPLE
/assets/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE
/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
將主題中的資產 ID (後面的 ID
assets/
) 取代為+
. 這會為所有示範風力發電機資產選取風速屬性。+
主題篩選條件接受主題中單一層級的所有節點。您的主題應如下列範例所示。$aws/sitewise/asset-models/
a1b2c3d4-5678-90ab-cdef-11111EXAMPLE
/assets/+/properties/a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
-
輸入以下規則查詢陳述式。將
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' -
在 Set one or more actions (設定一或多個動作) 下,選擇 Add action (新增動作)。
-
在 [選取動作] 頁面上,選擇 [將訊息分割為 DynamoDB 表格的多個欄 (D ynamoDBv 2)]。
-
選擇頁面底部的 Configure action (設定動作)。
-
在 Configure action (設定動作) 頁面,選擇 Create a new resource (建立新的資源)。
DynamoDB 主控台會在新索引標籤中開啟。在您完成下列程序期間,請將規則動作標籤維持在開啟狀態。
步驟 3:建立 DynamoDB 料表
在此程序中,您會建立 Amazon DynamoDB 表,以接收來自規則動作的風速資料。
建立 DynamoDB 資料表
-
在 DynamoDB 主控台儀表板中,選擇「建立表格」。
-
輸入資料表的名稱。
-
針對 Primary key (主索引鍵),執行以下作業:
-
輸入
timestamp
做為分割區索引鍵。 -
選擇 Number (數字) 類型。
-
選取 Add sort key (新增排序索引鍵) 核取方塊。
-
輸入
asset
做為排序索引鍵,並保留預設的 String (字串) 排序索引鍵類型。
-
-
選擇 Create (建立)。
當 Table is being created (正在建立資料表) 通知消失時,您的資料表便已準備就緒。
-
返回包含 Configure action (設定動作) 頁面的標籤。完成下列程序時,請將 DynamoDB 索引標籤保持開啟狀態。
步驟 4:設定 DynamoDB 規則動作
在此程序中,您可以設定 Amazon DynamoDB 規則動作,將內容值更新中的資料插入新的 DynamoDB 表格。
若要設定 DynamoDB 規則動作
-
在 [設定] 動作頁面上,重新整理 [表格名稱] 清單,然後選擇新的 DynamoDB 表格。
-
選擇 [建立角色] 以建立授與 AWS IoT 核心存取權的IAM角色,以執行規則動作。
-
輸入角色名稱,然後選擇 Create role (建立角色)。
-
選擇新增動作。
-
選擇頁面底部的 Create rule (建立規則) 來完成建立規則。
您的示範資產資料應該會開始顯示在 DynamoDB 表格中。
步驟 5:探索資料
在此程序中,您會在新的 Amazon DynamoDB 表格中探索示範資產的風速資料。
若要在 DynamoDB 中探索資產資料
-
在 DynamoDB 表格開啟的情況下返回索引標籤。
-
在您稍早建立的資料表中,選擇 Items (項目) 標籤,以檢視資料表中的資料。如果您在資料表中沒有看見資料列,請重新整理頁面。如果在幾分鐘之後資料列沒有出現,請參閱對規則進行疑難排解 (DynamoDB)。
-
在資料表的資料列中,選擇編輯圖示以展開資料。
-
選擇 windspeed 結構旁邊的箭頭,展開風速資料點的清單。每個清單反映風電場示範傳送至 AWS IoT SiteWise 的一批風速資料點。如果您為自身用途設定了規則動作,建議您使用不同的資料格式。如需詳細資訊,請參閱查詢資產屬性通知訊息。
現在您已完成教學課程,請停用或刪除規則並刪除 DynamoDB 表格,以避免產生額外費用。若要清理資源,請參閱步驟 6:完成教學課程後清理資源。
步驟 6:完成教學課程後清理資源
完成本教學課程之後,請清除資源,以避免產生額外的費用。您的示範風電場資產會在您建立示範時選擇的持續時間結束時刪除。您也可以手動刪除示範。如需詳細資訊,請參閱刪除示 AWS IoT SiteWise 範。
使用下列程序停用內容值更新通知 (如果您未刪除示範)、停用或刪除 AWS IoT 規則,以及刪除 DynamoDB 表格。
停用資產屬性的屬性值更新通知
-
導覽至 AWS IoT SiteWise 主控台
。 -
在左側導覽窗格中,選擇 Assets (資產)。
-
選擇 Demo Wind Farm Asset 旁的箭號,以展開發力發電廠資產的階層。
-
選擇一個示範渦輪機,然後選擇 Edit (編輯)。
-
將Wind Speed屬性的通知狀態更新為DISABLED。
-
選擇頁面底部的 Save asset (儲存資產)。
-
針對每個示範渦輪機資產重複步驟 4 到 6。
若要停用或刪除中的規則 AWS IoT Core
-
導覽至 AWS IoT 主控台
。 -
在左側導覽窗格中,選擇 Act (動作),然後選擇 Rules (規則)。
-
選擇您規則上的選單,然後選擇 Disable (停用) 或 Delete (刪除)。
刪除 DynamoDB 資料表
-
導覽至動 DynamoDB
主控台。 -
在左側導覽窗格中,選擇 Tables (資料表)。
-
選擇您之前建立的資料表 WindSpeedData。
-
選擇 刪除資料表 。
-
在 Delete table (刪除資料表) 對話方塊中,選擇 Delete (刪除)。