Отличный ответ, спасибо.

://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html#aws-appsync-resolver-mapping-template-reference-dynamodb-query

AppSync Doc говорит, чтоexpressionNames а такжеexpressionValues являются необязательными полями, но они всегда заполняются генерацией кода. Первый вопрос, должны ли они быть включены в качестве лучшей практики при работе с DynamoDB? Если так, то почему?

Средство распознавания AppSync для запроса ключа раздела:

{
    "version": "2017-02-28",
    "operation": "Query",
    "query": {
        "expression": "#partitionKey = :partitionKey",
        "expressionNames": {
            "#partitionKey": "partitionKey"
        },
        "expressionValues": {
            ":partitionKey": {
                "S": "${ctx.args.partitionKey}"
            }
        }
    }
}

Второй вопрос, что именно является непрофессиональным переводомexpression поле здесь в коде выше? Что именно это заявление говорит DynamoDB делать? Какая польза от# в"expression": "#partitionKey = :partitionKey" и являются ли имена и значения выражений только форматированием гарантий?

Ответы на вопрос(1)

Ваш ответ на вопрос