in src/client_session_helper.py [0:0]
def boto3_client(service, assumed_credentials=None, session=None, region=None, profile=None):
"""Creates a boto3 client using the provided resource, credentials or profile
Args:
service (str): Name of the service to create a client with
session (str, optional): AWS Session
region (str, optional): AWS Region
assumed_credentials (dict, optional): Assumed credentials dict returned from assume_role
profile (str, optional): Name of the credential profile to use
Returns:
:obj:`boto3.client`: Returns a boto3 session object
"""
args = dict()
args['service_name'] = service
args['region_name'] = region
if not session:
session = boto3_session(profile)
try:
if assumed_credentials:
if 'AccessKeyId' in assumed_credentials.keys():
args['aws_access_key_id'] = assumed_credentials['AccessKeyId']
args['aws_secret_access_key'] = assumed_credentials['SecretAccessKey']
args['aws_session_token'] = assumed_credentials['SessionToken']
elif 'accessKeyId' in assumed_credentials.keys():
args['aws_access_key_id'] = assumed_credentials['accessKeyId']
args['aws_secret_access_key'] = assumed_credentials['secretAccessKey']
args['aws_session_token'] = assumed_credentials['sessionToken']
client = session.client(**args)
return client
except BaseException as e:
raise Exception(
f"Failed to establish client with AWS: {str(e)}"
) from e