本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在遇到时,Amazon Neptune 端点返回 Gremlin 和 SPARQL 的标准错误。
也可以从同一个端点返回特定于 Neptune 的错误。本节介绍 Neptune 错误消息、代码和建议的操作。
注意
这些错误仅针对 Neptune 数据库集群端点。 APIs 用于使用 AWS SDK 创建和修改 Neptune 资源, AWS CLI 但存在一组不同的常见错误。有关这些错误的更多信息,请参阅数据库集群管理 API 错误消息和代码。
图形引擎错误格式
Neptune 错误消息返回相关的 HTTP 错误代码和 JSON 格式的响应。
HTTP/1.1 400 Bad Request x-amzn-RequestId: LDM6CJP8RMQ1FHKSC1RBVJFPNVV4KQNSO5AEMF66Q9ASUAAJG Content-Type: application/x-amz-json-1.0 Content-Length: 465 Date: Thu, 15 Mar 2017 23:56:23 GMT { "requestId": "
0dbcded3-a9a1-4a25-b419-828c46342e47
", "code": "ReadOnlyViolationException
", "detailedMessage": "The request is rejected because it violates some read-only restriction, such as a designation of a replica as read-only.
" }
图形引擎查询错误
下表包含错误代码、消息和 HTTP 状态。
它还指示是否可以重试请求。一般而言,如果在新尝试中请求可能成功,则可以重试请求。
Neptune 服务错误代码 | HTTP 状态 | 可以重试? | 消息 |
---|---|---|---|
AccessDeniedException |
403 | 否 | 身份验证或授权失败。 |
BadRequestException |
400 | 否 | 无法完成请求。 |
BadRequestException |
400 | 否 | 请求大小超出允许的最大值 157286400 字节。 |
CancelledByUserException |
500 | 是 | 经授权的客户端取消了请求处理。 |
ConcurrentModificationException |
500 | 是 | 由于修改冲突,请求处理未成功。客户端应重试请求。 |
ConstraintViolationException |
400 | 是 | 在请求执行期间,查询引擎发现必须要违反某些数据完整性约束(例如,添加边缘时,内顶点和外顶点的持久性)才可能完成某个操作。在对图形进行并行修改时,通常会看到此类情况,而且是临时性的。客户端应重试请求。 |
FailureByQueryException |
500 | 是 | 调用 fail () 会导致请求处理失败。 |
InternalFailureException |
500 | 是 | 请求处理失败。 |
InvalidNumericDataException |
400 | 否 | 使用无法以 64 位存储大小表示的数字数据无效。 |
InvalidParameterException |
400 | 否 | 在提供的 RDF 文件中,为某些输入参数或无效语法提供了无效的或 out-of-range值。 |
MalformedQueryException |
400 | 否 | 由于请求中包含语法错误的查询或者未通过额外验证,请求被拒绝。 |
MemoryLimitExceededException |
500 | 是 | 由于缺少内存,请求不成功,但可在服务器较不忙时重试。 |
MethodNotAllowedException |
405 | 否 | 由于使用的终端节点不支持所选 HTTP 方法,请求被拒绝。 |
MissingParameterException |
400 | 否 | 未提供用于指定操作的必需参数。 |
QueryLimitExceededException |
500 | 是 | 由于缺少有限的资源,请求处理未成功,但可在服务器不太忙时重试。 |
QueryLimitException |
400 | 否 | 查询大小超出系统限制。 |
QueryTooLargeException |
400 | 否 | 由于正文太大,拒绝了请求。 |
ReadOnlyViolationException |
400 | 否 | 由于请求违反了某个只读限制,例如将副本指定为只读,请求被拒绝。 |
ThrottlingException |
500 | 是 | 请求速率超出吞吐量上限。OK to retry。 |
TimeLimitExceededException |
500 | 是 | 请求处理超时。 |
TooManyRequestsException |
429 | 是 | 请求速率超过最大吞吐量。OK to retry。 |
UnsupportedOperationException |
400 | 否 | 请求使用了当前不支持的功能或构造。 |
IAM 身份验证错误
这些错误特定于已启用 IAM 身份验证的集群。
下表包含错误代码、消息和 HTTP 状态。
Neptune 服务错误代码 | HTTP 状态 | 消息 |
---|---|---|
IAM 用户/策略不正确 | 403 | 您没有足够的访问权限,无法执行该操作。 |
区域不正确或缺失 | 403 | 证书的范围应限于有效的区域,而不是 “” region 。 |
服务名称不正确或缺失 | 403 | 凭证应当局限于正确的服务:“neptune-db ”。 |
主机标头不正确或缺失/签名无效 | 403 | 我们计算出的请求签名与您提供的签名不匹配。检查您的 AWS 私有访问密钥和签名方法。有关详细信息,请参阅服务文档。主机标头缺失或主机名不正确。 |
缺少 X-Amz-Security-Token |
403 | “x-amz-security-token ”被指定作为 SignedHeader ,但在 HTTP 请求中不存在 |
Authorization 标头缺失 | 403 | 请求未包含所需的授权标头,或请求的格式不正确。 |
身份验证令牌缺失 | 403 | 身份验证令牌缺失。 |
旧日期 | 403 | 签名已过期:20181011T213907Z 现在早于 20181011T213915Z (20181011T214415Z -5 min .) |
未来日期 | 403 | 签名尚未20500224T213559Z 最新:仍晚于 20181108T225925Z (20181108T225425Z +5 min .) |
日期格式不正确 | 403 | 日期必须采用 ISO-8601“基本格式”。明白了 date “”。请参阅 https://en.wikipedia.org/wiki/ISO_8601 |
访问密钥或会话令牌未知/缺失 | 403 | 请求中包含的安全令牌无效。 |
私有密钥未知/缺失 | 403 | 我们计算出的请求签名与您提供的签名不匹配。检查您的 AWS 私有访问密钥和签名方法。有关详细信息,请参阅服务文档。主机标头缺失或主机名不正确。 |
TooManyRequestsException |
429 | 请求速率超过最大吞吐量。OK to retry。 |