

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对遥测进行故障排除
<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
```

 **原因** 
+  中指定的 IAM 角色 TelemetrySinkConfig 没有写入 Kinesis Data Streams 流所需的权限。
+  IAM 角色的信任策略不 AWS Ground Station 允许代入该角色。
+  中的 Kinesis Data Streams 流 ARN 不正确或者该直播不存在。 TelemetrySinkConfig 

 **解决方案** 

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 角色是否`kms:GenerateDataKey`有权访问您的 AWS KMS 密钥。

### 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)。
+  与您的 Kinesis Data Streams 流之间的 AWS Ground Station 网络连接问题。

 **解决方案** 
+  监控 Kinesis Data Streams 流式传输指标 CloudWatch 是否存在限制或错误。
+  确保您的直播使用按需容量模式或具有足够的预配置容量。
+  使用专用流进行 AWS Ground Station 遥测，以避免与其他应用程序争用。

## 数据格式问题
<a name="troubleshooting-telemetry.data-format"></a>

### JSON 解析错误
<a name="troubleshooting-telemetry.json-parsing"></a>

 **症状** 

 您的应用程序在将遥测记录解析为 JSON 时遇到错误。

 **解决方案** 
+  **验证 Base64 解码** ——Kinesis Data Streams 流中的数据经过了 Base64 编码。在将数据解析为 JSON 之前，请务必对其进行解码。有关更多信息，请参阅 [从 Kinesis Data Streams 流中读取数据](telemetry.understanding-data.md#telemetry.understanding-data.reading)。
+  **检查是否有空记录**-在创建时 AWS Ground Station 可能会发送空的验证记录*TelemetrySinkConfig*。您的应用程序应优雅地处理空记录或格式错误的记录。
+  **实现版本感知解析**-首先解析`telemetryTypeAndVersion`、和`telemetryVersion`字段`telemetryType`，以确定每条记录的相应架构。

### 未知的遥测类型或版本
<a name="troubleshooting-telemetry.unknown-types"></a>

 **症状** 

 您的应用程序遇到无法识别的遥测类型或版本。

 **解决方案** 

 这是预期的行为，因为随着时间的推移，可能会引入新的遥测类型和架构版本。您的应用程序应该：
+  记录未知类型和版本以进行监控。
+  继续处理已知类型和版本。
+  实现对未知架构的优雅处理。

 有关架构版本控制的更多信息，请参阅[架构版本控制和演进](telemetry.understanding-data.md#telemetry.understanding-data.schema-evolution)。

## 获取帮助
<a name="troubleshooting-telemetry.getting-help"></a>

 如果您在执行故障排除步骤后仍然遇到问题，请联系 Su AWS pport。

 **要提供的信息** 

 联系支持人员时，请提供以下信息：
+  联系人 IDs 遇到问题 
+  使用的任务配置文件 ID 
+  TelemetrySinkConfig ARN 
+  Kinesis Data Streams 直播 ARN 
+  IAM 角色 ARN 和附加的策略 
+  来自 CloudWatch 日志或您的应用程序的错误消息 
+  问题发生的时间戳 
+  已采取故障排除步骤 

 有关一般 AWS Ground Station 支持，请参阅《[AWS Ground Station 用户指南》](https://docs.aws.amazon.com/ground-station/latest/ug/what-is.html)。