【问题标题】:AWS BATCH - SubmitJob operation: Job Queue is attached to Compute Environment that can not run Jobs with capability EC2AWS BATCH - SubmitJob 操作:作业队列附加到无法运行具有 EC2 功能的作业的计算环境
【发布时间】:2020-12-17 01:35:17
【问题描述】:

我正在尝试使用 Fargate 类型部署 AWS Batch,但是当我尝试向该批次提交作业时出现以下错误

调用 SubmitJob 操作时发生错误 (ClientException):作业队列附加到无法运行具有 EC2 能力的作业的计算环境


这是我用于使用无服务器框架创建资源的配置

resources:
  Resources:
    SlsComputeEnv:
        Type: AWS::Batch::ComputeEnvironment
        Properties:
          Type: MANAGED
          ServiceRole: !GetAtt BatchServiceRole.Arn
          ComputeEnvironmentName: ${self:custom.batch.compute_env}
          ComputeResources:
            MaxvCpus: 32
            SecurityGroupIds: 
              - security
            Subnets:
              - subnet
            Type: FARGATE
          State: ENABLED
      SlsJobQueue:
        Type: AWS::Batch::JobQueue
        Properties:
          JobQueueName: ${self:custom.batch.job_queue}
          ComputeEnvironmentOrder:
            - Order: 1
              ComputeEnvironment: !Ref SlsComputeEnv
          State: ENABLED
          Priority: 1
      SlsJobDefinition:
        Type: AWS::Batch::JobDefinition
        Properties:
          Type: container
          JobDefinitionName: ${self:custom.batch.job_definition}
          ContainerProperties:
            ExecutionRoleArn: !GetAtt FargateExecutionRole.Arn
            ResourceRequirements:
              - Type: MEMORY
                Value: 8
              - Type: VCPU
                Value: 4
            Image: ecr-path

提交作业的python代码

import boto3
client = boto3.client("batch")
client.submit_job(
        jobName=f"test-fargate-dev",
        jobQueue=BATCH_JOB_QUEUE_ARN,
        jobDefinition=BATCH_JOB_DEFINITION,
        containerOverrides={
            "command": ["python3", "script.py"],
            "environment": [
                {"name": "AWS_DEFAULT_REGION", "value": "us-east-1"},
                {"name": "stage", "value": "dev"},
            ],
        },
    )

【问题讨论】:

    标签: boto3 serverless-framework aws-fargate aws-batch


    【解决方案1】:

    您需要在 platformCapabilities 中指定您的作业是 Fargate 作业(使用 Fargate 版本 - 我推荐 1.4)。请参阅https://docs.aws.amazon.com/batch/latest/userguide/fargate.html 中的职位定义部分

    【讨论】:

      【解决方案2】:

      发布可能尚未反映在 CFN 资源规范中。他们应该很快(-ish)。以下是已经通过 CFN 批量使用 Fargate 的人的笔记:https://github.com/pplu/cfn-fargate-batch

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-20
        • 1970-01-01
        • 2019-07-20
        • 2020-09-17
        • 2015-12-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多