我試圖在設定條件運算式時通過 Step Functions 推送 DynamoDB 記錄,但由于某種原因,我收到了錯誤:
您的狀態機定義中存在 Amazon 狀態語言錯誤。修復錯誤以繼續。欄位“專案”是必需的,但缺少(在 /States/MyStep/Parameters)
我不想推一個Item. 我想使用更新運算式。
這是我的代碼:
{
"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"
}
}
}
有什么問題?
uj5u.com熱心網友回復:
有 2 個主要的 DynamoDB API 用于修改專案:
PutItemUpdateItem
簡而言之,PutItem通過替換它來“更新”專案,因此,它需要傳遞替換專案。這是您正在使用的 API 呼叫,也是您獲得The field 'Item' is required but was missing. 正確,使用Item 時需要PutItem。
相反,您需要使用UpdateItemwhich 不需要完整的新專案,并且將根據更新運算式(這就是您所擁有的)修改專案的屬性。
在您的步進函式定義中,替換:
"Resource": "arn:aws:states:::dynamodb:putItem",
和:
"Resource": "arn:aws:states:::dynamodb:updateItem",
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482366.html
標籤:亚马逊网络服务 亚马逊-dynamodb aws-step-functions
下一篇:突出顯示ggplot2中的前3名
