From 37d2c9dbdb80b1f64bc9f8d923029af74e14b3f0 Mon Sep 17 00:00:00 2001 From: *lcOeIaePm0 Date: Wed, 13 Oct 2021 10:52:57 +0900 Subject: [PATCH] =?UTF-8?q?feat:detaimport=E7=94=A8=E3=81=AELambda=20?= =?UTF-8?q?=E3=82=92=E4=BD=9C=E6=88=90=E3=81=97=E3=81=9F=E3=81=9F=E3=82=81?= =?UTF-8?q?=E3=80=81dataimport.py=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97?= =?UTF-8?q?=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...bj-newdwh2021-staging-lambda-dataimport.py | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 lambda/mbj-newdwh2021-staging-lambda-dataimport.py diff --git a/lambda/mbj-newdwh2021-staging-lambda-dataimport.py b/lambda/mbj-newdwh2021-staging-lambda-dataimport.py new file mode 100644 index 00000000..169b845c --- /dev/null +++ b/lambda/mbj-newdwh2021-staging-lambda-dataimport.py @@ -0,0 +1,59 @@ +import os +from datetime import datetime +from os import path +import boto3 + +ecs_client = boto3.client('ecs') + +CLUSTER_NAME = os.environ['CLUSTER_NAME'] +TASK_NAME = os.environ['TASK_NAME'] +CONTAINER_NAME = os.environ['CONTAINER_NAME'] +SUBNET_ID_AP_NORTHEAST_1A = os.environ['SUBNET_ID_AP_NORTHEAST_1A'] +SUBNET_ID_AP_NORTHEAST_1D = os.environ['SUBNET_ID_AP_NORTHEAST_1D'] +SECURITY_GROUP_ID = os.environ['SECURITY_GROUP_ID'] + + +def lambda_handler(event, context): + print(str(datetime.now()) + 'Info I-1 駆動処理開始') + + # イベント情報を取得する + s3_event = event['Records'][0]['s3'] + event_bucket_name = s3_event['bucket']['name'] + event_object_key = s3_event['object']['key'] + event_file_name = os.path.basename(event_object_key) + event_data_source_name = os.path.dirname(event_object_key).split('/')[0] + print(str(datetime.now()) + 'Info I-2 バケット名:' + event_bucket_name) + print(str(datetime.now()) + 'Info I-3 ファイル名:' + event_file_name) + print(str(datetime.now()) + 'Info I-4 データソース名:' + event_data_source_name) + + # ECSを起動する + response = ecs_client.run_task( + launchType='FARGATE', + cluster=CLUSTER_NAME, + taskDefinition=TASK_NAME, + networkConfiguration={ + 'awsvpcConfiguration': { + 'subnets': [ + SUBNET_ID_AP_NORTHEAST_1A, SUBNET_ID_AP_NORTHEAST_1D, + ], + 'securityGroups': [ + SECURITY_GROUP_ID, + ], + 'assignPublicIp': 'ENABLED', + } + }, + overrides={ + 'containerOverrides': [ + { + 'name': CONTAINER_NAME, + 'environment': [ + {'name': 'FILE_NAME', 'value': event_file_name}, + {'name': 'DATA_SOURCE_NAME', 'value': event_data_source_name}, + ], + }, + ], + }, + ) + print(str(datetime.now()) + 'Info I-5 ECS起動レスポンス:' + str(response)) + + print(str(datetime.now()) + 'Info I-6 駆動処理終了')