【问题标题】:api gateway integration with aws batchapi 网关与 aws 批处理集成
【发布时间】:2019-12-01 03:33:48
【问题描述】:

我想在 AWS 批处理中使用 API 网关

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

【问题讨论】:

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


    【解决方案1】:

    我假设您想使用 API Gateway + Lambda 创建一个端点,用于向 AWS Batch 提交作业请求。

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

    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 输入传递参数。

    参数(字典)-- 传递给作业的附加参数,用于替换作业定义中设置的参数替换占位符。参数被指定为键值对映射。 SubmitJob 请求中的参数会覆盖作业定义中的任何相应参数默认值。

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

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

    【讨论】:

    • 感谢 Yuke,但我对如何将来自 API 的输入参数传递给批处理有更多疑问。假设一个 json 作为 API { "value" : 123"} 的输入,它将如何将此值作为输入,因为早期的 lambda 用于处理它
    • 嗨,Arpit,您可以简单地添加参数作为 Client.submit_job 函数的输入,如文档boto3.amazonaws.com/v1/documentation/api/latest/reference/…中所述
    • 我无法在 lambda 中获得 aws 批处理输出。如何在 lambda 日志中查看批处理结果?
    猜你喜欢
    • 2019-12-05
    • 2020-12-17
    • 2020-05-31
    • 2020-11-30
    • 2020-09-30
    • 2023-03-08
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多