如何将脚本参数传递给AWS Batch并运行

时间:2018-10-11 19:23:35

标签: amazon-web-services arguments aws-batch

我正在关注this tutorial,以在AWS批处理中运行一个简单的获取并运行示例。但是,我无法将参数传递给通过此示例获取的脚本。

基本示例将执行以下操作:

export BATCH_FILE_TYPE="script"

export BATCH_FILE_S3_URL="s3://my-bucket/my-script"

fetch_and_run.sh script-from-s3 [ <script arguments> ]

其中仅在以下位置提及脚本参数:

  

这表明它支持BATCH_FILE_TYPE的两个值,即“ script”或“ zip”。设置“脚本”时,除了将任何其他参数传递给脚本之外,它还会导致fetch_and_run.sh下载单个文件然后执行该文件。

我尝试通过--parameters--container-overrides参数(在后者的command键下)通过AWS CLI传递它们,但是它们不是从脚本中接收的。

我不想每次运行都修改我的Dockerfile ENTRYPOINTfetch_and_run.sh脚本,但是我不知道如何以不同的方式实现。

1 个答案:

答案 0 :(得分:4)

混合these example of job definitions是通过aws batch通过以下方式实现的:

aws batch submit-job --job-name <job_name> --job-definition <job_def_name> \
  --job-queue <queue_name> \
  --container-overrides '{
    "command": ["<script-from-s3>", "Ref::param1", "Ref::param2"], \
    "environment": [ \
      {"name": "BATCH_FILE_S3_URL", "value": "<script-from-s3>"}, \
      {"name": "BATCH_FILE_TYPE", "value": "script"}]}' \
  --parameters '{"param1": "<param1>", "param2": "<param2>"}'