in 3-serverless-microservice-stack/custom-resource-code/init.py [0:0]
def create(properties, physical_id):
print("Create Event and Properties: {}".format(json.dumps(properties)))
bucket = properties['Bucket']
print('Begin init dynamodb table data!')
owner_request = {}
vet_request = {}
visit_request = {}
for table in properties["DynamoDBTables"]:
if 'Customer' in table:
owner_tab = table
elif 'Vet' in table:
vet_tab = table
else:
visit_tab = table
print('Import owner table data!')
keep_try = True
while keep_try:
try:
owner_body = s3.Object(bucket, 'data/owner.json').get()['Body']
owner_request[owner_tab] = json.load(owner_body)['test_owner']
ddb_client.batch_write_item(RequestItems=owner_request)
keep_try = False
except ClientError as e:
if e.response['Error']['Code'] == 'NoSuchKey':
print('Seelp 5s to wait for the owner.json to be uploaded...')
time.sleep(5)
else:
raise
print('Import vet table data!')
keep_try = True
while keep_try:
try:
vet_body = s3.Object(bucket, 'data/vet.json').get()['Body']
vet_request[vet_tab] = json.load(vet_body)['test_vet']
ddb_client.batch_write_item(RequestItems=vet_request)
keep_try = False
except ClientError as e:
if e.response['Error']['Code'] == 'NoSuchKey':
print('Seelp 5s to wait for the vet.json to be uploaded...')
time.sleep(5)
else:
raise
print('Import visit table data!')
keep_try = True
while keep_try:
try:
visit_body = s3.Object(bucket, 'data/visit.json').get()['Body']
visit_request[visit_tab] = json.load(visit_body)['test_visit']
ddb_client.batch_write_item(RequestItems=visit_request)
keep_try = False
except ClientError as e:
if e.response['Error']['Code'] == 'NoSuchKey':
print('Seelp 5s to wait for the visit.json to be uploaded...')
time.sleep(5)
else:
raise
keep_try = True
while keep_try:
try:
config_object = s3.Object(bucket, 'scripts/config.js')
config_data = config_object.get()['Body'].read().decode('utf-8')
config_data = config_data.replace("_baseUrl = ''", "_baseUrl = '{}'".format(properties["InvokeUrl"]))
config_object.put(Body=config_data)
keep_try = False
except ClientError as e:
if e.response['Error']['Code'] == 'NoSuchKey':
print('Seelp 5s to wait for the config.js to be uploaded...')
time.sleep(5)
else:
raise
return cfnresponse.SUCCESS, None