代码之家  ›  专栏  ›  技术社区  ›  Costin

aws批处理:使用lambda提交作业

  •  5
  • Costin  · 技术社区  · 7 年前

    λ , 一批 .

    我有一个lambda,当文件上传到S3 Bucket中时会触发。我希望lambda提交一个批处理作业。

    (编辑:在S3和Lambda之间,一切正常。问题是Lambda和Batch之间。)

    Q :什么是 角色 我必须给 λ 为了能够提交批处理作业?

    我的lambda得到一个 AccessDeniedException 在以下情况下未能提交作业:

    const params = {
      jobDefinition: BATCH_JOB_DEFINITION,
      jobName: BATCH_JOB_NAME,
      jobQueue: BATCH_JOB_QUEUE,
    };
    
    Batch.submitJob(params).promise() .then .......
    
    2 回复  |  直到 7 年前
        1
  •  14
  •   Costin    7 年前

    似乎这就是我想要的角色: batch:SubmitJob . 使用此角色,lambda能够提交作业。

    iamRoleStatements:
      - Effect: Allow
        Action:
          - batch:SubmitJob
        Resource: "arn:aws:batch:*:*:*"
    
        2
  •  3
  •   Kush Vyas    7 年前

    您可以创建一个策略,如 AWS Batch Managed Policy ,

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "batch:*",
                    "cloudwatch:GetMetricStatistics",
                    "ec2:DescribeSubnets",
                    "ec2:DescribeSecurityGroups",
                    "ec2:DescribeKeyPairs",
                    "ecs:DescribeClusters",
                    "ecs:Describe*",
                    "ecs:List*",
                    "logs:Describe*",
                    "logs:Get*",
                    "logs:TestMetricFilter",
                    "logs:FilterLogEvents",
                    "iam:ListInstanceProfiles",
                    "iam:ListRoles"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": ["iam:PassRole"],
                "Resource": [
                    "arn:aws:iam::*:role/AWSBatchServiceRole",
                    "arn:aws:iam::*:role/ecsInstanceRole",
                    "arn:aws:iam::*:role/iaws-ec2-spot-fleet-role",
                    "arn:aws:iam::*:role/aws-ec2-spot-fleet-role",
                    "arn:aws:iam::*:role/AWSBatchJobRole*"
                ]
            }
        ]
    }
    

    将策略附加到lambda并重试,请参阅 AWS Documentation