本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將屬性值更新發佈至 Amazon DynamoDB
本教學課程介紹使用 Amazon DynamoDB
在本教學課程中,您會建置在提供風力發電廠資料集範例的 AWS IoT SiteWise 示範上。您可以從風力發電廠示範設定屬性值更新,透過 AWS IoT Core 規則將資料傳送至您建立的 DynamoDB 資料表。當您啟用屬性值更新時, AWS IoT SiteWise 會在 MQTT 訊息 AWS IoT Core 中傳送您的資料至 。然後,根據這些訊息的內容,定義執行動作 AWS IoT 的核心規則,例如 DynamoDB 動作。如需詳細資訊,請參閱與其他 AWS 服務互動。
主題
先決條件
為了完成本教學,您需要以下項目:
-
AWS 帳戶。如果您沒有帳戶,請參閱 設定 AWS 帳戶。
-
執行 Windows、macOS、Linux 或 Unix 以存取 的開發電腦 AWS Management Console。如需詳細資訊,請參閱什麼是 AWS Management Console?
-
擁有管理員許可的 IAM 使用者。如需詳細說明,請參閱 AWS IoT SiteWise 如何使用 IAM。
-
執行中的 AWS IoT SiteWise 風力發電廠示範。當您設定示範時,它會定義 中的模型和資產 AWS IoT SiteWise ,並將資料串流至它們,以代表風力發電廠。如需詳細資訊,請參閱使用 AWS IoT SiteWise 示範。
步驟 1:設定 AWS IoT SiteWise 以發佈屬性值更新
在此程序中,您會在示範渦輪機資產的 Wind Speed (風速) 屬性上啟用屬性值通知。啟用屬性值通知後, 會將 MQTT 訊息中的每個值更新 AWS IoT SiteWise 發佈至 AWS IoT 核心。
啟用資產屬性的屬性值更新通知
-
檢閱 AWS IoT SiteWise 支援的AWS IoT SiteWise 端點和配額,並視需要切換 AWS 區域。切換到您執行 AWS IoT SiteWise 示範的區域。
-
在左側導覽窗格中,選擇 Assets (資產)。
-
選擇 Demo Wind Farm Asset 旁的箭號,以展開發力發電廠資產的階層。
-
選擇一個示範渦輪機,然後選擇 Edit (編輯)。
-
選擇 Measurements (衡量值)。
-
將Wind Speed屬性的 MQTT 通知狀態更新為 ACTIVE。
-
選擇頁面底部的 Save (儲存)。
-
針對每個示範渦輪機資產重複步驟 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 Core 中建立規則
在此步驟中,在 AWS IoT Core 中建立規則,剖析屬性值通知訊息,並將資料插入 Amazon DynamoDB 資料表。 AWS IoT Core 規則會剖析 MQTT 訊息,並根據每則訊息的內容和主題執行動作。然後,您可以使用 DynamoDB 動作建立規則,將資料插入您在本教學課程中建立的 DynamoDB 資料表。
使用 DynamoDB 動作建立規則
-
導覽至 AWS IoT 主控台
。 -
在左側導覽窗格中,選擇訊息路由,然後選擇規則。
-
選擇建立規則。
-
在指定規則屬性下,輸入規則的名稱和描述。
-
尋找您在本教學中稍早儲存的通知主題。
$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' -
在規則動作下,導覽至動作 1。
-
在選取動作頁面上,選擇 DynamoDBv2。這會將訊息分割成 DynamoDB 資料表的多個資料欄
-
在資料表名稱下,選擇建立新資料表。您可以建立 Amazon DynamoDB 資料表,從規則動作接收風速資料。
-
在 DynamoDB 主控台
的資料表名稱下,輸入資料表的名稱。 -
對於分割區索引鍵,請執行下列動作:
-
輸入
timestamp
做為分割區索引鍵。 -
選擇 Number (數字) 類型。
-
選取 Add sort key (新增排序索引鍵) 核取方塊。
-
輸入
asset
做為排序索引鍵,並保留預設的 String (字串) 排序索引鍵類型。
-
-
選擇建立資料表。
-
返回包含 Configure action (設定動作) 頁面的標籤。
-
在連接規則動作頁面上,重新整理資料表名稱清單,然後選擇您在上一個步驟中建立的新 DynamoDB 資料表。
步驟 3:設定 DynamoDB 規則動作
在此步驟中,設定 Amazon DynamoDB 規則動作,將資料從屬性值更新插入至新的 DynamoDB 資料表。
設定 DynamoDB 規則動作
-
選擇建立角色以建立授予 AWS IoT 核心存取權以執行規則動作的 IAM 角色。
-
輸入角色名稱,例如
WindSpeedDataRole
。選擇建立角色。 -
選擇下一步。
-
選擇頁面底部的建立以完成建立規則。
您的示範資產資料應該會開始出現在 DynamoDB 資料表中。
步驟 4:探索 DynamoDB 中的資料
在此步驟中,在新的 Amazon DynamoDB 資料表中探索示範資產的風速資料。
探索 DynamoDB 中的資產資料
-
返回索引標籤,並開啟 DynamoDB 資料表。
-
在您先前建立的資料表中,選擇探索資料表項目索引標籤以檢視資料表中的資料。如果您在資料表中沒有看見資料列,請重新整理頁面。如果在幾分鐘之後資料列沒有出現,請參閱對規則進行故障診斷 (DynamoDB)。
-
在資料表的資料列中,選擇編輯圖示以展開資料。
-
選擇 windspeed 結構旁邊的箭頭,展開風速資料點的清單。每個清單都會反映風力發電廠示範傳送至 的一批 AWS IoT SiteWise 風速資料點。如果您為自身用途設定了規則動作,建議您使用不同的資料格式。如需詳細資訊,請參閱在 中查詢資產屬性通知 AWS IoT SiteWise。
現在您已完成教學課程,請停用或刪除規則並刪除 DynamoDB 資料表,以避免產生額外費用。若要清除您的 資源,請參閱 步驟 5:在教學課程後清除資源。
步驟 5:在教學課程後清除資源
完成本教學課程之後,請清除資源,以避免產生額外的費用。您的示範風力發電廠資產會在您建立示範時所選擇的持續時間結束時刪除。您也可以手動刪除示範。
AWS IoT SiteWise 示範會在一週後自行刪除,或者如果您從 AWS CloudFormation 主控台建立示範堆疊,則會刪除您選擇的天數。如果您已完成使用示範資源,則可以在 之前刪除示範。如果示範無法建立,您也可以將其刪除。使用以下步驟手動刪除示範。
(選用) 刪除 AWS IoT SiteWise 示範
從 Stacks 清單中選擇 IoTSiteWiseDemoAssets。
選擇 刪除。
當您刪除堆疊時,為示範建立的所有資源均會受到刪除。
在確認對話方塊中,選擇 Delete stack (刪除堆疊)。
堆疊大約需要 15 分鐘的時間來刪除。如果示範無法刪除,請再次選擇右上角的 Delete (刪除)。如果示範再次無法刪除,請依照 AWS CloudFormation 主控台中的步驟略過無法刪除的資源,然後再試一次。
如需詳細資訊,請參閱刪除 AWS IoT SiteWise 示範。
使用下列程序來停用屬性值更新通知 (如果您未刪除示範)、停用或刪除 AWS IoT 規則,以及刪除 DynamoDB 資料表。
停用資產屬性的屬性值更新通知
-
導覽至 AWS IoT SiteWise 主控台
。 -
在左側導覽窗格中,選擇 Assets (資產)。
-
選擇 Demo Wind Farm Asset 旁的箭號,以展開發力發電廠資產的階層。
-
選擇一個示範渦輪機,然後選擇 Edit (編輯)。
-
將Wind Speed屬性的通知狀態更新為非作用中。
-
選擇頁面底部的 Save asset (儲存資產)。
-
針對每個示範渦輪機資產重複步驟 4 到 6。
在 中停用或刪除規則 AWS IoT Core
-
導覽至 AWS IoT 主控台
。 -
在左側導覽窗格中,選擇訊息路由,然後選擇規則。
-
選取您的規則,然後選擇刪除。
-
在確認對話方塊中,輸入規則的名稱,然後選擇刪除。
刪除 DynamoDB 資料表
-
導覽至 DynamoDB 主控台
。 -
在左側導覽窗格中,選擇 Tables (資料表)。
-
選擇您先前建立的資料表,例如
WindSpeedData
。 -
選擇 刪除。
-
在確認對話方塊中,輸入
confirm
以刪除資料表。