def create()

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")