如何将脚本参数传递给 AWS Batch fetch-and-运行

How to pass script arguments to AWS Batch fetch-and-run

我正在关注 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> ]

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

This shows that it supports two values for BATCH_FILE_TYPE, either “script” or “zip”. When you set “script”, it causes fetch_and_run.sh to download a single file and then execute it, in addition to passing in any further arguments to the script.

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

我不想为每个 运行 或 fetch_and_run.sh 脚本修改我的 Dockerfile ENTRYPOINT,但我不明白如何以不同的方式实现这一点。

混合 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>"}'