Lambda에서 인수를 지정하여 AWS Batch를 시작하는 방법

4200 단어 람다AWSBatchAWS

개요



지난번 생성한 AWS Batch가 Lambda에서 실행되도록 합니다.

준비



AWS Batch는 지난번의 것을 그대로 사용합니다. AWS Batch 작업조차 할 수 있기 때문에 CodeCommit 등은 이를 위해서만 준비하지 않아도 괜찮습니다.

Lambda 준비


  • Lambda를 만듭니다. 이번에는 파이썬으로 구현하고 있지만 다른 언어로도 가능합니다.
  • 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')
        }
    
    
  • 실행 결과는 다음과 같습니다.
  • 인수로 지정한 내용과 환경 변수가 출력되고 있습니다.
  • 파라미터를 외부로부터 송신해 lambda를 통해 배치를 기동하는 형태로 할 수 있습니다.
  • 좋은 웹페이지 즐겨찾기