Как передать аргументы скрипта в AWS Batch fetch-and-run - PullRequest
0 голосов
/ 11 октября 2018

Я следую этому руководству , чтобы запустить простой пример выборки и запуска в пакете 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 Ответ

0 голосов
/ 11 октября 2018

Микширование эти примеры определений работы Я достиг этого с 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>"}'
...