from __future__ import print_function
import os
import sys
import subprocess
import json
import boto3
from boto3.s3.transfer import S3Transfer
TRANSFER = S3Transfer(boto3.client('s3'))
def lambda_handler(event, context):
if 'cmd' in event:
return print(subprocess.check_output(['sh', '-c', event['cmd']]).decode('utf-8'))
filename = 'python3.8.tgz'
subprocess.call(['sh', '-c', f'tar -cpzf /tmp/{filename} --numeric-owner --ignore-failed-read ' +
'/var/runtime /var/lang /var/rapid'])
print('Zipping done! Uploading...')
TRANSFER.upload_file(f'/tmp/{filename}', 'lambci',
f'fs/{filename}', extra_args={'ACL': 'public-read'})
print('Uploading done!')
info = {'sys.executable': sys.executable,
'sys.argv': sys.argv,
'sys.path': sys.path,
'os.getcwd': os.getcwd(),
'__file__': __file__,
'os.environ': {k: str(v) for k, v in os.environ.items()},
'context': {k: str(v) for k, v in context.__dict__.items()},
'proc environ': subprocess.check_output(
['sh', '-c', 'echo /proc/1/environ; xargs -n 1 -0 < /proc/1/environ']).decode('utf-8').splitlines(),
'ps aux': subprocess.check_output(
['bash', '-O', 'extglob', '-c', 'for cmd in /proc/+([0-9])/cmdline; do echo $cmd; xargs -n 1 -0 < $cmd; done']).decode('utf-8').splitlines()}
print(json.dumps(info, indent=2))
return info