def get_ddb_table()

in content/lab_assets/start/lab5/cfn-project/lambda_functions/source/SurveySubmit/survey_submit.py [0:0]


def get_ddb_table(local_acc):
    arn = os.environ['TABLE_ARN']
    ddb_acc = acc_id_from_arn(arn)
    ddb_region = region_from_arn(arn)
    table_name = table_name_from_arn(arn)
    if ddb_acc == local_acc:
        session = boto3.Session()
    else:
        sts_client = boto3.client("sts")
        creds = sts_client.assume_role(
            RoleArn=f"arn:aws:iam::{ddb_acc}:role/team_{local_acc}_role",
            RoleSessionName="survey"
        )['Credentials']
        session = boto3.Session(
            aws_access_key_id=creds['AccessKeyId'],
            aws_secret_access_key=creds['SecretAccessKey'],
            aws_session_token=creds['SessionToken']
        )
    dynamodb = session.resource('dynamodb', region_name=ddb_region)
    return dynamodb.Table(table_name)