Как передать аргументы скрипта в AWS Batch fetch-and-run

Я следую этому руководству, чтобы запустить простой пример извлечения и запуска в пакете 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". Когда вы устанавливаете "script", это приводит к тому, что fetch_and_run.sh загружает один файл и затем выполняет его, в дополнение к передаче каких-либо дополнительных аргументов скрипту.

Я пытался передать их с помощью AWS CLI через --parameters а также --container-overrides параметры (в последнем под command ключ), однако они не получены из сценария.

Я не хотел бы изменять ни мой Dockerfile ENTRYPOINT для каждого прогона или fetch_and_run.sh сценарий, но я не могу понять, как добиться этого по-другому.

1 ответ

Решение

Смешивая эти примеры определений работы, я достиг этого с 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>"}'
Другие вопросы по тегам