選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 AWS IoT 規則上傳裝置端日誌

焦點模式
使用 AWS IoT 規則上傳裝置端日誌 - AWS IoT Core

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

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

您可以使用 AWS IoT 規則引擎,將現有裝置端日誌檔案 (系統、應用程式和裝置用戶端日誌) 的日誌記錄上傳至 Amazon CloudWatch。當裝置端日誌發佈至 MQTT主題時, CloudWatch Logs 規則動作會將訊息傳輸至 CloudWatch Logs。此程序概述如何使用規則動作 batchMode 參數開啟 (設定為 true) 來批次上傳裝置日誌。

若要開始將裝置端日誌上傳至 CloudWatch,請完成下列先決條件。

必要條件

開始之前,請執行以下動作:

如需這些先決條件的詳細資訊,請參閱將裝置端日誌上傳至 CloudWatch

建立 CloudWatch 日誌群組

若要建立 CloudWatch 日誌群組,請完成下列步驟。根據您是否偏好透過 AWS Management Console 或 AWS Command Line Interface () 執行步驟,選擇適當的索引標籤AWS CLI。

AWS Management Console
使用 建立 CloudWatch 日誌群組 AWS Management Console
  1. 開啟 AWS Management Console 並導覽至 CloudWatch

  2. 在導覽列上,選擇 Logs (日誌),然後選擇 Log groups (日誌群組)。

  3. 選擇 Create log group (建立日誌群組)。

  4. 更新 Log group name (日誌群組名稱),並選擇性地更新 Retention settings (保留設定) 欄位。

  5. 選擇 Create (建立)。

AWS CLI
使用 建立 CloudWatch 日誌群組 AWS CLI
  1. 若要建立日誌群組,請執行以下命令。如需詳細資訊,請參閱 AWS CLI v2 命令參考create-log-group中的 。

    將範例 (uploadLogsGroup) 中的日誌群組名稱取代為您偏好的名稱。

    aws logs create-log-group --log-group-name uploadLogsGroup
  2. 若要確認日誌群組已正確建立,請執行下列命令。

    aws logs describe-log-groups --log-group-name-prefix uploadLogsGroup

    輸出範例:

    { "logGroups": [ { "logGroupName": "uploadLogsGroup", "creationTime": 1674521804657, "metricFilterCount": 0, "arn": "arn:aws:logs:us-east-1:111122223333:log-group:uploadLogsGroup:*", "storedBytes": 0 } ] }
使用 建立 CloudWatch 日誌群組 AWS Management Console
  1. 開啟 AWS Management Console 並導覽至 CloudWatch

  2. 在導覽列上,選擇 Logs (日誌),然後選擇 Log groups (日誌群組)。

  3. 選擇 Create log group (建立日誌群組)。

  4. 更新 Log group name (日誌群組名稱),並選擇性地更新 Retention settings (保留設定) 欄位。

  5. 選擇 Create (建立)。

建立主題規則

若要建立 AWS IoT 規則,請完成下列步驟。根據您是否偏好透過 AWS Management Console 或 AWS Command Line Interface () 執行步驟,選擇適當的索引標籤AWS CLI。

AWS Management Console
使用 建立主題規則 AWS Management Console
  1. 開啟規則中樞。

    1. 開啟 AWS Management Console 並導覽至 AWS IoT

    2. 在導覽列上,選擇 Message routing (訊息路由),然後選擇 Rules (規則)。

    3. 選擇建立規則

  2. 輸入規則屬性。

    1. 輸入英數字元的 Rule name (規則名稱)。

    2. (選擇性) 輸入 Rule description (規則描述) 和 Tags (標籤)。

    3. 選擇 Next (下一步)

  3. 輸入SQL陳述式。

    1. 使用您為擷取定義的MQTT主題輸入SQL陳述式。

      例如 SELECT * FROM '$aws/rules/things/thing_name/logs'

    2. 選擇 Next (下一步)

  4. 輸入規則動作。

    1. 動作 1 功能表中,選擇CloudWatch日誌

    2. 選擇 Log group name (日誌群組名稱),然後選擇您建立的日誌群組。

    3. 選取 Use batch mode (使用批次模式)。

    4. 指定規則IAM的角色。

      如果您有規則IAM的角色,請執行下列動作。

      1. IAM角色功能表中,選擇您的IAM角色。

      如果您沒有規則IAM的角色,請執行下列動作。

      1. 選擇 Create new role (建立新角色)。

      2. Role name (角色名稱) 中,輸入唯一的名稱,然後選擇 Create (建立)。

      3. 在IAM角色欄位中確認IAM角色名稱正確無誤。

    5. 選擇 Next (下一步)

  5. 檢閱範本組態。

    1. 檢閱 Job 範本的設定,以確認其正確無誤。

    2. 完成時,選擇 Create (建立)

AWS CLI
使用 建立IAM角色和主題規則 AWS CLI
  1. 建立 IAM角色以授予 AWS IoT 規則的權限。

    1. 建立 IAM 政策。

      若要建立IAM政策,請執行下列命令。請務必更新 policy-name 參數值。如需詳細資訊,請參閱 AWS CLI v2 命令參考create-policy中的 。

      注意

      如果您使用的是 Microsoft Windows 作業系統,您可能需要將行尾標記 (\) 取代為勾號 (`) 或其他字元。

      aws iam create-policy \ --policy-name uploadLogsPolicy \ --policy-document \ '{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iot:CreateTopicRule", "iot:Publish", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" } }'
    2. 將政策ARN從輸出複製到文字編輯器。

      輸出範例:

      { "Policy": { "PolicyName": "uploadLogsPolicy", "PermissionsBoundaryUsageCount": 0, "CreateDate": "2023-01-23T18:30:10Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "AAABBBCCCDDDEEEFFFGGG", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::111122223333:policy/uploadLogsPolicy", "UpdateDate": "2023-01-23T18:30:10Z" } }
    3. 建立IAM角色和信任政策。

      若要建立IAM政策,請執行下列命令。請務必更新 role-name 參數值。如需詳細資訊,請參閱 AWS CLI v2 命令參考create-role中的 。

      aws iam create-role \ --role-name uploadLogsRole \ --assume-role-policy-document \ '{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
    4. 將IAM政策連接至規則。

      若要建立IAM政策,請執行下列命令。請務必更新 role-namepolicy-arn 參數值。如需詳細資訊,請參閱 AWS CLI v2 命令參考attach-role-policy中的 。

      aws iam attach-role-policy \ --role-name uploadLogsRole \ --policy-arn arn:aws:iam::111122223333:policy/uploadLogsPolicy
    5. 檢閱角色。

      若要確認IAM角色已正確建立,請執行下列命令。請務必更新 role-name 參數值。如需詳細資訊,請參閱 AWS CLI v2 命令參考get-role中的 。

      aws iam get-role --role-name uploadLogsRole

      輸出範例:

      { "Role": { "Path": "/", "RoleName": "uploadLogsRole", "RoleId": "AAABBBCCCDDDEEEFFFGGG", "Arn": "arn:aws:iam::111122223333:role/uploadLogsRole", "CreateDate": "2023-01-23T19:17:15+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "Description": "", "MaxSessionDuration": 3600, "RoleLastUsed": {} } }
  2. 在 中建立 AWS IoT 主題規則 AWS CLI。

    1. 若要建立 AWS IoT 主題規則,請執行下列命令。請務必更新 --rule-namesql 陳述式、descriptionroleARN 、和 logGroupName 參數值。如需詳細資訊,請參閱 AWS CLI v2 命令參考create-topic-rule中的 。

      aws iot create-topic-rule \ --rule-name uploadLogsRule \ --topic-rule-payload \ '{ "sql":"SELECT * FROM 'rules/things/thing_name/logs'", "description":"Upload logs test rule", "ruleDisabled":false, "awsIotSqlVersion":"2016-03-23", "actions":[ {"cloudwatchLogs": {"roleArn":"arn:aws:iam::111122223333:role/uploadLogsRole", "logGroupName":"uploadLogsGroup", "batchMode":true} } ] }'
    2. 若要確認規則已正確建立,請執行下列命令。請務必更新 role-name 參數值。如需詳細資訊,請參閱 AWS CLI v2 命令參考get-topic-rule中的 。

      aws iot get-topic-rule --rule-name uploadLogsRule

      輸出範例:

      { "ruleArn": "arn:aws:iot:us-east-1:111122223333:rule/uploadLogsRule", "rule": { "ruleName": "uploadLogsRule", "sql": "SELECT * FROM rules/things/thing_name/logs", "description": "Upload logs test rule", "createdAt": "2023-01-24T16:28:15+00:00", "actions": [ { "cloudwatchLogs": { "roleArn": "arn:aws:iam::111122223333:role/uploadLogsRole", "logGroupName": "uploadLogsGroup", "batchMode": true } } ], "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23" } }
使用 建立主題規則 AWS Management Console
  1. 開啟規則中樞。

    1. 開啟 AWS Management Console 並導覽至 AWS IoT

    2. 在導覽列上,選擇 Message routing (訊息路由),然後選擇 Rules (規則)。

    3. 選擇建立規則

  2. 輸入規則屬性。

    1. 輸入英數字元的 Rule name (規則名稱)。

    2. (選擇性) 輸入 Rule description (規則描述) 和 Tags (標籤)。

    3. 選擇 Next (下一步)

  3. 輸入SQL陳述式。

    1. 使用您為擷取定義的MQTT主題輸入SQL陳述式。

      例如 SELECT * FROM '$aws/rules/things/thing_name/logs'

    2. 選擇 Next (下一步)

  4. 輸入規則動作。

    1. 動作 1 功能表中,選擇CloudWatch日誌

    2. 選擇 Log group name (日誌群組名稱),然後選擇您建立的日誌群組。

    3. 選取 Use batch mode (使用批次模式)。

    4. 指定規則IAM的角色。

      如果您有規則IAM的角色,請執行下列動作。

      1. IAM角色功能表中,選擇您的IAM角色。

      如果您沒有規則IAM的角色,請執行下列動作。

      1. 選擇 Create new role (建立新角色)。

      2. Role name (角色名稱) 中,輸入唯一的名稱,然後選擇 Create (建立)。

      3. 在IAM角色欄位中確認IAM角色名稱正確無誤。

    5. 選擇 Next (下一步)

  5. 檢閱範本組態。

    1. 檢閱 Job 範本的設定,以確認其正確無誤。

    2. 完成時,選擇 Create (建立)

將裝置端日誌傳送至 AWS IoT

將裝置端日誌傳送至 AWS IoT
  1. 若要將歷史日誌傳送至 AWS IoT,請和您的裝置通訊,以確保下列事項。

    • 日誌資訊會傳送至此程序的 Prerequisites (必要條件) 區段中所指定的正確主題命名空間。

      例如 $aws/rules/things/thing_name/logs

    • MQTT 訊息承載格式正確。如需MQTT主題和建議命名慣例的詳細資訊,請參閱 中的MQTT 主題一節將裝置端日誌上傳至 Amazon CloudWatch

  2. 確認在用戶端內 AWS IoT MQTT收到MQTT訊息。

    1. 開啟 AWS Management Console 並導覽至 AWS IoT

    2. 若要檢視MQTT測試用戶端,請在導覽列上選擇測試MQTT測試用戶端

    3. 對於 Subscribe to a topic (訂閱主題)、Topic filter (主題篩選條件),請輸入 topic namespace (主題命名空間)。

    4. 選擇 Subscribe (訂閱)

      MQTT 訊息會顯示在訂閱主題資料表中,如下所示。這些訊息可能需要 5 分鐘才會顯示。

      MQTT 訊息會出現在訂閱和主題資料表中。

檢視日誌資料

在日誌中檢閱您的 CloudWatch 日誌記錄
  1. 開啟 AWS Management Console,然後導覽至 CloudWatch

  2. 在導覽列上,選擇 Logs (日誌),Log Insights (日誌深入解析)。

  3. 選取日誌群組 (Select log group) 功能表中,選擇您在 AWS IoT 規則中指定的日誌群組。

  4. Logs insights (日誌深入解析) 頁面上,選擇 Run query (執行查詢)。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。