如何在 AWS Batch 作业定义 json 中指定输入和输出卷 S3 路径?

问题描述 投票:0回答:1

我正在尝试使用 EC2 或 Fargate 后端来调整运行 AWS Batch 作业。以下示例适用于 EC2 实例 AFAIK。我已经调整了我的 docker 容器,以便能够分别安装输入和输出目录。当我在本地运行 docker 容器时,我运行以下命令:

# Directories
LOCAL_WORKING_DIRECTORY=$(pwd)
LOCAL_OUTPUT_PARENT_DIRECTORY=../
LOCAL_OUTPUT_PARENT_DIRECTORY=$(realpath -m ${LOCAL_OUTPUT_PARENT_DIRECTORY})

CONTAINER_INPUT_DIRECTORY=/volumes/input/
CONTAINER_OUTPUT_DIRECTORY=/volumes/output/

# Parameters
ID=S1
R1=Fastq/${ID}_1.fastq.gz
R2=Fastq/${ID}_2.fastq.gz
NAME=VEBA-preprocess__${ID}
RELATIVE_OUTPUT_DIRECTORY=veba_output/preprocess/

# Command
CMD="preprocess.py -1 ${CONTAINER_INPUT_DIRECTORY}/${R1} -2 ${CONTAINER_INPUT_DIRECTORY}/${R2} -n ${ID} -o ${CONTAINER_OUTPUT_DIRECTORY}/${RELATIVE_OUTPUT_DIRECTORY}"

# Docker
DOCKER_IMAGE="jolespin/veba_preprocess:1.1.2"
docker run \
    --name ${NAME} \
    --rm \
    --volume ${LOCAL_WORKING_DIRECTORY}:${CONTAINER_INPUT_DIRECTORY} \
    --volume ${LOCAL_OUTPUT_PARENT_DIRECTORY}:${CONTAINER_OUTPUT_DIRECTORY} \
    ${DOCKER_IMAGE} \
    -c "${CMD}"

我无法弄清楚如何使用创建 AWS Batch 定义 json。

我的输入文件路径目录 S3 URI 是

s3://path/to/input/
,其中将包含
35_R1.fq.gz
35_R2.fq.gz

我希望我的输出位于以下 S3 目录中:

s3://path/to/output/

如何在 AWS Batch 作业定义 json 中指定输入和输出卷 S3 路径?

{
  "jobDefinitionName": "preprocess__35",
  "type": "container",
  "containerProperties": {
    "image": "jolespin/veba_preprocess:1.1.2",
    "vcpus": 4,
    "memory": 16000,
    "command": [
      "preprocess.py",
      "-1",
      "/volumes/input/35_R1.fq.gz",
      "-2",
      "/volumes/input/35_R2.fq.gz",
      "-n",
      "35",
      "-o",
      "/volumes/output/veba_output/preprocess",
      "-p",
      "4"
    ],
    "mountPoints": [
      {

      }
    ],
    "volumes": [
    
      
    ]
  }
}
amazon-web-services docker amazon-s3 containers aws-batch
1个回答
0
投票

您有机会使用 dockers 入口点运行 mount-s3 吗?应该在启动时挂载 s3。

© www.soinside.com 2019 - 2024. All rights reserved.