LoginSignup
8
6

More than 3 years have passed since last update.

Lambdaから引数を指定して AWS Batch起動方法

Last updated at Posted at 2020-09-20

概要

前回作成した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')
    }

  • 実行結果は以下のようになります。
  • 引数で指定した内容と環境変数が出力されています。
    image.png

  • パラメータを外から送信してlambdaを通してバッチを起動するような形にできます。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6