· 8 years ago · Dec 01, 2017, 10:14 PM
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3import boto3
4import logging
5import os
6import datetime
7import slackweb
8
9logging.basicConfig(format='%(asctime)s - %(threadName)s - %(module)s:%(funcName)s(%(lineno)d) - %(levelname)s - %(message)s')
10logger = logging.getLogger(__name__)
11logger.setLevel(logging.INFO)
12
13slack = slackweb.Slack(url=os.environ.get('SLACK_API'))
14
15def ok(file_name):
16
17 message = 'OK :' + file_name
18 slack.notify(text=message)
19
20 logger.info(message)
21
22def ng(file_name):
23
24 message = 'NG :' + file_name
25 slack.notify(text=message)
26
27 logger.info(message)
28
29def file_exists():
30
31 accesskey = os.environ.get("ACCESS_KEY")
32 secretkey = os.environ.get("SECRET_KEY")
33 region = os.environ.get("AWS_DEFAULT_REGION")
34 s3 = boto3.resource('s3',aws_access_key_id = accesskey, aws_secret_access_key = secretkey, region_name=region)
35 bucket = s3.Bucket(os.environ.get("AWS_S3_BUCKET_NAME"))
36 utc = datetime.datetime.now()
37 jst = utc + datetime.timedelta(hours=9)
38 file_name = 'group7_' + jst.now().strftime("%Y%m%d") + '.csv'
39 obj = bucket.Object(file_name)
40
41 for object in bucket.objects.all():
42 if file_name == object.key:
43 return ok(file_name)
44
45 return ng(file_name)
46
47
48def start_lambda_handler(event, context):
49 try:
50 logger.info('start.')
51
52 file_exists()
53
54 logger.info('success.')
55 return 'success'
56 except Exception as e:
57 logger.error(e)
58 return 'error'