#amazon-web-services #amazon-dynamodb #aws-step-functions
#amazon-web-services #amazon-dynamodb #aws-step-функции
Вопрос:
Я записал состояние в AWS StepFunctions для вставки элемента в таблицу DynamoDB, как показано ниже. Вывод состояния Lambda переходит на вход ниже состояния DynamoDB.
"States":{
"Update the order table":{
"Type":"Task",
"Resource":"arn:aws:states:::dynamodb:putItem",
"Parameters":{
"TableName":"OrderTable",
"Item":{
"OrderId":{
"S":"$.OrderId"
},
"ItemName":{
"S":"$.ItemName"
},
"Price":{
"S":"$.Price"
},
"CC":{
"S":"$.CC"
}
}
},
"End":true
}
}
Литеральные строки «$.OrderID», «$.ItemName» и другие вставляются в таблицу DynamoDB, а не значения из лямбда-функции.
Итак, я удалил двойные кавычки вокруг «$.OrderID» и я получаю приведенную ниже ошибку.
Входные данные для состояния DynamoDB верны, но я все еще не могу вставить выходные данные лямбда-выражения в таблицу DynamoDB.
Буду признателен за любую помощь.
Ответ №1:
Вот как должно выглядеть определение вашей задачи. Обратите $
внимание на знак после типа данных для каждого атрибута элемента.
"States":{
"Update the order table":{
"Type":"Task",
"Resource":"arn:aws:states:::dynamodb:putItem",
"Parameters":{
"TableName":"OrderTable",
"Item":{
"OrderId":{
"S.$":"$.OrderId"
},
"ItemName":{
"S.$":"$.ItemName"
},
"Price":{
"S.$":"$.Price"
},
"CC":{
"S.$":"$.CC"
}
}
},
"End":true
}
}