小编wek*_*ka1的帖子

Boto3更新多个值

在boto3文档中,此示例描述了更新项目:

table.update_item(
    Key={
        'username': 'janedoe',
        'last_name': 'Doe'
    },
    UpdateExpression='SET age = :val1',
    ExpressionAttributeValues={
        ':val1': 26
    }
)
Run Code Online (Sandbox Code Playgroud)

但是如果我想要更新项目的多个值,我应该怎么做.我找不到任何关于此的信息.有人可以帮忙吗?谢谢!

编辑:

好吧,它似乎像这样工作,任何人都可以确认这是正确的方法.只是为了确保我在这里没有做任何完全错误.

table.update_item(
                    Key={
                        'id': item['id']
                    },
                    UpdateExpression='SET value1 = :val1, value2 = :val2',
                    ExpressionAttributeValues={
                        ':val1': someValue1,
                        ':val2': someValue2
                    }
                )
Run Code Online (Sandbox Code Playgroud)

谢谢!

python amazon-dynamodb boto3 aws-lambda

15
推荐指数
1
解决办法
7077
查看次数

AWS SNS通过Cognito Identity ID发布给特定用户

我在这里尝试做的是当特定用户是新添加的DynamoDB项目的一部分时,通过SNS和APNS发送通知.我想将其发送给用户Cognito Identity ID,而不是设备令牌.

因此,应在添加项目时触发Lambda,然后浏览Cognito Identity ID列表,该列表也是项目的一部分.

然后Lambda应该将推送通知发布到每个Cognito Identity ID.

所有设备都在sns中注册为端点.我还将Cognito Identity ID保留在端点的"用户数据"行中.

但我没有找到直接向Cognito Identity ID发送通知的方法.我是否必须为每个用户添加主题并将通知发送到该主题?或者我是否必须存储另一个DynamoDB表以将Cognito Identity ID映射到设备令牌?如果有人知道一种更容易且不太昂贵的方式,那就太棒了!

谢谢!

amazon-web-services amazon-sns amazon-dynamodb aws-lambda

4
推荐指数
1
解决办法
1533
查看次数

如何重命名DynamoDB列/键

在我的DynamoDb表之一中,我有一个名为“状态”的列/键,事实证明这是一个保留关键字。不幸的是,不能删除整个表并重新启动它。如何重命名密钥?

这是导致异常的Lambda代码:

try :
            response = table.query(
                IndexName='myId-index',
                KeyConditionExpression=Key('myId').eq(someId)
            )
            for item in response['Items']:
                print('Updating Item: ' + item['id'])
                table.update_item(
                    Key={
                        'id': item['id']
                    },
                    UpdateExpression='SET myFirstKey = :val1, mySecondKey = :val2, myThirdKey = :val3, myFourthKey = :val4, myFifthKey = :val5, status = :val6',
                    ExpressionAttributeValues={
                        ':val1': someValue1,
                        ':val2': someValue2,
                        ':val3': someValue3,
                        ':val4': someValue4,
                        ':val5': someValue5,
                        ':val6': someValue6
                    }
                )
except Exception, e:
            print ('ok error: %s' % e)
Run Code Online (Sandbox Code Playgroud)

这是例外:

2016-06-14 18:47:24 UTC + 2 ok错误:调用UpdateItem操作时发生错误(ValidationException):无效的UpdateExpression:属性名称是保留关键字;保留关键字:状态

python amazon-web-services amazon-dynamodb boto3

4
推荐指数
2
解决办法
6267
查看次数