You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用AWS SDK的GetEntitlementsCommand报Union多非空成员TypeError

问题结论

这是@aws-sdk/client-marketplace-entitlement-service 3.41.0版本的已知Bug,和你的代码逻辑无关。

问题根因

SDK的反序列化校验逻辑存在缺陷:

  • AWS Marketplace Entitlement Service接口返回的Entitlement的Value字段是Union类型,实际返回的原始结构中会同时携带类型标记字段EntitlementValueType和对应类型的实际值字段(比如你遇到的IntegerValue)
  • 该版本SDK的expectUnion方法没有将类型标记字段排除在校验范围外,直接校验时检测到有两个非空字段,违反了Union类型只能有一个非空成员的规则,因此抛出错误。
  • CLI可以正常返回是因为AWS CLI的反序列化逻辑会自动过滤掉类型标记字段,只保留实际值字段。

解决方案

  • 优先升级SDK版本:该问题在后续的SDK版本中已经得到修复,你可以将@aws-sdk/client-marketplace-entitlement-service升级到3.200.0及以上的稳定版本即可解决。
  • 临时兼容方案:如果暂时无法升级SDK,可以自行封装请求逻辑,直接调用AWS OpenAPI接口拿到原始返回值后自行处理,绕过SDK的默认反序列化步骤。

内容的提问来源于stack exchange,提问作者Patrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:24:01