in lambdas/custom_resources/CTE_CrossAccountCloudFormation/src/client_session_helper.py [0:0]
def boto3_session(region=None, credentials=None, profile=None):
"""Creates a boto3 session using optional profile
Args:
region (str, optional): AWS Region to create a boto3 session in
credentials (str, optional): Name of the credential to use
profile (str, optional): Name of the profile to use
Returns:
:obj:`boto3.session`: Returns a boto3 session object
"""
args = dict()
args['region_name'] = region
try:
if profile:
args['profile_name'] = profile
elif credentials:
if 'AccessKeyId' in credentials.keys():
args['aws_access_key_id'] = credentials['AccessKeyId']
args['aws_secret_access_key'] = credentials['SecretAccessKey']
args['aws_session_token'] = credentials['SessionToken']
elif 'accessKeyId' in credentials.keys():
args['aws_access_key_id'] = credentials['accessKeyId']
args['aws_secret_access_key'] = credentials['secretAccessKey']
args['aws_session_token'] = credentials['sessionToken']
session = boto3.Session(**args)
return session
except BaseException as e:
raise ex.SessionException(
f"Failed to establish session to AWS: {str(e)}"
)