Не удается правильно вставить элемент DynamoDB из AWS StepFunctions

#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
   }
}