-
Notifications
You must be signed in to change notification settings - Fork 1
/
lambda-trigger-glue-crawler.py
55 lines (44 loc) · 1.33 KB
/
lambda-trigger-glue-crawler.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import os
import json
import boto3
import logging
# Set up logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
ses = boto3.client('ses')
glue = boto3.client('glue', region_name='us-east-1')
# Variables for the job:
email_from = os.environ['email_from']
email_to = os.environ['email_to']
glue_crawler_name = os.environ['glue_crawler_name']
def lambda_handler(event, context):
#print("Received event: " + json.dumps(event, indent=2))
status = event['detail']['state']
print("Status: " + str(status[0]))
if status[0] == 'SUCCEEDED':
email_subject = 'NSE Stock Price | Feed Processing - Successful'
else:
email_subject = 'NSE Stock Price | Feed Processing - Failed'
email_body = ''
response_ses = ses.send_email(
Source = email_from,
Destination={
'ToAddresses': [
email_to,
],
},
Message={
'Subject': {
'Data': email_subject
},
'Body': {
'Text': {
'Data': email_body
}
}
}
)
print("Glue Crawler: " + glue_crawler_name)
response_glue = glue.start_crawler(Name=glue_crawler_name)
logger.info('## STARTED GLUE CRAWLER: ' + glue_crawler_name)
return response_ses