Я пытаюсь использовать ресурс DynamoDB внутри функции шага, и я не могу использовать значение из ввода шага в пределах ExpressionAttributeValues
.
Вот моя запись перед запуском функции шага:
{
"groupId": "5c9e4c4e-088c-48bb-9e41-8d7b6227f117",
"invitationStatus": {
"johndoe@example.com": "unsent"
}
}
Вот входные данные для шага:
{
"email": "johndoe@example.com",
"groupId": "5c9e4c4e-088c-48bb-9e41-8d7b6227f117"
}
Вот мое определение шага:
"Mark Invitation Sent": {
"Comment": "Marks an invitation as having been sent",
"Type": "Task",
"Resource": "arn:aws:states:::dynamodb:updateItem",
"Parameters": {
"TableName": "[my-table-name]",
"Key": {
"groupId": {
"S.$": "$.groupId"
}
},
"UpdateExpression": "SET invitationStatus.#email = :sent",
"ExpressionAttributeNames": {
"#email": "$.email"
},
"ExpressionAttributeValues": {
":sent": {
"S": "sent"
}
}
},
"End": true
}
А вот запись после выполнения шага:
{
"groupId": "5c9e4c4e-088c-48bb-9e41-8d7b6227f117",
"invitationStatus": {
"$.email": "sent",
"johndoe@example.com": "unsent"
}
}
Как видите, он использует буквальное значение "$ .email" вместо фактического значения (johndoe@example.com). Что я делаю не так?