in source/Lambda/innovation_create_account_ou.py [0:0]
def create(event, context):
logger.info("Creating Appstream and Sandbox Accounts")
logger.info(event)
props = event["ResourceProperties"]
mgmt_name = props["Mgmt_Name"]
sbx_name = props["Sbx_Name"]
mgmt_email = props["Mgmt_Email"]
sbx_email = props["Sbx_Email"]
sbx_ou = props["Sbx_OU_Name"]
mgmt_ou = props["Mgmt_OU_Name"]
try:
organizations = boto3.client('organizations', config=config)
root = organizations.list_roots()["Roots"][0]["Id"]
validate_inputs(mgmt_name, sbx_name, mgmt_email, sbx_email, mgmt_ou, sbx_ou, organizations, root)
appstream_act_id = create_account(organizations, mgmt_name, mgmt_email)
appstream_ou = create_ou_move_act(organizations, root, mgmt_ou, appstream_act_id)
sbx = create_account(organizations, sbx_name, sbx_email)
sbx_ou = create_ou_move_act(organizations, root, sbx_ou, sbx)
responseData = {
"Appstream_Account_ID": appstream_act_id,
"Sandbox_Account_ID": sbx,
"Sandbox_OU": sbx_ou
}
send(event, context, SUCCESS, responseData, "Create_Accounts_OUs")
except Exception as e:
message = {'MESSAGE': 'Account Creation Failed', 'FILE': __file__.split('/')[-1],
'METHOD': inspect.stack()[0][3], 'EXCEPTION': str(e), 'TRACE': traceback.format_exc()}
logger.exception(message)
responseData = {
"Message": "Account Creation Failed"
}
send(event, context, FAILED,
responseData, "Create_Accounts_OUs")