View a markdown version of this page

解决联系人更新失败的问题 - AWS Ground Station

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

解决联系人更新失败的问题

当您调用 UpdateContactAPI 时, AWS Ground Station 会对请求执行同步验证。如果验证通过,则会异步处理更新以将更改传播到天线区域。同步验证错误直接在 HTTP 响应中返回。异步故障通过failureCodes联系人版本上的failureMessage字段进行报告,您可以通过调用更新失败DescribeContactVersion的版本来查看这些字段。

有关联系人版本控制的更多信息,请参阅更新联系人和联系人版本控制

同步验证错误

UpdateContact请求验证失败时,将直接在 HTTP 响应中返回以下错误。

ResourceNotFoundException: 未找到联系人

常见原因

指定的contactId不存在或属于其他 AWS 账户。

解决方法

  1. 验证是否contactId正确。

  2. 确认您使用的是拥有该联系人的 AWS 账户的凭证。

  3. 使用ListContacts来查找正确的contactId

ConflictException: 无法更新联系人

常见原因

联系人处于不允许更新的状态。只有当联系人处于、或PASS状态时 SCHEDULEDPREPASS,才能调用 UpdateContactAPI。如果其他更新已在进行中(最新联系人版本处于UPDATING状态),也会发生此错误。

解决方法

  1. DescribeContact致电查看当前的联系人状态。

  2. 如果联系人处于终止状态(例如COMPLETEDFAILED、或CANCELLED),则无法更新。只有当联系人处于、或PASS状态时 SCHEDULEDPREPASS,才能对其进行更新。有关终端状态的完整列表,请参阅AWS Ground Station联系人状态

  3. 如果正在进行其他更新,请等待当前更新到达ACTIVEFAILED_TO_UPDATE处于状态,然后再提交其他更新。你可以对 DescribeContactVersionAPI 进行民意调查,也可以使用一些人 AWS SDKs 提供的ContactUpdated服务员便利工具。 AWS Command Line Interface

InvalidParameterException: 无效的请求参数

常见原因

该请求包含无效的参数。常见原因包括:

  • 缺失或为空clientToken

  • 单个请求中包含多种类型ProgramTrackSettings(方位角/仰角、OEM 和 TLE)。每个请求只允许一种类型。

  • satelliteArn在联系人的地面站未获准使用方位角高程星历表的情况下设置为 null。

  • AzElProgramTrackSettingssatelliteArn为空时缺失。

  • 提供ephemerisId与指定无关的satelliteArn

  • 在接触时间范围内,卫星在地面站没有有效的能见度窗口。

  • 这颗卫星没有登上地面站,或者没有任务概况所要求的许可。

  • 任务配置文件包含不支持联系人更新的天线下行传输解调解码配置配置。

解决方法

  1. 查看响应中的错误消息,了解有关哪个参数无效的详细信息。

  2. 确保ProgramTrackSettings每个请求只提供一种类型。

  3. 如果使用不带的 azimuth/elevation 指向角度satelliteArn,请确认您的账户已获得地面站此功能的批准。有关更多信息,请参阅 提供方位角高程星历数据

  4. 验证您引用的星历是否与正确的卫星相关联并涵盖了接触时间范围。

ResourceLimitExceededException: 已达到最大版本限制

常见原因

联系人已达到最大版本数 (128)。每次调用都会UpdateContact创建一个新版本,联系人不能超过此限制。

解决方法

  1. 不能提高此限制。如果您需要进一步更改,请取消联系并重新预订。

异步故障代码

以下故障代码出现在带有FAILED_TO_UPDATE状态的联系人版本failureCodes字段中。DescribeContactVersion用于检索这些详细信息。该failureMessage字段提供了有关失败的其他背景信息。

失败码 常见原因 解决方案
INTERNAL_ERROR 处理更新时出现意外内部错误。 重试更新。如果问题仍然存在,请联系 AWS Support
INVALID_SATELLITE_ARN 更新请求中提供的卫星 ARN 无效或不存在。 验证卫星 ARN 并确认卫星已在您的账户中注册。
INVALID_UPDATE_CONTACT_REQUEST 更新请求包含同步验证期间未捕获的无效参数。 请查看failureMessage,了解详情并更正请求参数。
EPHEMERIS_NOT_FOUND 追踪覆盖中引用的星历不存在。 验证ephemerisId并确认星历未被删除。
EPHEMERIS_TIME_RANGE_INVALID 星历不涵盖联系人的时间范围。 上传涵盖整个联系时间范围的新星历。如果无法延长星历的时间范围,请取消联系并在星历的时间段内保留新的联系人。有关更多信息,请参阅 提供自定义星历数据
EPHEMERIS_NOT_ENABLED 引用的星历未处于状态。ENABLED 请检查星历状态并在重试更新之前将其启用。
SATELLITE_DOES_NOT_MATCH_EPHEMERIS 星历与更新请求中指定的卫星无关。 确保ephemerisId属于中指定的卫星satelliteArn
NOT_ONBOARDED_TO_AZEL_EPHEMERIS 您的账户未获准在联系人的地面站使用方位角高程星历数据。方位角高程星历表是一项受限功能,适用于有限数量的专业用例。 如果您的用例需要方位角高程星历,请通过打开 AWS Support 票证申请访问权限。AWS Support Center Console或者,如果符合您的用例,可以考虑使用 TLE 星历表数据OEM 星历数据
AZEL_EPHEMERIS_NOT_FOUND 请求中引用的方位角高程星历不存在。 验证ephemerisId并确认方位角高程星历表未被删除。
AZEL_EPHEMERIS_WRONG_GROUND_STATION 方位角高程星历表是为与接触者使用的地面站不同的地面站创建的。 为正确的地面站上传新的方位角高程星历,或者使用与联系人地面站相匹配的现有星历表。
AZEL_EPHEMERIS_INVALID_STATUS 位角高程星历表的使用状态不正确。 检查星历状态。它必须处于一种ENABLED状态。如果星历验证失败,请上传更正后的版本。
AZEL_EPHEMERIS_TIME_RANGE_INVALID 方位角仰角星历不涵盖接触的时间范围。 上传涵盖整个接触时间范围的新方位角高程星历。如果无法延长星历的时间范围,请取消联系并在星历的时间段内保留新的联系人。

检查更新状态

调用后UpdateContact,新的联系人版本将在该UPDATING状态下启动。在此期间,DescribeContact将继续返回之前处于活动状态的联系人版本。新版本在传播DescribeContact到天线并达到ACTIVE状态后才会出现。要检查特定版本的状态,请使用DescribeContactVersion

要确定更新是成功还是失败,请执行以下操作:

  1. DescribeContactVersion使用调用contactId并由UpdateContact响应versionId返回。

  2. 检查该version.status字段。状态为ACTIVE表示更新已成功应用。状态为FAILED_TO_UPDATE表示更新失败。

  3. 如果状态为FAILED_TO_UPDATE,请查看version.failureCodesversion.failureMessage字段,详细了解出了什么问题。

提示

有些人 AWS Command Line Interface 支持ContactUpdated服务员 AWS SDKs ,该服务员会自动轮询DescribeContactVersion直到版本达到ACTIVEFAILED_TO_UPDATE处于状态。例如, AWS Command Line Interface 提供了 a ws 地面站等待联系人更新命令。使用服务员,而不是实现自己的投票逻辑。