Проблема переопределения среды в AWS Пакетное задание - PullRequest
0 голосов
/ 04 марта 2020

У меня есть определение задания, которое я могу запустить и запустить, но не могу установить переменную среды, которая мне нужна. Я использую Boto3, и ядро ​​моего кода выглядит так:

job_def_arn = "arn: aws: партия: us-east-1: XXXX: определение задания / mytask: 2"

env_dict = {"FOO": "Bar", "BUCKET_NAME": "mybucket-bucket"}
env = [{"name": k, "value": v} for k, v in env_dict.items()]

node_overrides = {
    "nodePropertyOverrides": [
        {"targetNodes": "0:",
         "containerOverrides": {"environment": env}}]}

print("***", node_overrides)

resp = batch.submit_job(jobName="foobarjobname",
                        jobQueue="my_job_queue",
                        jobDefinition=job_def_arn,
                        nodeOverrides=node_overrides)

Вывод:

*** {'nodePropertyOverrides': [{'targetNodes': '0:', 'containerOverrides': {'environment': [{'name': 'FOO', 'value': 'Bar'}, {'name': 'BUCKET_NAME', 'value': 'mybucket-bucket'}]}}]}

И задание запускается, но мой код не выполняется, потому что он не получает ожидаемые переменные среды. Я добавил код, чтобы распечатать os.environ, прежде чем он попытается его использовать. Когда я проверяю журналы, становится ясно, что в среде есть старые предопределенные значения env, изначально установленные в задании, а не те, которые я устанавливаю в своем коде.

Кто-нибудь видит, что я делаю неправильно? ? Любые идеи о том, как дополнительно диагностировать это?

Заранее спасибо.

Хулио

Обновление

Разобрался. Поспешил с выводами при просмотре документации и подумал, что вы задали среду, указав ее в nodePropertyOverrrides. Вы фактически делаете это, указывая containerOverrides.

 env = [{"name": k, "value": v} for k, v in env_dict.items()]
    container_overrides = {"environment": env}

    resp = batch.submit_job(jobName="foobarjobname",
                            jobQueue="my_job_queue",
                            jobDefinition=job_def_arn,
                            containerOverrides=container_overrides)
...