Skip to content

Instantly share code, notes, and snippets.

@sudheerchamarthi
Created April 14, 2021 19:34
Show Gist options
  • Save sudheerchamarthi/8880276bfd3362b0e4222e13a57c5479 to your computer and use it in GitHub Desktop.
Save sudheerchamarthi/8880276bfd3362b0e4222e13a57c5479 to your computer and use it in GitHub Desktop.
import boto3
import json
sts=boto3.client('sts')
crossRoleArn = "arn:aws:iam::XX:role/cross"
stsresponse = sts.assume_role(RoleArn=crossRoleArn,RoleSessionName='dynamocross')
src_client = boto3.client('dynamodb', region_name="us-east-1")
dest_client = boto3.client('dynamodb', region_name="us-east-1",aws_access_key_id=stsresponse["Credentials"]["AccessKeyId"],aws_secret_access_key=stsresponse["Credentials"]["SecretAccessKey"],aws_session_token=stsresponse["Credentials"]["SessionToken"])
srcTableName="src"
destTableName="dest"
def putDynamo(items):
for item in items:
dest_client.put_item(TableName=destTableName, Item=item)
def lambda_handler(event, context):
first_page = True
nextToken="NA"
while True:
response = src_client.scan(TableName=srcTableName)
putDynamo(response['Items'])
try:
nextToken = response['LastEvaluatedKey']
except Exception as e:
print(e)
if nextToken != "NA":
response = src_client.scan(TableName=srcTableName, ExclusiveStartKey = response['LastEvaluatedKey'])
putDynamo(response['Items'])
else:
print("No new entrines. exiting")
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment