Как передать аргументы скрипта в 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>"}'