api网关与AWS Batch集成

时间:2019-07-23 06:48:32

标签: amazon-web-services aws-lambda aws-api-gateway aws-batch

我想对AWS Batch使用API​​网关

我已经知道如何将API Gateway与AWS lambda naad一起使用,因为lambda限制为250 MB,我无法将其用于集成,现在尝试使用AWS Batch

1 个答案:

答案 0 :(得分:0)

我假设您想使用API​​ Gateway + Lambda创建用于将作业请求提交到AWS Batch的终端节点。

为此,创建以下Lambda函数,该函数将作业提交到AWS Batch。用作业队列的arn替换“ jobQueueArn”。将Lambda函数与API网关集成。

import boto3

def lambda_handler(event, context):

    client = boto3.client('batch')

    JOB_NAME = event['JobName']
    JOB_QUEUE = "jobQueueArn"
    JOB_DEFINITION = "a-job-definition:1"

    response = client.submit_job(
        jobName = JOB_NAME,
        jobQueue = JOB_QUEUE,
        jobDefinition = JOB_DEFINITION,
        parameters = { 'key': 'value' }
        )
    print(response)
    return 0

可以使用parameters输入传递参数。

  

参数(dict)-   传递给作业的其他参数将替换作业定义中设置的参数替换占位符。参数被指定为键和值对映射。 SubmitJob请求中的参数会覆盖作业定义中的任何相应参数默认值。

确保将适当的IAM策略附加到Lambda函数的角色。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Action": [
                "batch:SubmitJob"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}