为什么我会收到条件与架构不匹配的错误消息?

Why am I getting an error that my conditions don't match the schema?

我的查询有效:

{
    "TableName": "myTable",
    "IndexName": "gsi1",
    "Limit": 12,
    "KeyConditionExpression": "#pk = :pk",
    "ExpressionAttributeValues": {
        ":pk": "TOS"
    },
    "ExpressionAttributeNames": {
        "#pk": "gsi1_pk"
    }
}

我尝试使用 KeyConditions 而不是表达式将其转换为一个,因为这使其他事情变得更容易。所以我把它改成这样:

{
    "TableName": "myTable",
    "IndexName": "gsi1",
    "Limit": 12,
    "KeyConditions": {
        "gsi1_pk": {
            "ComparisonOperator": "EQ",
            "AttributeValueList": [
                {
                    "S": "TOS"
                }
            ]
        }
    }
}

我在 table 上配置了 GSI:

但是当我发出请求时出现了这个错误:

ValidationException: One or more parameter values were invalid: Condition parameter type does not match schema type

我不明白为什么会出现此错误。

我在转换这个查询时是否遗漏了什么?我不明白我应该更改什么来解决错误,因为它看起来很准确。

来自这个 aws doc

This is a legacy parameter. Use KeyConditionExpression instead. 
'KeyConditions' >= 'KeyConditionExpression'

更改查询中的密钥变量应该可以解决此问题。