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





Смешивая этот пример определения должностей, я добился этого с помощью 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>"}'
Обратите внимание, что очень важно использовать форму EXEC ENTRYPOINT ENTRYPOINT ["/usr/local/bin/fetch_and_run.sh"], а не форму оболочки. Форма оболочки игнорирует аргументы командной строки
Эпический ответ, во-первых, я нашел рабочее решение, точный синтаксис в документах AWS CLI не работает