无法创建Fargate类型的AWS Batch作业定义求助
创建AWS Fargate类型的Batch作业定义(Ansible实现)
要把现有Ansible代码改成创建Fargate类型的Batch作业定义,需要针对Fargate的特性做几个关键调整,核心是在原有container类型基础上添加Fargate专属配置:
修改后的完整代码
- name: 创建Fargate类型的Batch作业定义 batch_job_definition: job_definition_name: My Fargate Batch Job Definition state: present type: container platform_capabilities: - FARGATE parameters: Param1: Val1 Param2: Val2 image: <Docker镜像地址> vcpus: 0.5 # Fargate允许的vCPU规格:0.25/0.5/1/2/4/8 memory: 1024 # 对应0.5vCPU的内存范围是512-2048MB command: - python - run_my_script.py - arg1 job_role_arn: <作业角色ARN> execution_role_arn: <执行角色ARN> # Fargate必须指定,用于拉取镜像、访问AWS服务 network_configuration: assign_public_ip: ENABLED # 根据需求选择是否分配公网IP subnets: - <子网ID1> - <子网ID2> security_groups: - <安全组ID> attempts: 3 register: job_definition_create_result
关键修改说明
- 添加
platform_capabilities: [FARGATE]:这是标记作业定义为Fargate类型的核心参数,虽然type仍为container,但该参数会指示AWS使用Fargate调度器。 - 调整
vcpus和memory:Fargate有固定的CPU/内存组合限制,必须使用官方允许的规格(例如0.25vCPU对应512-1024MB内存,0.5vCPU对应512-2048MB等),不可随意设置。 - 新增
execution_role_arn:Fargate需要此角色完成镜像拉取、日志推送等操作,必须指定具备对应权限的IAM角色。 - 添加
network_configuration:Fargate运行在VPC网络环境中,必须指定子网和安全组,同时可根据需求选择是否分配公网IP(需访问公网拉取镜像时建议开启)。
内容的提问来源于stack exchange,提问作者Vinod Shunmugavel
相关产品推荐
相关产品推荐

