

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

# 對遙測進行故障診斷
<a name="troubleshooting-telemetry"></a>

 使用下列資訊來疑難排解遙測的常見問題。

## 常見的設定問題
<a name="troubleshooting-telemetry.setup-issues"></a>

### IAM 許可錯誤
<a name="troubleshooting-telemetry.iam-permissions"></a>

 **徵狀** 

 呼叫 `CreateConfig` 建立 TelemetrySinkConfig 時，您會收到錯誤：

```
Unable to write to Kinesis Data Streams stream. Ensure that Ground Station has 
kinesis:PutRecord permissions for the given stream
```

 **原因** 
+  TelemetrySinkConfig 中指定的 IAM 角色沒有寫入 Kinesis Data Streams 串流所需的許可。
+  IAM 角色上的信任政策不允許 AWS Ground Station 擔任該角色。
+  TelemetrySinkConfig 中的 Kinesis Data Streams 串流 ARN 不正確或串流不存在。

 **解決方案** 

1.  確認 IAM 角色存在且具有正確的許可。檢閱[步驟 2：建立 TelemetrySinkConfig](telemetry.setup.md#telemetry.setup.step2)並確保遵循所有步驟。

1.  檢查 AWS Ground Station 是否可以擔任您的 IAM 角色：

   ```
   aws iam get-role --role-name GroundStationTelemetryRole
   ```

    確認信任政策包含 `groundstation.amazonaws.com`做為信任的服務委託人。

1.  確認 IAM 角色具有必要的 Kinesis 許可：

   ```
   aws iam list-attached-role-policies --role-name GroundStationTelemetryRole
   ```

    確保政策包含串流的 `kinesis:DescribeStream``kinesis:PutRecord`、 和 `kinesis:PutRecords`許可。

1.  確認 Kinesis Data Streams 串流存在且 ARN 正確：

   ```
   aws kinesis describe-stream \
       --stream-name {{your-stream-name}} \
       --region {{us-east-2}}
   ```

1.  如果使用客戶受管加密，請確認 IAM 角色具有 AWS KMS 金鑰的`kms:GenerateDataKey`許可。

### PassRole 許可錯誤
<a name="troubleshooting-telemetry.passrole"></a>

 **徵狀** 

 呼叫 時`CreateConfig`，您會收到有關沒有許可傳遞 IAM 角色的錯誤。

 **解決方案** 

 確保您的 IAM 使用者或角色具有遙測 IAM 角色的`iam:PassRole`許可。將下列政策新增至您的使用者或角色：

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{99999999999}}:role/{{your-stream-name}}"
    }
  ]
}
```

### Kinesis Data Streams 串流組態問題
<a name="troubleshooting-telemetry.kinesis-config"></a>

 **徵狀** 

 遙測交付失敗或間歇性。

 **原因** 
+  Kinesis Data Streams 串流的容量不足以提供遙測輸送量。
+  其他應用程式正在使用串流，導致寫入限流。

 **解決方案** 

1.  檢查串流狀態：

   ```
   aws kinesis describe-stream \
       --stream-name {{your-stream-name}} \
       --region {{us-east-2}}
   ```

1.  使用 CloudWatch 指標監控寫入限流：

   ```
   aws cloudwatch get-metric-statistics \
       --namespace AWS/Kinesis \
       --metric-name WriteProvisionedThroughputExceeded \
       --dimensions Name=StreamName,Value={{your-stream-name}} \
       --start-time {{2025-12-08T00:00:00Z}} \
       --end-time {{2025-12-08T23:59:59Z}} \
       --period 60 \
       --statistics Sum \
       --region {{us-east-2}}
   ```

1.  如果偵測到限流，請考慮：
   +  切換到隨需容量模式以進行自動擴展。
   +  使用專用串流進行 AWS Ground Station 遙測。
   +  如果使用佈建模式，請增加碎片數量。

## 遙測交付問題
<a name="troubleshooting-telemetry.delivery-problems"></a>

### 沒有顯示遙測資料
<a name="troubleshooting-telemetry.no-data"></a>

 **徵狀** 

 使用啟用遙測功能的任務設定檔排定聯絡後，Kinesis Data Streams 串流中不會顯示遙測資料。

 **可能的原因和解決方案** 

任務描述檔未啟用遙測  
 確認用於聯絡人的任務描述檔包含 `telemetrySinkConfigArn`：  

```
aws groundstation get-mission-profile \
    --mission-profile-id {{12345678-1234-1234-1234-123456789012}} \
    --region {{us-east-2}}
```
 檢查 `telemetrySinkConfigArn` 欄位的輸出。如果不存在，則任務設定檔未啟用遙測。

IAM 角色許可問題  
 檢閱 中的 IAM 許可疑難排解步驟[IAM 許可錯誤](#troubleshooting-telemetry.iam-permissions)。

Kinesis Data Streams 串流不存在或位於錯誤的區域  
 確認串流存在於正確的區域中：  

```
aws kinesis describe-stream \
    --stream-name {{your-stream-name}} \
    --region {{us-east-2}}
```

聯絡人尚未開始  
 遙測交付從聯絡開始時間開始。檢查聯絡人狀態，確認聯絡人已開始：  

```
aws groundstation describe-contact \
    --contact-id {{12345678-1234-1234-1234-123456789012}} \
    --region {{us-east-2}}
```

### 間歇性遙測資料
<a name="troubleshooting-telemetry.intermittent"></a>

 **徵狀** 

 遙測資料交付的方式與差距或遺失記錄不一致。

 **可能的原因** 
+  Kinesis Data Streams 串流容量問題或限流。請參閱 [Kinesis Data Streams 串流組態問題](#troubleshooting-telemetry.kinesis-config)。
+  AWS Ground Station 與 Kinesis Data Streams 串流之間的網路連線問題。

 **解決方案** 
+  在 CloudWatch 中監控 Kinesis Data Streams 串流指標是否有限流或錯誤。
+  確保您的串流使用隨需容量模式或有足夠的佈建容量。
+  使用專用串流進行 AWS Ground Station 遙測，以避免與其他應用程式爭用。

## 資料格式問題
<a name="troubleshooting-telemetry.data-format"></a>

### JSON 剖析錯誤
<a name="troubleshooting-telemetry.json-parsing"></a>

 **徵狀** 

 您的應用程式在剖析遙測記錄為 JSON 時發生錯誤。

 **解決方案** 
+  **驗證 Base64 解碼** - Kinesis Data Streams 串流中的資料是 Base64-encoded。務必先解碼資料，再將其剖析為 JSON。如需詳細資訊，請參閱[從 Kinesis Data Streams 串流讀取資料](telemetry.understanding-data.md#telemetry.understanding-data.reading)。
+  **檢查空白記錄** - 建立 *TelemetrySinkConfig* 時 AWS Ground Station 可傳送空白驗證記錄。您的應用程式應正常處理空白或格式不正確的記錄。
+  **實作版本感知剖析** - 首先剖析 `telemetryTypeAndVersion`、 `telemetryType`和 `telemetryVersion` 欄位，以判斷每個記錄的適當結構描述。

### 未知遙測類型或版本
<a name="troubleshooting-telemetry.unknown-types"></a>

 **徵狀** 

 您的應用程式遇到遙測類型或無法辨識的版本。

 **解決方案** 

 這是預期的行為，因為新的遙測類型和結構描述版本可能會隨著時間推移而引入。您的應用程式應該：
+  記錄未知類型和版本以進行監控。
+  繼續處理已知類型和版本。
+  針對未知結構描述實作優雅處理。

 如需結構描述版本控制的詳細資訊，請參閱 [結構描述版本控制和演變](telemetry.understanding-data.md#telemetry.understanding-data.schema-evolution)。

## 取得說明
<a name="troubleshooting-telemetry.getting-help"></a>

 如果您在遵循疑難排解步驟之後持續遇到問題，請聯絡 AWS Support。

 **要提供的資訊** 

 聯絡支援時，請提供下列資訊：
+  遇到問題的聯絡人 IDs 
+  使用的任務設定檔 ID 
+  TelemetrySinkConfig ARN 
+  Kinesis Data Streams 串流 ARN 
+  IAM 角色 ARN 和連接的政策 
+  CloudWatch Logs 或您的應用程式的錯誤訊息 
+  發生問題時的時間戳記 
+  已採取的故障診斷步驟 

 如需一般 AWS Ground Station 支援，請參閱[AWS Ground Station 《 使用者指南》](https://docs.aws.amazon.com/ground-station/latest/ug/what-is.html)。