def handler(ctx, data: io.BytesIO=None):
signer = oci.auth.signers.get_resource_principals_signer()
object_name = bucket_name = namespace = ordsbaseurl = schema = dbuser = dbpwd = ""
try:
cfg = ctx.Config()
input_bucket = cfg["inputbucket"]
processed_bucket = cfg["processedbucket"]
ordsbaseurl = cfg["ordsbaseurl"]
schema = cfg["dbschema"]
dbuser = cfg["dbuser"]
dbpwd = cfg["dbpwd"]
except Exception as e:
print('Missing function parameters: bucket_name, ordsbaseurl, schema, dbuser, dbpwd', flush=True)
raise
try:
body = json.loads(data.getvalue())
object_name = body["data"]["resourceName"]
if body["data"]["additionalDetails"]["bucketName"] != input_bucket:
raise ValueError("Event Bucket name error")
namespace = body["data"]["additionalDetails"]["namespace"]
except Exception as e:
print('ERROR: bad Event!', flush=True)
raise
try:
insert_status = load_data(signer, namespace, input_bucket, object_name, ordsbaseurl, schema, dbuser, dbpwd)
#move_object(signer, namespace, input_bucket, processed_bucket, object_name)
return response.Response(
ctx,
response_data=json.dumps(insert_status),
headers={"Content-Type": "application/json"}
)
except Exception as e:
return response.Response(
ctx, response_data=json.dumps([{'Error': traceback.format_exc()}
, ]),
headers={"Content-Type": "application/json"}
)