在扫描操作期间更新dynamodb的STS凭据

2024-10-02 02:34:52 发布

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

我是python新手,需要将数据从一个dynamo数据库迁移到另一个dynamo数据库。 问题是我们有多个帐户用于不同的环境,例如一个用于dev,一个用于prod。要访问prod帐户,我有STS。在

stsCredentials = boto3.client('sts').assume_role(
    RoleArn=STS_ROLE_TO_ACCESS_DEV_ACCOUNT_ARN,
    RoleSessionName='cross-account-dynamodb-role',
    DurationSeconds=STS_TOKEN_TIME_OUT
)

prodAccount = boto3.client(
    'dynamodb',
    region_name=AWS_REGION,
    aws_access_key_id=stsCredentials['Credentials']['AccessKeyId'],
    aws_secret_access_key=stsCredentials['Credentials']['SecretAccessKey'],
    aws_session_token=stsCredentials['Credentials']['SessionToken']
)
devAccount = boto3.client('dynamodb', region_name=AWS_REGION)

然后我需要扫描生产表(实际上,我创建备份并从这个备份恢复另一个表,以减少对prod表的影响)

^{pr2}$

问题是我的prod db有太多的数据,STS令牌过期太快(由于一些限制,我不能创建STS凭据超过1小时)。因此,我的pageIterator在某个时刻抛出异常,并带有token expired异常。可能可以为此pageIterator更新此令牌,并从失败的位置继续扫描。


Tags: 数据nameclientaws数据库帐户prodboto3

热门问题