in Solutions/AWSSCV-VoicemailExpress/Code/awsscv_vmx_presigner/awsscv_vmx_presigner.py [0:0]
def lambda_handler(event, context):
logger.debug(event)
# Establsih an empty response
response = {}
# Set the default result to success
response.update({'result':'success'})
# Retrieve credentials from AWS Secrets Manager
try:
use_keys = get_secret()
except Exception as e:
logger.error(e)
response.update({'result':'fail'})
response.update({'detail':'key retrieval failed'})
return response
# Configure the environment for the URL generation and initialize s3 client
try:
my_config = Config(
region_name = os.environ['aws_region'],
signature_version = 's3v4',
retries = {
'max_attempts': 10,
'mode': 'standard'
}
)
client = boto3.client(
's3',
aws_access_key_id = use_keys['AWSSCV_vmx_iam_key_id'],
aws_secret_access_key = use_keys['AWSSCV_vmx_iam_key_secret'],
config=my_config
)
except Exception as e:
logger.error(e)
response.update({'result':'fail'})
response.update({'detail':'s3 client init failed'})
return response
# Generate the presigned URL and return
try:
presigned_url = client.generate_presigned_url('get_object',
Params = {'Bucket': event['recording_bucket'],
'Key': event['recording_key']},
ExpiresIn = int(os.environ['s3_obj_lifecycle'])*86400
)
response.update({'presigned_url': presigned_url})
return response
except Exception as e:
logger.error(e)
response.update({'result':'fail'})
response.update({'detail':'presigned url generation failed'})
logger.debug(response)
return response