通过不带TTL的AppSync删除项目

2024-06-28 11:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用AppSync通过Lambda中的一个简单调用来删除项目(每个用户的版本在进行调用之前被提取):

mutation = """mutation MyMutation {deleteUser(input: {id: "12345", _version: "1"}) {
                    id
                    _version
                  }
                }"""

mutationResponse = session.request(
            url=APPSYNC_API_ENDPOINT_URL,
            method='POST',
            headers={'authorization': token},
            json={'query': mutation}
        )

虽然这在一开始确实有效,但在列出所有我的用户后,用户仍会出现在该列表中,并且在检查DynamoDB项目时,用户有一个ttl标记和一个\u deleted(=true)标记。 然后我禁用了此表的ttl阿曲布他,但得到了相同的结果

DynamoDB的屏幕截图: Screenshot of DynamoDB

有没有办法直接删除该项目


Tags: 项目lambda用户标记版本idinputversion
1条回答
网友
1楼 · 发布于 2024-06-28 11:32:45

您可以通过DynamoDB解析器轻松删除项目。
以下请求映射模板将执行此任务:

{
    "version": "2017-02-28",
    "operation": "DeleteItem",
    "key": {
        "id": { "S": "$context.arguments.id"}
    }
}

如果要通过Lambda解析器执行此操作,则需要手动执行DynamoDB DeleteItem调用。
下面是DynamoDB的bot3文档:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/dynamodb.html#deleting-an-item

相关问题 更多 >