概要
前回作成したAWS BatchをLambdaから実行するようにします。
準備
AWS Batchは前回のものをそのまま使います。AWS BatchのジョブさえできていればいいのでCodeCommitなどはこのためだけに準備しなくても大丈夫です。
Lambdaの準備
- Lambdaを作成します。今回はpythonで実装していますがほかの言語でも可能です。
- JOB_NAME はジョブ定義の名称
- JOB_DEFINITION はジョブ定義のジョブ定義ARN
- JOB_QUEUE はジョブキューのキューARN
-
XXXXXXXXXX
の部分はAWSのアカウントIDを設定します。
-
-
command
の部分に引数をリスト形式で -
environment
には環境変数を辞書形式 name,valeの辞書をリスト形式で設定します
import json
import boto3
def lambda_handler(event, context):
client = boto3.client('batch')
JOB_NAME = 'pandas-envtest'
JOB_QUEUE = "arn:aws:batch:ap-northeast-1:XXXXXXXXXX:job-queue/first-run-job-queue"
JOB_DEFINITION = "arn:aws:batch:ap-northeast-1:XXXXXXXXXX:job-definition/pandas-envtest:1"
response = client.submit_job(
jobName = JOB_NAME,
jobQueue = JOB_QUEUE,
jobDefinition = JOB_DEFINITION,
containerOverrides={
'command': [
'test','abc','ckd'
],
'environment': [
{
'name': 'DYNAMODB_REGION',
'value': 'test'
}
]
}
)
print(response)
return {
'statusCode': 200,
'body': json.dumps('run')
}