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!

gefragt vor 2 Jahren204 Aufrufe
1 Antwort
0
Akzeptierte Antwort

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

beantwortet vor 2 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen