By using AWS re:Post, you agree to the AWS re:Post Terms of Use

DynamoDB in SFN -> Why does it request an ITEM value when it clearly shouldn't

0

I'm trying to push a DynamoDB record through SFN while setting up a conditional expression but for some reason it requests an "ITEM" field.

I don't want to push an ITEM. I want to push a conditional expression.

According to the API Docs, it should work.

Here's my code:

{
  "StartAt": "MyStep",
  "States": {
    "MyStep": {
      "Type": "Task",
      "Resource": "arn:aws:states:::dynamodb:putItem",
      "Parameters": {
        "TableName.$": "$.table_name",
        "Key": {
          "test_id_path_method_executor_id": {"S.$": "$.update_key.test_id_path_method_executor_id"},
          "result_timestamp": {"S.$": "$.update_key.result_timestamp"}
        },
        "ConditionExpression": "#max_db < :max_values",
        "ExpressionAttributeValues": {
          ":max_values": {"N.$": "$.result_value"}
        },
        "ExpressionAttributeNames": {
          "#max_db": "max"
        },
        "UpdateExpression": "SET #max_db = :max_values"
      },
      "Next": "EndSuccess"
    },
    "EndSuccess": {
      "Type":"Succeed"
    }
  }
}

The error I get is this:

There are Amazon States Language errors in your state machine definition. Fix the errors to continue.
The field 'Item' is required but was missing (at /States/MyStep/Parameters)

Am I doing something wrong?

Or is it an AWS problem and I should create a Support ticket instead?

Thanks!

1 Answer
0
Accepted Answer

I used "putItem", instead of "updateItem"...

answered 3 years ago
profile picture
EXPERT
reviewed 5 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions