Spec-Zone.ru › AWS CLI v2

[ aws . batch ]

register-job-definition

Описание

Регистрирует определение задания Batch.

См. также: Документацию API AWS

Синтаксис

  register-job-definition
--job-definition-name <value>
--type <value>
[--parameters <value>]
[--scheduling-priority <value>]
[--container-properties <value>]
[--node-properties <value>]
[--retry-strategy <value>]
[--propagate-tags | --no-propagate-tags]
[--timeout <value>]
[--tags <value>]
[--platform-capabilities <value>]
[--eks-properties <value>]
[--ecs-properties <value>]
[--consumable-resource-properties <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--job-definition-name (строка)

Имя определяемого задания. Оно может содержать до 128 символов. Может включать прописные и строчные буквы, цифры, дефисы (-) и символы подчеркивания (_).

--type (строка)

Тип определения задания. Для получения дополнительной информации о многоузловых параллельных заданиях, см. Создание определения многоузлового параллельного задания в Руководстве пользователя Batch.

  • Если значение равно container, то требуется одно из следующих значений: containerProperties, ecsProperties или eksProperties.
  • Если значение равно multinode, то требуется nodeProperties.

Примечание

Если задание выполняется на ресурсах Fargate, тогда multinode не поддерживается.

Возможные значения:

  • container
  • multinode

--parameters (словарь)

Предварительно заданные значения параметров для подстановки в определении задания. Параметры задаются как пары ключ-значение. Параметры в запросе SubmitJob переопределяют любые соответствующие значения параметров по умолчанию из определения задания.

ключ -> (строка)

значение -> (строка)

Краткая форма синтаксиса:

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "string"
  ...}

--scheduling-priority (целое число)

Приоритет планирования заданий, отправленных с этим определением задания. Это влияет только на задания в очередях заданий с политикой справедливого распределения. Задания с более высоким приоритетом планирования выполняются раньше заданий с более низким приоритетом.

Минимальное поддерживаемое значение равно 0, максимальное — 9999.

--container-properties (структура)

Объект со свойствами, специфичными для контейнерных заданий на основе одного узла Amazon ECS. Если параметр type определения задания имеет значение container, то необходимо указать либо containerProperties, либо nodeProperties. Этот параметр не должен указываться для определений заданий на основе Amazon EKS.

Примечание

Если задание выполняется на ресурсах Fargate, то не следует указывать nodeProperties; используйте только containerProperties.

image -> (строка)

Обязательный параметр. Изображение, используемое для запуска контейнера. Эта строка передается напрямую в демона Docker. Изображения из реестра Docker Hub доступны по умолчанию. Другие репозитории указываются с помощью `` repository-url /image :tag ``. Длина может достигать 255 символов. Она может содержать заглавные и строчные буквы, цифры, дефисы (-), подчеркивания (_), двоеточия (:), точки (.), слэши (/), и диезы (#). Этот параметр соответствует параметру Image в разделе «Создание контейнера» в Docker Remote API и параметру IMAGE в команде docker run.

Примечание

Архитектура Docker-изображения должна соответствовать архитектуре процессора вычислительных ресурсов, на которых они планируются. Например, Docker-изображения на базе ARM могут работать только на вычислительных ресурсах на базе ARM.
  • Изображения в общедоступных репозиториях Amazon ECR используют полные обозначения в формате registry/repository[:tag] или registry/repository[@digest]. Например, ``public.ecr.aws/registry_alias /my-web-app :latest ``.
  • Изображения в репозиториях Amazon ECR используют полный URI реестра и репозитория (например, 123456789012.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).
  • Изображения в официальных репозиториях Docker Hub используют одно имя (например, ubuntu или mongo).
  • Изображения в других репозиториях Docker Hub квалифицируются именем организации (например, amazon/amazon-ecs-agent).
  • Изображения в других онлайн-репозиториях дополнительно квалифицируются доменным именем (например, quay.io/assemblyline/ubuntu).

vcpus -> (целое число)

Этот параметр устарел, используйте resourceRequirements для указания требований к vCPU для определения задания. Он не поддерживается для заданий, выполняемых на ресурсах Fargate. Для заданий, выполняемых на ресурсах Amazon EC2, он указывает количество vCPU, зарезервированных для задания.

Каждая vCPU эквивалентна 1 024 CPU-долям. Этот параметр соответствует параметру CpuShares в разделе «Создание контейнера» Docker Remote API и параметру --cpu-shares команды docker run. Количество vCPU должно быть указано, но может быть указано в нескольких местах. Необходимо указать его как минимум для каждого узла.

memory -> (целое число)

Этот параметр устарел, используйте resourceRequirements для указания требований к памяти для определения задания. Он не поддерживается для заданий, выполняемых на ресурсах Fargate. Для заданий, выполняемых на ресурсах Amazon EC2, он указывает жёсткое ограничение по памяти (в МБ) для контейнера. Если контейнер пытается превысить указанное количество, он завершается. Для задания с использованием этого параметра необходимо указать как минимум 4 МБ памяти. Жёсткое ограничение по памяти можно указать в нескольких местах. Оно должно быть указано для каждого узла как минимум один раз.

command -> (список)

Команда, передаваемая контейнеру. Этот параметр соответствует параметру Cmd в разделе «Создание контейнера» Docker Remote API и параметру COMMAND в команде docker run. Дополнительную информацию см. на https://docs.docker.com/engine/reference/builder/#cmd.

(строка)

jobRoleArn -> (строка)

Идентификатор Amazon Resource Name (ARN) роли IAM, которую контейнер может принять для разрешений Amazon Web Services. Дополнительную информацию см. в разделе «Роли IAM для задач» в руководстве разработчика Amazon Elastic Container Service.

executionRoleArn -> (строка)

Идентификатор Amazon Resource Name (ARN) роли выполнения, которую Batch может принять. Для заданий, выполняемых на ресурсах Fargate, необходимо предоставить роль выполнения. Дополнительную информацию см. в разделе «Роль IAM выполнения Batch» в руководстве пользователя Batch.

volumes -> (список)

Список томов данных, используемых в задании.

(структура)

Том данных, используемый в свойствах контейнера задания.

host -> (структура)

Содержимое параметра host определяет, сохраняется ли ваш том данных на экземпляре хост-контейнера и где он хранится. Если параметр host пустой, то демон Docker присваивает путь хоста для вашего тома данных. Однако данные не гарантированно сохранятся после остановки контейнеров, связанных с ним.

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate, и его не следует предоставлять.

sourcePath -> (строка)

Путь на экземпляре хост-контейнера, который предоставляется контейнеру. Если этот параметр пустой, то демон Docker присвоил вам путь хоста. Если этот параметр содержит расположение файла, то том данных сохраняется в указанном расположении на экземпляре хост-контейнера до тех пор, пока вы его не удалите вручную. Если местоположение исходного пути не существует на экземпляре хост-контейнера, демон Docker его создает. Если местоположение существует, содержимое папки исходного пути экспортируется.

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate. Не предоставляйте его для таких заданий.

name -> (строка)

Имя тома. Оно может содержать до 255 символов. Оно может содержать заглавные и строчные буквы, цифры, дефисы (-) и подчеркивания (_). Это имя используется в параметре sourceVolume определения контейнера mountPoints.

efsVolumeConfiguration -> (структура)

Этот параметр указывается, когда вы используете файловую систему Amazon Elastic File System для хранения заданий. Задания, выполняемые на ресурсах Fargate, должны указывать platformVersion объёмом как минимум 1.4.0.

fileSystemId -> (строка)

Идентификатор файловой системы Amazon EFS.

rootDirectory -> (строка)

Директория внутри файловой системы Amazon EFS, которая будет смонтирована как корневая директория внутри хоста. Если этот параметр опущен, используется корень тома Amazon EFS. Указание / имеет тот же эффект, что и опускание этого параметра. Максимальная длина составляет 4 096 символов.

Предупреждение

Если в authorizationConfig указан EFS-точку доступа, параметр rootDirectory должен быть опущен или установлен в /, что обеспечивает применение пути, установленного в Amazon EFS-точке доступа.

transitEncryption -> (строка)

Определяет, следует ли включить шифрование данных Amazon EFS при передаче между хостом Amazon ECS и сервером Amazon EFS. Шифрование при передаче необходимо включить, если используется авторизация Amazon EFS IAM. Если этот параметр опущен, используется значение по умолчанию DISABLED. Дополнительную информацию см. в разделе «Шифрование данных при передаче» в руководстве пользователя Amazon Elastic File System.

transitEncryptionPort -> (целое число)

Порт для использования при передаче зашифрованных данных между хостом Amazon ECS и сервером Amazon EFS. Если вы не указываете порт шифрования при передаче, используется стратегия выбора порта, используемая модулем монтирования Amazon EFS. Значение должно быть от 0 до 65 535. Дополнительную информацию см. в разделе «Модуль монтирования EFS» в руководстве пользователя Amazon Elastic File System.

authorizationConfig -> (структура)

Подробности конфигурации авторизации для файловой системы Amazon EFS.

accessPointId -> (строка)

Идентификатор точки доступа Amazon EFS. Если указана точка доступа, значение rootDirectory в EFSVolumeConfiguration должно быть опущено или установлено в /, что обеспечивает применение пути, установленного в точке доступа EFS. Если используется точка доступа, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Дополнительную информацию см. в разделе «Работа с точками доступа Amazon EFS» в руководстве пользователя Amazon Elastic File System.

iam -> (строка)

Указывает, использовать ли роль IAM задания Batch, определенную в определении задания, при монтировании файловой системы Amazon EFS. Если включено, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию DISABLED. Дополнительную информацию см. в разделе «Использование точек доступа Amazon EFS» в руководстве пользователя Batch. Авторизация IAM EFS требует, чтобы TransitEncryption был ENABLED и был указан JobRoleArn.

environment -> (список)

Переменные среды, передаваемые контейнеру. Этот параметр соответствует параметру Env в разделе «Создание контейнера» в Docker Remote API и параметру --env команды docker run.

Предупреждение

Не рекомендуется использовать текстовые переменные среды для конфиденциальной информации, такой как данные учетных данных.

Примечание

Переменные среды не могут начинаться с «AWS_BATCH». Эта схема именования зарезервирована для переменных, которые устанавливает Batch.

(структура)

Объект пары «ключ-значение».

name -> (строка)

Имя пары «ключ-значение». Для переменных среды это имя переменной среды.

value -> (строка)

Значение пары «ключ-значение». Для переменных среды это значение переменной среды.

mountPoints -> (список)

Точки монтирования томов данных в вашем контейнере. Этот параметр соответствует параметру Volumes в разделе «Создание контейнера» в Docker Remote API и параметру --volume команды docker run.

(структура)

Подробности для точки монтирования тома Docker, используемой в свойствах контейнера задания. Этот параметр соответствует параметру Volumes в разделе «Создание контейнера» в *Docker Remote API* и параметру --volume команды docker run.

containerPath -> (строка)

Путь в контейнере, где смонтирован том хоста.

readOnly -> (булево)

Если это значение true, то контейнер имеет доступ только для чтения к тому. В противном случае, контейнер может записывать в том. Значение по умолчанию — false.

sourceVolume -> (строка)

Имя монтируемого тома.

readonlyRootFilesystem -> (булево)

Когда этот параметр равен true, контейнеру предоставляется доступ только для чтения к его корневой файловой системе. Этот параметр соответствует параметру ReadonlyRootfs в разделе «Создание контейнера» в Docker Remote API и параметру --read-only команды docker run.

privileged -> (булево)

Когда этот параметр имеет значение true, контейнеру предоставляются повышенные разрешения в экземпляре хост-контейнера (аналогично пользователю root). Этот параметр сопоставляется с Privileged в разделе Создание контейнера в Docker Remote API и с опцией --privileged для docker run . Значение по умолчанию — false.

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate, и его не следует указывать или указывать как false.

ulimits -> (список)

Список ulimits для установки в контейнере. Этот параметр сопоставляется с Ulimits в разделе Create a container Docker Remote API и с опцией --ulimit для docker run .

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate, и его не следует указывать.

(структура)

Параметры ulimit для передачи в контейнер. Дополнительные сведения см. в разделе Ulimit .

Примечание

Этот объект не применим к заданиям, выполняемым на ресурсах Fargate.

hardLimit -> (integer)

Жесткий лимит для типа ulimit .

name -> (string)

type ulimit . Допустимые значения: core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack .

softLimit -> (integer)

Мягкий лимит для типа ulimit .

user -> (string)

Имя пользователя, используемое внутри контейнера. Этот параметр сопоставляется с User в разделе Create a container Docker Remote API и с опцией --user для docker run .

instanceType -> (string)

Тип экземпляра для использования для параллельного многоузлового задания. Все группы узлов в многоузловом параллельном задании должны использовать один и тот же тип экземпляра.

Примечание

Этот параметр не применим к одноузловым контейнерным заданиям или заданиям, выполняемым на ресурсах Fargate, и его не следует указывать.

resourceRequirements -> (список)

Тип и объем ресурсов, которые необходимо назначить контейнеру. Поддерживаемые ресурсы включают GPU, MEMORY и VCPU .

(структура)

Тип и объем ресурса, который необходимо назначить контейнеру. Поддерживаемые ресурсы включают GPU, MEMORY и VCPU .

value -> (string)

Количество указанного ресурса, которое необходимо зарезервировать для контейнера. Значения зависят от указанного type .

type=”GPU”

Количество физических графических процессоров, которые необходимо зарезервировать для контейнера. Убедитесь, что количество графических процессоров, зарезервированных для всех контейнеров в задании, не превышает количество доступных графических процессоров на вычислительном ресурсе, на котором запущено задание.

Примечание

Графические процессоры недоступны для заданий, выполняемых на ресурсах Fargate.

type=”MEMORY”

Жесткий лимит памяти (в МиБ), предоставляемый контейнеру. Этот параметр поддерживается для заданий, выполняемых на ресурсах Amazon EC2. Если контейнер пытается превысить указанную память, контейнер завершает работу. Этот параметр сопоставляется с Memory в разделе Create a container Docker Remote API и с опцией --memory для docker run . Необходимо указать не менее 4 МиБ памяти для задания. Это необходимо, но может быть указано в нескольких местах для многоузловых параллельных (MNP) заданий. Это необходимо указать для каждого узла хотя бы один раз. Этот параметр сопоставляется с Memory в разделе Create a container Docker Remote API и с опцией --memory для docker run .

Примечание

Если вы пытаетесь максимально эффективно использовать ресурсы, предоставляя своим заданиям как можно больше памяти для определенного типа экземпляра, см. раздел Управление памятью в руководстве Batch User Guide .

Для заданий, выполняемых на ресурсах Fargate, value — это жесткий лимит (в МиБ), который должен соответствовать одному из поддерживаемых значений, а значения VCPU должны соответствовать одному из значений, поддерживаемых для этого значения памяти.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 или 0.5

value = 2048

VCPU = 0.25, 0.5 или 1

value = 3072

VCPU = 0.5 или 1

value = 4096

VCPU = 0.5, 1 или 2

value = 5120, 6144 или 7168

VCPU = 1 или 2

value = 8192

VCPU = 1, 2 или 4

value = 9216, 10240, 11264, 12288, 13312, 14336 или 15360

VCPU = 2 или 4

value = 16384

VCPU = 2, 4 или 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696 или 30720

VCPU = 4

value = 20480, 24576 или 28672

VCPU = 4 или 8

value = 36864, 45056, 53248 или 61440

VCPU = 8

value = 32768, 40960, 49152 или 57344

VCPU = 8 или 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

VCPU = 16

type=”VCPU”

Количество виртуальных ЦП, зарезервированных для контейнера. Этот параметр сопоставляется с CpuShares в разделе Create a container Docker Remote API и с опцией --cpu-shares для docker run . Каждый виртуальный ЦП эквивалентен 1024 долям ЦП. Для ресурсов Amazon EC2 необходимо указать не менее одного виртуального ЦП. Это необходимо, но может быть указано в нескольких местах; его необходимо указать для каждого узла хотя бы один раз.

По умолчанию для квоты ресурсов виртуального ЦП по требованию Fargate установлено значение 6 виртуальных ЦП. Дополнительные сведения о квотах Fargate см. в разделе Квоты Fargate в Amazon Web Services General Reference .

Для заданий, выполняемых на ресурсах Fargate, value должен соответствовать одному из поддерживаемых значений, а значения MEMORY должны соответствовать одному из значений, поддерживаемых для этого значения VCPU . Поддерживаются значения 0,25, 0,5, 1, 2, 4, 8 и 16

value = 0.25

MEMORY = 512, 1024 или 2048

value = 0.5

MEMORY = 1024, 2048, 3072 или 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168 или 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360 или 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696 или 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344 или 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

type -> (string)

Тип ресурса, который необходимо назначить контейнеру. Поддерживаемые ресурсы включают GPU, MEMORY и VCPU .

linuxParameters -> (структура)

Модификации, специфичные для Linux, применяемые к контейнеру, такие как сведения о сопоставлениях устройств.

devices -> (список)

Любое из устройств хоста, которые необходимо экспонировать контейнеру. Этот параметр соответствует параметру Devices в разделе «Создание контейнера» в документации Docker Remote API и параметру --device опции docker run.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

(структура)

Объект, представляющий устройство хоста контейнера.

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate, и его не следует указывать.

hostPath -> (строка)

Путь к устройству на экземпляре хост-контейнера.

containerPath -> (строка)

Путь внутри контейнера, используемый для экспонирования устройства хоста. По умолчанию используется значение hostPath.

permissions -> (список)

Явные разрешения, предоставляемые контейнеру для устройства. По умолчанию контейнер имеет разрешения read, write и mknod для устройства.

(строка)

initProcessEnabled -> (булево)

Если значение true, запускается процесс init внутри контейнера, который перенаправляет сигналы и собирает процессы. Этот параметр соответствует опции --init к docker run. Этот параметр требует версии Docker Remote API 1.25 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

sharedMemorySize -> (целое число)

Значение размера (в МБ) тома /dev/shm. Этот параметр соответствует опции --shm-size к docker run.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

tmpfs -> (список)

Путь контейнера, параметры монтирования и размер (в МБ) монтирования tmpfs. Этот параметр соответствует опции --tmpfs к docker run.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не предоставляйте этот параметр для данного типа ресурсов.

(структура)

Путь контейнера, параметры монтирования и размер монтирования tmpfs.

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate.

containerPath -> (строка)

Абсолютный путь файла в контейнере, где смонтирован том tmpfs.

size -> (целое число)

Размер (в МБ) тома tmpfs.

mountOptions -> (список)

Список параметров монтирования тома tmpfs.

Допустимые значения: “defaults “ | “ro “ | “rw “ | “suid “ | “nosuid “ | “dev “ | “nodev “ | “exec “ | “noexec “ | “sync “ | “async “ | “dirsync “ | “remount “ | “mand “ | “nomand “ | “atime “ | “noatime “ | “diratime “ | “nodiratime “ | “bind “ | “rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime “ | “norelatime “ | “strictatime “ | “nostrictatime “ | “mode “ | “uid “ | “gid “ | “nr_inodes “ | “nr_blocks “ | “mpol “

(строка)

maxSwap -> (целое число)

Общий объем памяти подкачки (в МБ), который может использовать контейнер. Этот параметр преобразуется в опцию --memory-swap к docker run, где значение представляет собой сумму памяти контейнера плюс значение maxSwap. Дополнительная информация доступна в документации Docker по ссылке ` --memory-swap details <https://docs.docker.com/config/containers/resource_constraints/#–memory-swap-details>`__.

Если значение maxSwap задано как 0, контейнер не использует подкачку. Допустимые значения — 0 или любое положительное целое число. Если параметр maxSwap опущен, контейнер не использует конфигурацию подкачки для экземпляра контейнера, на котором он выполняется. Значение maxSwap должно быть установлено для использования параметра swappiness.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

swappiness -> (целое число)

Этот параметр позволяет настроить поведение подкачки памяти контейнера. Значение swappiness, равное 0, предотвращает подкачку, если это не абсолютно необходимо. Значение swappiness, равное 100, приводит к агрессивному обмену страницами. Допустимые значения — целые числа от 0 до 100. Если параметр swappiness не указан, используется значение по умолчанию 60. Если значение не указано для maxSwap, этот параметр игнорируется. Если maxSwap установлено в 0, контейнер не использует подкачку. Этот параметр соответствует опции --memory-swappiness к docker run.

Рассмотрите следующие моменты при использовании конфигурации подкачки на уровне контейнера.

  • Для использования контейнерами необходимо включить и выделить область подкачки на экземпляре контейнера.

Примечание

По умолчанию в оптимизированных AMIs Amazon ECS не включена подкачка. Необходимо включить подкачку на экземпляре, чтобы использовать эту функцию. Дополнительная информация находится в разделе «Тома подкачки хранилища экземпляров» в руководстве пользователя Amazon EC2 для Linux-экземпляров или «Как выделить память для использования в качестве области подкачки в экземпляре Amazon EC2, используя файл подкачки?»
  • Параметры области подкачки поддерживаются только для определений задач, использующих ресурсы EC2.
  • Если параметры maxSwap и swappiness опущены из определения задачи, каждый контейнер имеет значение по умолчанию swappiness, равное 60. Кроме того, общее использование подкачки ограничено удвоенным объемом резервирования памяти контейнера.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

logConfiguration -> (структура)

Спецификация конфигурации логов для контейнера.

Этот параметр соответствует LogConfig в разделе «Создание контейнера» в Docker Remote API и параметру --log-driver в команде docker run. По умолчанию контейнеры используют тот же драйвер логов, что и демони Docker. Однако контейнер может использовать другой драйвер логов, чем демони Docker, указав драйвер логов в определении контейнера. Для использования другого драйвера логов для контейнера система логов должна быть должным образом настроена на экземпляре контейнера (или на другом сервере логов для удаленных вариантов логов). Более подробную информацию об опциях различных поддерживаемых драйверов логов см. в документации Docker в разделе Настройка драйверов логов.

Примечание

Batch в настоящее время поддерживает подмножество драйверов логов, доступных для демона Docker (показано в типе данных LogConfiguration).

Этот параметр требует версии Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

Примечание

Агент контейнера Amazon ECS, работающий на экземпляре контейнера, должен зарегистрировать доступные на этом экземпляре драйверы логов с переменной среды ECS_AVAILABLE_LOGGING_DRIVERS, прежде чем контейнеры на этом экземпляре смогут использовать эти параметры конфигурации логов. Дополнительную информацию см. в разделе Конфигурация агента контейнера Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.

logDriver -> (строка)

Драйвер логов для использования контейнером. Допустимые значения, перечисленные для этого параметра, являются драйверами логов, с которыми агент контейнера Amazon ECS может взаимодействовать по умолчанию.

Поддерживаемые драйверы логов: awslogs , fluentd , gelf , json-file , journald , logentries , syslog и splunk .

Примечание

Задачи, выполняемые на ресурсах Fargate, ограничены драйверами логов awslogs и splunk.

awsfirelens

Указывает драйвер логов firelens. Дополнительную информацию о настройке Firelens см. в разделе Отправка логов Amazon ECS в сервис Amazon Web Services или партнера Amazon Web Services в Руководстве разработчика Amazon Elastic Container Service.

awslogs

Указывает драйвер логов Amazon CloudWatch Logs. Дополнительную информацию см. в разделе Использование драйвера логов awslogs в Руководстве пользователя Batch и драйвере логов Amazon CloudWatch Logs в документации Docker.

fluentd

Указывает драйвер логов Fluentd. Дополнительную информацию, включая использование и параметры, см. в разделе Fluentd logging driver в документации Docker.

gelf

Указывает драйвер логов Graylog Extended Format (GELF). Дополнительную информацию, включая использование и параметры, см. в разделе Graylog Extended Format logging driver в документации Docker.

journald

Указывает драйвер логов journald. Дополнительную информацию, включая использование и параметры, см. в разделе Journald logging driver в документации Docker.

json-file

Указывает драйвер логов JSON-файл. Дополнительную информацию, включая использование и параметры, см. в разделе JSON File logging driver в документации Docker.

splunk

Указывает драйвер логов Splunk. Дополнительную информацию, включая использование и параметры, см. в разделе Splunk logging driver в документации Docker.

syslog

Указывает драйвер логов syslog. Дополнительную информацию, включая использование и параметры, см. в разделе Syslog logging driver в документации Docker.

Примечание

Если у вас есть пользовательский драйвер, который не указан выше и с которым вы хотите работать с агентом контейнера Amazon ECS, вы можете вилочить проект агента контейнера Amazon ECS, доступный на GitHub, и настроить его для работы с этим драйвером. Мы рекомендуем вам отправлять запросы на вытягивание для изменений, которые вы хотите включить. Однако Amazon Web Services в настоящее время не поддерживает запуск измененных копий этого программного обеспечения.

Этот параметр требует версии Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

options -> (карта)

Параметры конфигурации для отправки драйверу логов. Этот параметр требует версии Docker Remote API 1.19 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

ключ -> (строка)

значение -> (строка)

secretOptions -> (список)

Секреты для передачи в конфигурацию логов. Дополнительную информацию см. в разделе Указание конфиденциальных данных в Руководстве пользователя Batch.

(структура)

Объект, представляющий секрет, который необходимо предоставить контейнеру. Секреты могут быть предоставлены контейнеру следующим образом:

  • Для вставки конфиденциальных данных в ваши контейнеры в качестве переменных среды используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации логов контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в разделе Указание конфиденциальных данных в Руководстве пользователя Batch.

name -> (строка)

Имя секрета.

valueFrom -> (строка)

Секрет для предоставления контейнеру. Допустимые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в Amazon Web Services Systems Manager Parameter Store.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и задача, которую вы запускаете, то можно использовать либо полный Amazon Resource Name (ARN), либо имя параметра. Если параметр существует в другой области, то должен быть указан полный ARN.

secrets -> (список)

Секреты для контейнера. Дополнительную информацию см. в разделе Указание конфиденциальных данных в Руководстве пользователя Batch.

(структура)

Объект, представляющий секрет, который необходимо предоставить контейнеру. Секреты могут быть предоставлены контейнеру следующим образом:

  • Для вставки конфиденциальных данных в ваши контейнеры в качестве переменных среды используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации логов контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в разделе Указание конфиденциальных данных в Руководстве пользователя Batch.

name -> (строка)

Имя секрета.

valueFrom -> (строка)

Секрет для предоставления контейнеру. Допустимые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в Amazon Web Services Systems Manager Parameter Store.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и задача, которую вы запускаете, то можно использовать либо полный Amazon Resource Name (ARN), либо имя параметра. Если параметр существует в другой области, то должен быть указан полный ARN.

networkConfiguration -> (структура)

Конфигурация сети для задач, выполняемых на ресурсах Fargate. Задачи, выполняемые на ресурсах Amazon EC2, не должны указывать этот параметр.

assignPublicIp -> (строка)

Указывает, имеет ли задача общедоступный IP-адрес. Для задачи, выполняемой на ресурсах Fargate в частной подсети для отправки исходящего трафика в интернет (например, для получения изображений контейнеров), частная подсеть требует прикрепления шлюза NAT для маршрутизации запросов в интернет. Дополнительную информацию см. в разделе Сети задач Amazon ECS в Руководстве разработчика Amazon Elastic Container Service. Значение по умолчанию — «DISABLED».

fargatePlatformConfiguration -> (структура)

Конфигурация платформы для задач, выполняемых на ресурсах Fargate. Задачи, выполняемые на ресурсах Amazon EC2, не должны указывать этот параметр.

platformVersion -> (строка)

Версия платформы Fargate, на которой выполняются задачи. Версия платформы указывается только для задач, выполняемых на ресурсах Fargate. Если она не указана, используется версия платформы Fargate по умолчанию LATEST. Это использует последнюю одобренную версию платформы Fargate для вычислительных ресурсов. Дополнительную информацию см. в разделе Версии платформы Fargate в Руководстве разработчика Amazon Elastic Container Service.

enableExecuteCommand -> (логическое)

Определяет, включена ли функциональность выполнения команд для этой задачи. Если true, функциональность выполнения команд включена для всех контейнеров в задаче.

ephemeralStorage -> (структура)

Количество временного хранилища для выделения для задачи. Этот параметр используется для увеличения общего объёма временного хранилища, сверх значения по умолчанию, для задач, размещённых на Fargate.

sizeInGiB -> (целое число)

Общий объём временного хранилища в GiB для настройки задачи. Минимальное поддерживаемое значение — 21 GiB, максимальное — 200 GiB.

runtimePlatform -> (структура)

Объект, представляющий архитектуру вычислительной среды для задач Batch в Fargate.

operatingSystemFamily -> (строка)

Операционная система вычислительной среды. Допустимые значения: LINUX (по умолчанию), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE и WINDOWS_SERVER_2022_FULL.

Примечание

Следующие параметры нельзя задавать для контейнеров Windows: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem и efsVolumeConfiguration.

Примечание

Планировщик Batch проверяет вычислительные среды, подключенные к очереди задач, прежде чем зарегистрировать определение задачи в Fargate. В этом случае очередь задач — это место, куда подается задача. Если задача требует контейнера Windows, и первая вычислительная среда — LINUX, вычислительная среда пропускается, и проверяется следующая среда, пока не будет найдена среда, поддерживающая Windows.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров на базе Windows в Fargate. Очередь задач будет заблокирована, если задача Fargate ARM64 или Windows подается в очередь задач, содержащую только вычислительные среды Fargate Spot. Однако вы можете подключить как FARGATE, так и FARGATE_SPOT вычислительные среды к одной очереди задач.

cpuArchitecture -> (строка)

Архитектура vCPU. Значение по умолчанию — X86_64. Допустимые значения — X86_64 и ARM64.

Примечание

Для контейнеров Windows этот параметр должен быть установлен в X86_64.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров на базе Windows в Fargate. Очередь задач будет заблокирована, если задача Fargate ARM64 или Windows подается в очередь задач, содержащую только вычислительные среды Fargate Spot. Однако вы можете подключить как FARGATE, так и FARGATE_SPOT вычислительные среды к одной очереди задач.

repositoryCredentials -> (структура)

Учетные данные аутентификации частного репозитория для использования.

credentialsParameter -> (строка)

Идентификатор ресурса Amazon (ARN) секрета, содержащего учетные данные частного репозитория.

Синтаксис JSON:

{
  "image": "string",
  "vcpus": integer,
  "memory": integer,
  "command": ["string", ...],
  "jobRoleArn": "string",
  "executionRoleArn": "string",
  "volumes": [
    {
      "host": {
        "sourcePath": "string"
      },
      "name": "string",
      "efsVolumeConfiguration": {
        "fileSystemId": "string",
        "rootDirectory": "string",
        "transitEncryption": "ENABLED"|"DISABLED",
        "transitEncryptionPort": integer,
        "authorizationConfig": {
          "accessPointId": "string",
          "iam": "ENABLED"|"DISABLED"
        }
      }
    }
    ...
  ],
  "environment": [
    {
      "name": "string",
      "value": "string"
    }
    ...
  ],
  "mountPoints": [
    {
      "containerPath": "string",
      "readOnly": true|false,
      "sourceVolume": "string"
    }
    ...
  ],
  "readonlyRootFilesystem": true|false,
  "privileged": true|false,
  "ulimits": [
    {
      "hardLimit": integer,
      "name": "string",
      "softLimit": integer
    }
    ...
  ],
  "user": "string",
  "instanceType": "string",
  "resourceRequirements": [
    {
      "value": "string",
      "type": "GPU"|"VCPU"|"MEMORY"
    }
    ...
  ],
  "linuxParameters": {
    "devices": [
      {
        "hostPath": "string",
        "containerPath": "string",
        "permissions": ["READ"|"WRITE"|"MKNOD", ...]
      }
      ...
    ],
    "initProcessEnabled": true|false,
    "sharedMemorySize": integer,
    "tmpfs": [
      {
        "containerPath": "string",
        "size": integer,
        "mountOptions": ["string", ...]
      }
      ...
    ],
    "maxSwap": integer,
    "swappiness": integer
  },
  "logConfiguration": {
    "logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|"awsfirelens",
    "options": {"string": "string"
      ...},
    "secretOptions": [
      {
        "name": "string",
        "valueFrom": "string"
      }
      ...
    ]
  },
  "secrets": [
    {
      "name": "string",
      "valueFrom": "string"
    }
    ...
  ],
  "networkConfiguration": {
    "assignPublicIp": "ENABLED"|"DISABLED"
  },
  "fargatePlatformConfiguration": {
    "platformVersion": "string"
  },
  "enableExecuteCommand": true|false,
  "ephemeralStorage": {
    "sizeInGiB": integer
  },
  "runtimePlatform": {
    "operatingSystemFamily": "string",
    "cpuArchitecture": "string"
  },
  "repositoryCredentials": {
    "credentialsParameter": "string"
  }
}

--node-properties (структура)

Объект со свойствами, специфичными для задач параллельной обработки с несколькими узлами. Если вы указываете свойства узлов для задачи, она становится задачей параллельной обработки с несколькими узлами. Дополнительная информация находится в руководстве пользователя Batch (Multi-node Parallel Jobs).

Примечание

Если задача выполняется на ресурсах Fargate, то вы не должны указывать nodeProperties; используйте containerProperties вместо этого.

Примечание

Если задача выполняется на ресурсах Amazon EKS, то вы не должны указывать nodeProperties.

numNodes -> (целое число)

Количество узлов, связанных с задачей параллельной обработки с несколькими узлами.

mainNode -> (целое число)

Указывает индекс узла для основного узла задачи параллельной обработки с несколькими узлами. Это значение индекса узла должно быть меньше количества узлов.

nodeRangeProperties -> (список)

Список диапазонов узлов и их свойств, связанных с задачей параллельной обработки с несколькими узлами.

(структура)

Это объект, представляющий свойства диапазона узлов для задачи параллельной обработки с несколькими узлами.

targetNodes -> (строка)

Диапазон узлов с использованием значений индексов узлов. Диапазон 0:3 указывает узлы с индексами от 0 до 3. Если начальное значение диапазона опущено (:n), то используется 0 для начала диапазона. Если конечное значение диапазона опущено (n:), то используется наибольший возможный индекс узла для окончания диапазона. Суммарные диапазоны узлов должны охватывать все узлы (0:n). Можно вкладывать диапазоны узлов (например, 0:10 и 4:5). В этом случае свойства диапазона 4:5 перезаписывают свойства диапазона 0:10.

container -> (структура)

Подробные данные для диапазона узлов.

image -> (строка)

Обязательное поле. Изображение, используемое для запуска контейнера. Эта строка передаётся напрямую демону Docker. Изображения из реестра Docker Hub доступны по умолчанию. Другие репозитории указываются с помощью `` адрес-репозитория /изображение :метка ``. Длина может составлять 255 символов. Может содержать прописные и строчные буквы, цифры, дефисы (-), нижние подчеркивания (_), двоеточия (:), точки (.), слэши (/) и диезы (#). Этот параметр соответствует Image в разделе «Создание контейнера» в Docker Remote API и параметру IMAGE команды docker run.

Примечание

Архитектура Docker-изображения должна соответствовать архитектуре процессора вычислительных ресурсов, на которых они планируются. Например, Docker-изображения на основе ARM могут работать только на вычислительных ресурсах на основе ARM.
  • Изображения в общедоступных репозиториях Amazon ECR используют полные registry/repository[:tag] или registry/repository[@digest] соглашения об именовании. Например, ``public.ecr.aws/имя_регистра /мое_веб-приложение :последняя ``.
  • Изображения в репозиториях Amazon ECR используют полный URI реестра и репозитория (например, 123456789012.dkr.ecr.<region-name>.amazonaws.com/<repository-name>).
  • Изображения в официальных репозиториях на Docker Hub используют одно имя (например, ubuntu или mongo).
  • Изображения в других репозиториях на Docker Hub квалифицируются по имени организации (например, amazon/amazon-ecs-agent).
  • Изображения в других онлайн-репозиториях дополнительно квалифицируются по имени домена (например, quay.io/assemblyline/ubuntu).

vcpus -> (целое число)

Этот параметр устарел. Используйте resourceRequirements для указания требований к vCPU для определения задания. Он не поддерживается для заданий, выполняемых на ресурсах Fargate. Для заданий, выполняемых на ресурсах Amazon EC2, он определяет количество vCPU, резервируемых для задания.

Каждая vCPU эквивалентна 1024 долям процессора. Этот параметр соответствует CpuShares в разделе «Создание контейнера» в Docker Remote API и параметру --cpu-shares команды docker run. Количество vCPU должно быть указано, но может быть указано в нескольких местах. Вы должны указать его по меньшей мере один раз для каждого узла.

memory -> (целое число)

Этот параметр устарел. Используйте resourceRequirements для указания требований к памяти для определения задания. Он не поддерживается для заданий, выполняемых на ресурсах Fargate. Для заданий, выполняемых на ресурсах Amazon EC2, он указывает жёсткий лимит памяти (в МБ) для контейнера. Если контейнер пытается превысить заданное число, он завершается. Для задания с этим параметром необходимо указать по меньшей мере 4 МБ памяти. Жёсткий лимит памяти может быть указан в нескольких местах. Он должен быть указан для каждого узла хотя бы один раз.

command -> (список)

Команда, передаваемая контейнеру. Этот параметр соответствует Cmd в разделе «Создание контейнера» в Docker Remote API и параметру COMMAND команды docker run. Для получения дополнительной информации см. https://docs.docker.com/engine/reference/builder/#cmd.

(строка)

jobRoleArn -> (строка)

Amazon Resource Name (ARN) роли IAM, которую может принять контейнер для разрешений Amazon Web Services. Для получения дополнительной информации см. Роли IAM для задач в руководстве Amazon Elastic Container Service Developer Guide.

executionRoleArn -> (строка)

Amazon Resource Name (ARN) роли выполнения, которую может принять Batch. Для заданий, выполняемых на ресурсах Fargate, необходимо указать роль выполнения. Для получения дополнительной информации см. Роль IAM выполнения Batch в руководстве Batch User Guide.

volumes -> (список)

Список томов данных, используемых в задании.

(структура)

Том данных, используемый в свойствах контейнера задания.

host -> (структура)

Содержание параметра host определяет, сохраняется ли ваш том данных в экземпляре хост-контейнера и где он хранится. Если параметр host пустой, то демон Docker назначает путь хоста для вашего тома данных. Однако данные не гарантированно сохранятся после остановки контейнеров, связанных с ним.

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate, и его не следует предоставлять.

sourcePath -> (строка)

Путь на хост-экземпляре контейнера, который предоставляется контейнеру. Если этот параметр пустой, то демон Docker назначил путь хоста для вас. Если этот параметр содержит местоположение файла, то том данных сохраняется по указанному расположению на хост-экземпляре контейнера до тех пор, пока вы его не удалите вручную. Если расположение исходного пути не существует на хост-экземпляре контейнера, демон Docker его создаёт. Если расположение существует, содержимое папки исходного пути экспортируется.

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate. Не предоставляйте его для таких заданий.

name -> (строка)

Имя тома. Длина может составлять до 255 символов. Может содержать прописные и строчные буквы, цифры, дефисы (-) и нижние подчеркивания (_). Это имя используется в параметре sourceVolume определения контейнера mountPoints.

efsVolumeConfiguration -> (структура)

Этот параметр указывается при использовании файловой системы Amazon Elastic File System для хранения заданий. Задания, выполняемые на ресурсах Fargate, должны указать platformVersion объёмом по меньшей мере 1.4.0.

fileSystemId -> (строка)

Идентификатор файловой системы Amazon EFS, который необходимо использовать.

rootDirectory -> (строка)

Директория внутри файловой системы Amazon EFS, которая будет смонтирована в качестве корневой директории внутри хоста. Если этот параметр опущен, используется корень тома Amazon EFS. Указание / имеет тот же эффект, что и опускание этого параметра. Максимальная длина — 4096 символов.

Предупреждение

Если в authorizationConfig указан доступный EFS, то параметр rootDirectory должен либо быть опущен, либо установлен в значение /, что обеспечивает соблюдение пути, установленного в точке доступа Amazon EFS.

transitEncryption -> (строка)

Определяет, нужно ли включить шифрование данных Amazon EFS при передаче между хостом Amazon ECS и сервером Amazon EFS. Шифрование при передаче необходимо включить, если используется авторизация IAM Amazon EFS. Если этот параметр опущен, используется значение по умолчанию DISABLED. Для получения дополнительной информации см. Шифрование данных при передаче в руководстве Amazon Elastic File System User Guide.

transitEncryptionPort -> (целое число)

Порт, используемый при передаче зашифрованных данных между хостом Amazon ECS и сервером Amazon EFS. Если вы не указываете порт шифрования при передаче, используется стратегия выбора порта, используемая помощником монтирования Amazon EFS. Значение должно быть от 0 до 65535. Для получения дополнительной информации см. Помощник монтирования EFS в руководстве Amazon Elastic File System User Guide.

authorizationConfig -> (структура)

Подробные данные о конфигурации авторизации для файловой системы Amazon EFS.

accessPointId -> (строка)

Идентификатор точки доступа Amazon EFS, который необходимо использовать. Если указана точка доступа, значение rootDirectory, указанное в EFSVolumeConfiguration, должно быть либо опущено, либо установлено в /, что обеспечивает соблюдение пути, установленного в точке доступа EFS. Если используется точка доступа, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Для получения дополнительной информации см. Работа с точками доступа Amazon EFS в руководстве Amazon Elastic File System User Guide.

iam -> (строка)

Использовать ли роль IAM задания Batch, определённую в определении задания, при монтировании файловой системы Amazon EFS. При включении шифрование при передаче должно быть включено в EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию DISABLED. Для получения дополнительной информации см. Использование точек доступа Amazon EFS в руководстве Batch User Guide. Авторизация EFS IAM требует, чтобы TransitEncryption была ENABLED и что указана JobRoleArn.

environment -> (список)

Переменные среды, которые необходимо передать контейнеру. Этот параметр соответствует Env в разделе «Создание контейнера» в Docker Remote API и параметру --env команды docker run.

Предупреждение

Не рекомендуется использовать текстовые переменные среды для конфиденциальной информации, такой как данные учетных данных.

Примечание

Переменные среды не могут начинаться с «AWS_BATCH». Это соглашение об именовании зарезервировано для переменных, которые устанавливает Batch.

(структура)

Объект пары «ключ-значение».

name -> (строка)

Имя пары «ключ-значение». В случае переменных среды это имя переменной среды.

value -> (строка)

Значение пары «ключ-значение». В случае переменных среды это значение переменной среды.

mountPoints -> (список)

Точки монтирования томов данных в вашем контейнере. Этот параметр соответствует Volumes в разделе «Создание контейнера» в Docker Remote API и параметру --volume команды docker run.

(структура)

Подробная информация о точке монтирования Docker тома, используемого в свойствах контейнера задания. Этот параметр соответствует Volumes в разделе «Создание контейнера» в Docker Remote API и параметру --volume команды docker run.

containerPath -> (строка)

Путь в контейнере, где смонтирован хост-том.

readOnly -> (булево)

Если это значение true, контейнер имеет доступ в режиме только для чтения к тому. В противном случае контейнер может записывать в том. Значение по умолчанию — false.

sourceVolume -> (строка)

Имя тома для монтирования.

readonlyRootFilesystem -> (булево)

Когда этот параметр равен true, контейнеру предоставляется доступ только для чтения к его корневой файловой системе. Этот параметр соответствует ReadonlyRootfs в разделе «Создание контейнера» в Docker Remote API и параметру --read-only команды docker run.

privileged -> (булево)

Если этот параметр равен true, контейнеру предоставляются расширенные права на хост-экземпляре контейнера (аналогично пользователю root). Этот параметр соответствует Privileged в разделе «Создание контейнера» в Docker Remote API и параметру --privileged команды docker run. Значение по умолчанию — false.

Примечание

Этот параметр не применим к заданиям, выполняемым на ресурсах Fargate, и его не следует предоставлять или указывать как false.

ulimits -> (список)

Список ulimits для установки в контейнере. Этот параметр сопоставляется с Ulimits в разделе Создание контейнера в Docker Remote API и опцией --ulimit для docker run.

Примечание

Этот параметр неприменим к заданиям, выполняемым на ресурсах Fargate, и его не следует указывать.

(структура)

Параметры ulimit для передачи в контейнер. Дополнительные сведения см. в разделе Ulimit.

Примечание

Этот объект неприменим к заданиям, выполняемым на ресурсах Fargate.

hardLimit -> (integer)

Жесткий лимит для типа ulimit.

name -> (string)

type ulimit. Допустимые значения: core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack .

softLimit -> (integer)

Мягкий лимит для типа ulimit.

user -> (string)

Имя пользователя для использования внутри контейнера. Этот параметр сопоставляется с User в разделе Создание контейнера в Docker Remote API и опцией --user для docker run.

instanceType -> (string)

Тип экземпляра для использования в параллельном задании с несколькими узлами. Все группы узлов в параллельном задании с несколькими узлами должны использовать один и тот же тип экземпляра.

Примечание

Этот параметр неприменим к одноузловым контейнерным заданиям или заданиям, выполняемым на ресурсах Fargate, и его не следует указывать.

resourceRequirements -> (list)

Тип и объем ресурсов, выделяемых контейнеру. Поддерживаемые ресурсы включают GPU, MEMORY и VCPU.

(структура)

Тип и объем ресурса, выделяемого контейнеру. Поддерживаемые ресурсы включают GPU, MEMORY и VCPU.

value -> (string)

Количество указанного ресурса, резервируемого для контейнера. Значения варьируются в зависимости от указанного type.

type=“GPU”

Количество физических графических процессоров для резервирования для контейнера. Убедитесь, что количество графических процессоров, зарезервированных для всех контейнеров в задании, не превышает количество доступных графических процессоров на вычислительном ресурсе, на котором запускается задание.

Примечание

Графические процессоры недоступны для заданий, выполняемых на ресурсах Fargate.

type=“MEMORY”

Жесткий лимит памяти (в МиБ), представленный контейнеру. Этот параметр поддерживается для заданий, выполняемых на ресурсах Amazon EC2. Если ваш контейнер пытается превысить указанный объем памяти, контейнер завершается. Этот параметр сопоставляется с Memory в разделе Создание контейнера в Docker Remote API и опцией --memory для docker run. Необходимо указать не менее 4 МиБ памяти для задания. Это требуется, но может быть указано в нескольких местах для параллельных заданий с несколькими узлами (MNP). Он должен быть указан для каждого узла как минимум один раз. Этот параметр сопоставляется с Memory в разделе Создание контейнера в Docker Remote API и опцией --memory для docker run.

Примечание

Если вы пытаетесь максимизировать использование ресурсов, предоставляя своим заданиям как можно больше памяти для определенного типа экземпляра, см. раздел Управление памятью в Руководстве пользователя Batch.

Для заданий, выполняемых на ресурсах Fargate, value — это жесткий лимит (в МиБ), и он должен соответствовать одному из поддерживаемых значений, а значения VCPU должны быть одним из значений, поддерживаемых для этого значения памяти.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 или 0.5

value = 2048

VCPU = 0.25, 0.5 или 1

value = 3072

VCPU = 0.5 или 1

value = 4096

VCPU = 0.5, 1 или 2

value = 5120, 6144 или 7168

VCPU = 1 или 2

value = 8192

VCPU = 1, 2 или 4

value = 9216, 10240, 11264, 12288, 13312, 14336 или 15360

VCPU = 2 или 4

value = 16384

VCPU = 2, 4 или 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696 или 30720

VCPU = 4

value = 20480, 24576 или 28672

VCPU = 4 или 8

value = 36864, 45056, 53248 или 61440

VCPU = 8

value = 32768, 40960, 49152 или 57344

VCPU = 8 или 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

VCPU = 16

type=“VCPU”

Количество виртуальных ЦП, зарезервированных для контейнера. Этот параметр сопоставляется с CpuShares в разделе Создание контейнера в Docker Remote API и опцией --cpu-shares для docker run. Каждый виртуальный ЦП эквивалентен 1024 долям ЦП. Для ресурсов Amazon EC2 необходимо указать как минимум один виртуальный ЦП. Это требуется, но может быть указано в нескольких местах; он должен быть указан для каждого узла как минимум один раз.

По умолчанию для квоты ресурсов виртуального ЦП Fargate по требованию установлено значение 6 виртуальных ЦП. Дополнительные сведения о квотах Fargate см. в разделе Квоты Fargate в Общем справочнике Amazon Web Services.

Для заданий, выполняемых на ресурсах Fargate, value должно соответствовать одному из поддерживаемых значений, а значения MEMORY должны быть одним из значений, поддерживаемых для этого значения VCPU. Поддерживаемые значения: 0,25, 0,5, 1, 2, 4, 8 и 16

value = 0.25

MEMORY = 512, 1024 или 2048

value = 0.5

MEMORY = 1024, 2048, 3072 или 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168 или 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360 или 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696 или 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344 или 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

type -> (string)

Тип ресурса, выделяемого контейнеру. Поддерживаемые ресурсы включают GPU, MEMORY и VCPU.

linuxParameters -> (structure)

Модификации, специфичные для Linux, которые применяются к контейнеру, такие как детали для сопоставления устройств.

devices -> (список)

Любое из устройств хоста, которое нужно экспонировать в контейнере. Этот параметр соответствует параметру Devices в разделе «Создание контейнера» в Docker Remote API и параметру --device в команде docker run.

Примечание

Этот параметр не применим к задачам, выполняемым на ресурсах Fargate. Не предоставляйте его для таких задач.

(структура)

Объект, представляющий устройство хоста контейнера.

Примечание

Этот объект не применим к задачам, выполняемым на ресурсах Fargate, и его не следует предоставлять.

hostPath -> (строка)

Путь к устройству на экземпляре контейнера хоста.

containerPath -> (строка)

Путь внутри контейнера, используемый для экспонирования устройства хоста. По умолчанию используется значение hostPath.

permissions -> (список)

Явные разрешения, предоставляемые контейнеру для устройства. По умолчанию контейнер имеет разрешения read, write и mknod для устройства.

(строка)

initProcessEnabled -> (булево)

Если true, запустить процесс init внутри контейнера, который перенаправляет сигналы и собирает процессы. Этот параметр соответствует параметру --init в команде docker run. Этот параметр требует версии Docker Remote API 1.25 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в ваш экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

sharedMemorySize -> (целое число)

Значение размера (в МБ) тома /dev/shm. Этот параметр соответствует параметру --shm-size в команде docker run.

Примечание

Этот параметр не применим к задачам, выполняемым на ресурсах Fargate. Не предоставляйте его для таких задач.

tmpfs -> (список)

Путь контейнера, параметры монтирования и размер (в МБ) монтирования tmpfs. Этот параметр соответствует параметру --tmpfs в команде docker run.

Примечание

Этот параметр не применим к задачам, выполняемым на ресурсах Fargate. Не предоставляйте этот параметр для этого типа ресурсов.

(структура)

Путь контейнера, параметры монтирования и размер монтирования tmpfs.

Примечание

Этот объект не применим к задачам, выполняемым на ресурсах Fargate.

containerPath -> (строка)

Абсолютный путь к файлу в контейнере, где смонтирован том tmpfs.

size -> (целое число)

Размер (в МБ) тома tmpfs.

mountOptions -> (список)

Список параметров монтирования тома tmpfs.

Допустимые значения: “defaults “ | “ro “ | “rw “ | “suid “ | “nosuid “ | “dev “ | “nodev “ | “exec “ | “noexec “ | “sync “ | “async “ | “dirsync “ | “remount “ | “mand “ | “nomand “ | “atime “ | “noatime “ | “diratime “ | “nodiratime “ | “bind “ | “rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime “ | “norelatime “ | “strictatime “ | “nostrictatime “ | “mode “ | “uid “ | “gid “ | “nr_inodes “ | “nr_blocks “ | “mpol “

(строка)

maxSwap -> (целое число)

Общий объем памяти подкачки (в МБ), которую может использовать контейнер. Этот параметр преобразуется в параметр --memory-swap в команде docker run, где значение равно сумме памяти контейнера плюс значение maxSwap. Для получения дополнительной информации см. ` --memory-swap подробности <https://docs.docker.com/config/containers/resource_constraints/#–memory-swap-details>`__ в документации Docker.

Если значение maxSwap установлено как 0, контейнер не использует подкачку. Допустимые значения — 0 или любое положительное целое число. Если параметр maxSwap опущен, контейнер не использует настройки подкачки для экземпляра контейнера, на котором он работает. Значение maxSwap должно быть установлено для использования параметра swappiness.

Примечание

Этот параметр не применим к задачам, выполняемым на ресурсах Fargate. Не предоставляйте его для таких задач.

swappiness -> (целое число)

Этот параметр можно использовать для настройки поведения подкачки памяти контейнера. Значение swappiness, равное 0, означает, что подкачка происходит только при необходимости. Значение swappiness, равное 100, означает, что страницы активно подкачиваются. Допустимые значения — целые числа от 0 до 100. Если параметр swappiness не указан, используется значение по умолчанию 60. Если для параметра maxSwap не указано значение, этот параметр игнорируется. Если maxSwap установлено в 0, контейнер не использует подкачку. Этот параметр соответствует параметру --memory-swappiness в команде docker run.

Учитывайте следующее, когда вы используете конфигурацию подкачки на уровне контейнера.

  • Для использования подкачки контейнером должна быть включена и выделена область памяти подкачки на экземпляре контейнера.

Примечание

По умолчанию в оптимизированных образах Amazon ECS нет поддержки подкачки. Необходимо включить подкачку на экземпляре для использования этой функции. Для получения дополнительной информации см. Разделы Instance store swap volumes в Руководстве пользователя Amazon EC2 по Linux-экземплярам или Как выделить память для использования в качестве пространства подкачки в экземпляре Amazon EC2 с помощью файла подкачки?
  • Параметры подкачки поддерживаются только для определений задач, использующих ресурсы EC2.
  • Если параметры maxSwap и swappiness опущены из определения задачи, каждый контейнер имеет значение swappiness по умолчанию, равное 60. Кроме того, общее использование подкачки ограничено двойным значением выделенной памяти контейнера.

Примечание

Этот параметр не применим к задачам, выполняемым на ресурсах Fargate. Не предоставляйте его для таких задач.

logConfiguration -> (структура)

Спецификация конфигурации журнала для контейнера.

Этот параметр соответствует LogConfig в разделе «Создание контейнера» в API Docker Remote и параметру --log-driver в команде docker run. По умолчанию контейнеры используют тот же драйвер ведения журнала, что и демон Docker. Однако контейнер может использовать другой драйвер ведения журнала, отличный от демона Docker, указав драйвер журнала в определении контейнера. Для использования другого драйвера ведения журнала для контейнера необходимо правильно настроить систему журналов на экземпляре контейнера (или на другом сервере журналов для удалённых вариантов ведения журнала). Дополнительную информацию об опциях различных поддерживаемых драйверов журналов см. в документации Docker в разделе «Настройка драйверов ведения журнала».

Примечание

Batch в настоящее время поддерживает подмножество драйверов ведения журнала, доступных для демона Docker (показано в типе данных LogConfiguration).

Этот параметр требует версию Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

Примечание

Агент контейнера Amazon ECS, работающий на экземпляре контейнера, должен зарегистрировать доступные на этом экземпляре драйверы ведения журнала с переменной среды ECS_AVAILABLE_LOGGING_DRIVERS, прежде чем контейнеры на этом экземпляре смогут использовать эти параметры конфигурации журнала. Дополнительную информацию см. в руководстве по настройке агента контейнеров Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.

logDriver -> (строка)

Драйвер ведения журнала для использования в контейнере. Допустимые значения, перечисленные для этого параметра, — это драйверы журналов, с которыми агент контейнеров Amazon ECS может взаимодействовать по умолчанию.

Поддерживаемые драйверы журналов — awslogs , fluentd , gelf , json-file , journald , logentries , syslog и splunk .

Примечание

Задачи, выполняемые на ресурсах Fargate, ограничены драйверами журналов awslogs и splunk.

awsfirelens

Указывает драйвер ведения журнала firelens. Дополнительную информацию о настройке Firelens см. в Руководстве разработчика Amazon Elastic Container Service в разделе «Отправка журналов Amazon ECS в службу Amazon Web Services или партнёрскую службу Amazon Web Services».

awslogs

Указывает драйвер ведения журнала Amazon CloudWatch Logs. Дополнительную информацию см. в Руководстве пользователя Batch в разделе «Использование драйвера журнала awslogs» и в документации Docker в разделе «Драйвер ведения журнала Amazon CloudWatch Logs».

fluentd

Указывает драйвер ведения журнала Fluentd. Дополнительную информацию, включая использование и параметры, см. в документации Docker в разделе «Драйвер ведения журнала Fluentd».

gelf

Указывает драйвер ведения журнала Graylog Extended Format (GELF). Дополнительную информацию, включая использование и параметры, см. в документации Docker в разделе «Драйвер ведения журнала Graylog Extended Format».

journald

Указывает драйвер ведения журнала journald. Дополнительную информацию, включая использование и параметры, см. в документации Docker в разделе «Драйвер ведения журнала journald».

json-file

Указывает драйвер ведения журнала JSON-файл. Дополнительную информацию, включая использование и параметры, см. в документации Docker в разделе «Драйвер ведения журнала JSON-файл».

splunk

Указывает драйвер ведения журнала Splunk. Дополнительную информацию, включая использование и параметры, см. в документации Docker в разделе «Драйвер ведения журнала Splunk».

syslog

Указывает драйвер ведения журнала syslog. Дополнительную информацию, включая использование и параметры, см. в документации Docker в разделе «Драйвер ведения журнала syslog».

Примечание

Если у вас есть пользовательский драйвер, не перечисленный выше, с которым вы хотите работать с агентом контейнеров Amazon ECS, вы можете создать форк проекта агента контейнеров Amazon ECS, доступного на GitHub, и настроить его для работы с этим драйвером. Мы рекомендуем отправлять запросы на включение изменений. Однако Amazon Web Services в настоящее время не поддерживает запуск изменённых копий этого программного обеспечения.

Этот параметр требует версию Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

options -> (массив)

Параметры конфигурации для отправки драйверу журнала. Этот параметр требует версию Docker Remote API 1.19 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

key -> (строка)

value -> (строка)

secretOptions -> (список)

Секреты для передачи в конфигурацию журнала. Дополнительную информацию см. в Руководстве пользователя Batch в разделе «Указание конфиденциальных данных».

(структура)

Объект, представляющий секрет для экспонирования вашему контейнеру. Секреты могут быть экспонированы контейнеру следующим образом:

  • Для вставки конфиденциальных данных в контейнеры в качестве переменных окружения используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации журнала контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в Руководстве пользователя Batch в разделе «Указание конфиденциальных данных».

name -> (строка)

Имя секрета.

valueFrom -> (строка)

Секрет для экспонирования контейнеру. Поддерживаемые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в Amazon Web Services Systems Manager Parameter Store.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и задача, которую вы запускаете, то можно использовать как полный Amazon Resource Name (ARN), так и имя параметра. Если параметр существует в другой области, то необходимо указать полный ARN.

secrets -> (список)

Секреты для контейнера. Дополнительную информацию см. в Руководстве пользователя Batch в разделе «Указание конфиденциальных данных».

(структура)

Объект, представляющий секрет для экспонирования вашему контейнеру. Секреты могут быть экспонированы контейнеру следующим образом:

  • Для вставки конфиденциальных данных в контейнеры в качестве переменных окружения используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации журнала контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в Руководстве пользователя Batch в разделе «Указание конфиденциальных данных».

name -> (строка)

Имя секрета.

valueFrom -> (строка)

Секрет для экспонирования контейнеру. Поддерживаемые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в Amazon Web Services Systems Manager Parameter Store.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и задача, которую вы запускаете, то можно использовать как полный Amazon Resource Name (ARN), так и имя параметра. Если параметр существует в другой области, то необходимо указать полный ARN.

networkConfiguration -> (структура)

Конфигурация сети для задач, выполняемых на ресурсах Fargate. Задачи, выполняемые на ресурсах Amazon EC2, не должны указывать этот параметр.

assignPublicIp -> (строка)

Указывает, есть ли у задачи публичный IP-адрес. Для задачи, выполняемой на ресурсах Fargate в частной подсети для отправки исходящего трафика в интернет (например, для получения изображений контейнеров), частной подсети требуется шлюз NAT для маршрутизации запросов в интернет. Дополнительную информацию см. в Руководстве разработчика Amazon Elastic Container Service в разделе «Сети задач Amazon ECS». Значение по умолчанию — «DISABLED».

fargatePlatformConfiguration -> (структура)

Конфигурация платформы для задач, выполняемых на ресурсах Fargate. Задачи, выполняемые на ресурсах Amazon EC2, не должны указывать этот параметр.

platformVersion -> (строка)

Версия платформы Fargate, на которой выполняются задачи. Версия платформы указывается только для задач, выполняемых на ресурсах Fargate. Если она не указана, по умолчанию используется версия платформы LATEST. Это использует последнюю утверждённую версию платформы Fargate для вычислительных ресурсов. Дополнительную информацию см. в Руководстве разработчика Amazon Elastic Container Service в разделе «Версии платформы Fargate».

enableExecuteCommand -> (булево)

Определяет, включена ли функция выполнения команд для этой задачи. Если true, функция выполнения команд включена для всех контейнеров в задаче.

ephemeralStorage -> (структура)

Объём временного хранилища для выделения для задачи. Этот параметр используется для расширения общего объёма временного хранилища, сверх значения по умолчанию, для задач, размещённых на Fargate.

sizeInGiB -> (целое число)

Общий объём временного хранилища в GiB для установки для задачи. Минимальное поддерживаемое значение — 21 GiB, а максимальное — 200 GiB.

runtimePlatform -> (структура)

Объект, представляющий архитектуру вычислительной среды для пакетных задач в Fargate.

operatingSystemFamily -> (строка)

Операционная система для вычислительной среды. Допустимые значения: LINUX (по умолчанию), WINDOWS_SERVER_2019_CORE , WINDOWS_SERVER_2019_FULL , WINDOWS_SERVER_2022_CORE и WINDOWS_SERVER_2022_FULL .

Примечание

Следующие параметры нельзя задавать для контейнеров Windows: linuxParameters , privileged , user , ulimits , readonlyRootFilesystem и efsVolumeConfiguration .

Примечание

Планировщик пакетных задач проверяет вычислительные среды, подключенные к очереди задач, перед регистрацией определения задачи в Fargate. В этом случае очередь задач — это место, где подается задача. Если задача требует контейнер Windows, и первая вычислительная среда — LINUX , то вычислительная среда пропускается, и проверяется следующая, пока не будет найдена вычислительная среда на базе Windows.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров на базе Windows в Fargate. Очередь задач заблокируется, если задача Fargate ARM64 или задача Windows отправлена в очередь задач с только вычислительными средами Fargate Spot. Однако вы можете подключить как FARGATE , так и FARGATE_SPOT вычислительные среды к одной очереди задач.

cpuArchitecture -> (строка)

Архитектура vCPU. Значение по умолчанию — X86_64 . Допустимые значения — X86_64 и ARM64 .

Примечание

Для контейнеров Windows этот параметр должен быть установлен в значение X86_64 .

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров на базе Windows в Fargate. Очередь задач заблокируется, если задача Fargate ARM64 или задача Windows отправлена в очередь задач с только вычислительными средами Fargate Spot. Однако вы можете подключить как FARGATE , так и FARGATE_SPOT вычислительные среды к одной очереди задач.

repositoryCredentials -> (структура)

Учетные данные для аутентификации частного репозитория.

credentialsParameter -> (строка)

Идентификатор ресурса Amazon (ARN) секрета, содержащего учетные данные частного репозитория.

instanceTypes -> (список)

Типы экземпляров базовой инфраструктуры узла для многоузловой параллельной задачи.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate.

Кроме того, этот список объектов в настоящее время ограничен одним элементом.

(строка)

ecsProperties -> (структура)

Объект, представляющий свойства диапазона узлов для многоузловой параллельной задачи.

taskProperties -> (список)

Объект, содержащий свойства определения задачи Amazon ECS для задачи.

Примечание

В настоящее время этот объект ограничен одним элементом задачи. Однако элемент задачи может запускать до 10 контейнеров.

(структура)

Свойства определения задачи, описывающие определения контейнера и тома задачи Amazon ECS. Вы можете указать, какие образы Docker использовать, требуемые ресурсы и другие параметры, связанные с запуском определения задачи через сервис или задачу Amazon ECS.

containers -> (список)

Список контейнеров.

(структура)

Свойства контейнера используются для определений задач на основе Amazon ECS. Эти свойства описывают контейнер, запущенный в рамках задачи.

command -> (список)

Команда, передаваемая контейнеру. Этот параметр соответствует Cmd в разделе «Создание контейнера» в Docker Remote API и параметру COMMAND к docker run . Дополнительную информацию см. в справке Dockerfile: CMD .

(строка)

dependsOn -> (список)

Список контейнеров, от которых зависит данный контейнер.

(структура)

Список контейнеров, от которых зависит данная задача.

containerName -> (строка)

Уникальный идентификатор контейнера.

condition -> (строка)

Условие зависимости контейнера. Доступные условия и их поведение:

  • START — Это условие моделирует поведение ссылок и томов на сегодняшний день. Оно проверяет, что зависимый контейнер запущен перед запуском других контейнеров.
  • COMPLETE — Это условие проверяет, что зависимый контейнер выполнил свою работу (вышел) перед запуском других контейнеров. Это может быть полезно для необязательных контейнеров, которые выполняют скрипт и затем выходят. Это условие нельзя задать для основного контейнера.
  • SUCCESS — Это условие такое же, как COMPLETE , но также требует, чтобы контейнер завершил работу со статусом 0. Это условие нельзя задать для основного контейнера.

environment -> (список)

Переменные среды, передаваемые контейнеру. Этот параметр соответствует Env в разделе «Создание контейнера» в Docker Remote API и параметру --env к docker run .

Предупреждение

Не рекомендуется использовать текстовые переменные среды для конфиденциальной информации, такой как данные учетных данных.

Примечание

Имена переменных среды не могут начинаться с AWS_BATCH . Эта схема именования зарезервирована для переменных, которые устанавливает Batch.

(структура)

Объект пары ключ-значение.

name -> (строка)

Имя пары ключ-значение. Для переменных среды это имя переменной среды.

value -> (строка)

Значение пары ключ-значение. Для переменных среды это значение переменной среды.

essential -> (булево)

Если параметр essential контейнера установлен в значение true , и этот контейнер завершится сбоем или остановится по какой-либо причине, все остальные контейнеры, входящие в состав задачи, остановятся. Если параметр essential контейнера установлен в значение false, его сбой не повлияет на остальные контейнеры в задаче. Если этот параметр опущен, контейнер считается основным.

Все задачи должны иметь по крайней мере один основной контейнер. Если у вас приложение, состоящее из нескольких контейнеров, сгруппируйте контейнеры, используемые для одной цели, в компоненты и разделите разные компоненты на несколько определений задач. Дополнительную информацию см. в разделе «Архитектура приложения» в руководстве разработчика Amazon Elastic Container Service.

firelensConfiguration -> (структура)

Настройка FireLens для контейнера. Используется для указания и настройки маршрутизатора логов для журналов контейнеров. Дополнительную информацию см. в разделе «Настройка маршрутизации логов» в руководстве разработчика Amazon Elastic Container Service.

type -> (строка)

Маршрутизатор логов. Допустимые значения — fluentd или fluentbit .

options -> (отображение)

Параметры для настройки маршрутизатора логов. Это необязательное поле, которое можно использовать для указания пользовательского конфигурационного файла или добавления дополнительной метаданных, таких как сведения о задаче, определении задачи, кластере и экземпляре контейнера в событие журнала. Если указано, синтаксис должен быть "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"} . Дополнительную информацию см. в руководстве разработчика Amazon Elastic Container Service в разделе «Создание определения задачи, использующей настройку FireLens».

key -> (строка)

value -> (строка)

image -> (строка)

Изображение для запуска контейнера. Эта строка передается непосредственно демону Docker. По умолчанию доступны образы из реестра Docker Hub. Другие репозитории указываются с помощью repository-url/image:tag или repository-url/image@digest . Допускается до 255 символов (заглавные и строчные буквы, цифры, дефисы, подчеркивания, двоеточия, точки, слеши и знаки номера). Этот параметр соответствует Image в разделе «Создание контейнера» в Docker Remote API и параметру IMAGE параметра ` docker run https://docs.docker.com/engine/reference/run/#security-configuration`__ .

linuxParameters -> (структура)

Модификации, специфичные для Linux, которые применяются к контейнеру, такие как возможности ядра Linux. Для получения дополнительной информации см. KernelCapabilities .

devices -> (список)

Любой из устройств хоста, которые необходимо предоставить контейнеру. Этот параметр сопоставляется с Devices в разделе «Создание контейнера» в Docker Remote API и параметром --device команды docker run .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

(структура)

Объект, представляющий устройство хоста контейнера.

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate, и его не следует указывать.

hostPath -> (строка)

Путь к устройству на экземпляре хост-контейнера.

containerPath -> (строка)

Путь внутри контейнера, используемый для экспонирования устройства хоста. По умолчанию используется значение hostPath.

permissions -> (список)

Явные разрешения, предоставляемые контейнеру для устройства. По умолчанию контейнер имеет разрешения для read , write и mknod для устройства.

(строка)

initProcessEnabled -> (булево)

Если true, запустить процесс init внутри контейнера, который перенаправляет сигналы и собирает процессы. Этот параметр сопоставляется с параметром --init команды docker run . Для этого параметра требуется версия Docker Remote API 1.25 или более поздняя на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

sharedMemorySize -> (целое число)

Значение размера (в МБ) объема /dev/shm. Этот параметр сопоставляется с параметром --shm-size команды docker run .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

tmpfs -> (список)

Путь контейнера, параметры монтирования и размер (в МБ) монтирования tmpfs. Этот параметр сопоставляется с параметром --tmpfs команды docker run .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте этот параметр для этого типа ресурсов.

(структура)

Путь контейнера, параметры монтирования и размер монтирования tmpfs.

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate.

containerPath -> (строка)

Абсолютный путь к файлу в контейнере, где смонтирован объем tmpfs.

size -> (целое число)

Размер (в МБ) объема tmpfs.

mountOptions -> (список)

Список параметров монтирования объема tmpfs.

Допустимые значения: “defaults “ | “ro “ | “rw “ | “suid “ | “nosuid “ | “dev “ | “nodev “ | “exec “ | “noexec “ | “sync “ | “async “ | “dirsync “ | “remount “ | “mand “ | “nomand “ | “atime “ | “noatime “ | “diratime “ | “nodiratime “ | “bind “ | “rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime “ | “norelatime “ | “strictatime “ | “nostrictatime “ | “mode “ | “uid “ | “gid “ | “nr_inodes “ | “nr_blocks “ | “mpol “

(строка)

maxSwap -> (целое число)

Общий объем памяти подкачки (в МБ), которую может использовать контейнер. Этот параметр преобразуется в параметр --memory-swap команды docker run , где значение является суммой памяти контейнера и значения maxSwap. Для получения дополнительной информации см. ` --memory-swap детали <https://docs.docker.com/config/containers/resource_constraints/#–memory-swap-details>`__ в документации Docker.

Если задано значение maxSwap 0, контейнер не использует подкачку. Допустимые значения — 0 или любое положительное целое число. Если параметр maxSwap опущен, контейнер не использует конфигурацию подкачки для экземпляра контейнера, на котором он выполняется. Значение maxSwap должно быть установлено для использования параметра swappiness.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

swappiness -> (целое число)

Вы можете использовать этот параметр для настройки поведения подкачки памяти контейнера. Значение swappiness 0 приводит к тому, что подкачка происходит только в крайнем случае. Значение swappiness 100 приводит к агрессивному обмену страницами. Допустимые значения — целые числа от 0 до 100 . Если параметр swappiness не указан, используется значение по умолчанию 60. Если для параметра maxSwap не указано значение, этот параметр игнорируется. Если maxSwap установлено в 0, контейнер не использует подкачку. Этот параметр сопоставляется с параметром --memory-swappiness команды docker run .

Учитывайте следующее, когда вы используете конфигурацию подкачки на уровне контейнера.

  • Для использования контейнерами необходимо включить и выделить память подкачки на экземпляре контейнера.

Примечание

По умолчанию в оптимизированных AMIs Amazon ECS подкачка не включена. Вам необходимо включить подкачку на экземпляре, чтобы использовать эту функцию. Для получения дополнительной информации см. Разделы «Том подкачки хранилища экземпляров» в Руководстве пользователя Amazon EC2 для Linux-экземпляров или «Как выделить память для работы в качестве пространства подкачки в экземпляре Amazon EC2, используя файл подкачки?»
  • Параметры пространства подкачки поддерживаются только для определений задач, использующих ресурсы EC2.
  • Если параметры maxSwap и swappiness опущены из определения задачи, каждый контейнер имеет значение по умолчанию swappiness 60. Кроме того, общее использование памяти подкачки ограничено двойным размером резервирования памяти контейнера.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не указывайте его для таких задач.

logConfiguration -> (структура)

Спецификация конфигурации логирования для контейнера.

Этот параметр соответствует LogConfig в разделе «Создание контейнера» в Docker Remote API и параметру --log-driver в команде docker run.

По умолчанию контейнеры используют тот же драйвер логирования, что и демонтаж Docker. Однако контейнер может использовать другой драйвер логирования, отличного от драйвера демона Docker, указав драйвер логирования в определении контейнера. Для использования другого драйвера логирования для контейнера, система логирования должна быть должным образом настроена на экземпляре контейнера (или на другом сервере логирования для удаленных вариантов логирования). Более подробную информацию о параметрах различных поддерживаемых драйверов логирования можно найти в разделе «Настройка драйверов логирования» в документации Docker.

Примечание

Amazon ECS в настоящее время поддерживает подмножество драйверов логирования, доступных для демона Docker (показано в типе данных LogConfiguration). Дополнительные драйверы логирования могут быть доступны в будущих версиях агента Amazon ECS контейнеров.

Для этого параметра требуется версия Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в ваш экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'

Примечание

Агент Amazon ECS контейнеров, работающий на экземпляре контейнера, должен зарегистрировать доступные на этом экземпляре драйверы логирования с переменной среды ECS_AVAILABLE_LOGGING_DRIVERS, прежде чем контейнеры, размещенные на этом экземпляре, смогут использовать эти параметры конфигурации логирования. Дополнительную информацию можно найти в разделе «Настройка агента Amazon ECS контейнеров» в Руководстве разработчика Amazon Elastic Container Service.

logDriver -> (string)

Драйвер логирования для использования в контейнере. Действительные значения, указанные для этого параметра, — это драйверы логирования, с которыми агент Amazon ECS контейнеров может взаимодействовать по умолчанию.

Поддерживаемые драйверы логирования: awslogs , fluentd , gelf , json-file , journald , logentries , syslog и splunk.

Примечание

Задачи, выполняемые на ресурсах Fargate, ограничены драйверами логирования awslogs и splunk.

awsfirelens

Указывает драйвер логирования firelens. Дополнительную информацию о настройке Firelens см. в разделе «Отправка журналов Amazon ECS в Amazon Web Services service или Amazon Web Services Partner» в Руководстве разработчика Amazon Elastic Container Service.

awslogs

Указывает драйвер логирования Amazon CloudWatch Logs. Дополнительную информацию см. в разделе «Использование драйвера awslogs» в Руководстве пользователя Batch и «Драйвер логирования Amazon CloudWatch Logs» в документации Docker.

fluentd

Указывает драйвер логирования Fluentd. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер логирования Fluentd» в документации Docker.

gelf

Указывает драйвер логирования Graylog Extended Format (GELF). Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер логирования Graylog Extended Format» в документации Docker.

journald

Указывает драйвер логирования journald. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер логирования journald» в документации Docker.

json-file

Указывает драйвер логирования JSON-файл. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер логирования JSON-файл» в документации Docker.

splunk

Указывает драйвер логирования Splunk. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер логирования Splunk» в документации Docker.

syslog

Указывает драйвер логирования syslog. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер логирования syslog» в документации Docker.

Примечание

Если у вас есть пользовательский драйвер, который не указан выше, с которым вы хотите работать с агентом Amazon ECS контейнеров, вы можете сделать форк проекта агента Amazon ECS контейнеров, доступного на GitHub, и настроить его для работы с этим драйвером. Мы рекомендуем вам отправлять запросы на добавление изменений, которые вы хотите включить. Однако Amazon Web Services в настоящее время не поддерживает запуск измененных копий этого программного обеспечения.

Для этого параметра требуется версия Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в ваш экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

options -> (map)

Параметры конфигурации для отправки драйверу логирования. Для этого параметра требуется версия Docker Remote API 1.19 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в ваш экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

key -> (string)

value -> (string)

secretOptions -> (list)

Секреты, которые необходимо передать конфигурации логирования. Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в Руководстве пользователя Batch.

(структура)

Объект, представляющий секрет, который нужно предоставить вашему контейнеру. Секреты могут быть предоставлены контейнеру следующим образом:

  • Для вставки конфиденциальных данных в ваши контейнеры в виде переменных среды используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации логирования контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в Руководстве пользователя Batch.

name -> (string)

Имя секрета.

valueFrom -> (string)

Секрет, предоставляемый контейнеру. Поддерживаемые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в хранилище параметров Amazon Web Services Systems Manager.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и задача, которую вы запускаете, то вы можете использовать либо полный Amazon Resource Name (ARN), либо имя параметра. Если параметр существует в другой области, то должен быть указан полный ARN.

mountPoints -> (list)

Точки монтирования томов данных в вашем контейнере.

Этот параметр соответствует Volumes в разделе «Создание контейнера» в Docker Remote API и параметру –volume в команде `docker run .

Контейнеры Windows могут монтировать целые каталоги на том же диске, что и $env:ProgramData. Контейнеры Windows не могут монтировать каталоги на другом диске, и точка монтирования не может быть между дисками.

(структура)

Подробная информация о точке монтирования тома Docker, используемой в свойствах контейнера задачи. Этот параметр соответствует Volumes в разделе «Создание контейнера» в Docker Remote API и параметру --volume в команде docker run.

containerPath -> (string)

Путь в контейнере, где монтируется том хоста.

readOnly -> (boolean)

Если это значение true, контейнер имеет только чтение для тома. В противном случае контейнер может записывать в том. Значение по умолчанию — false.

sourceVolume -> (string)

Имя тома для монтирования.

name -> (string)

Имя контейнера. Имя может быть использовано в качестве уникального идентификатора для целей нацеливания на ваши dependsOn и Overrides объекты.

privileged -> (boolean)

Когда этот параметр равен true, контейнеру предоставляются расширенные привилегии на экземпляре контейнера хоста (аналогично пользователю root). Этот параметр соответствует Privileged в разделе «Создание контейнера» в Docker Remote API и параметру --privileged в команде docker run.

Примечание

Этот параметр не поддерживается для контейнеров Windows или задач, выполняемых на Fargate.

readonlyRootFilesystem -> (boolean)

Когда этот параметр равен true, контейнеру предоставляется только чтение для его корневой файловой системы. Этот параметр соответствует ReadonlyRootfs в разделе «Создание контейнера» в Docker Remote API и параметру --read-only в команде docker run.

Примечание

Этот параметр не поддерживается для контейнеров Windows.

repositoryCredentials -> (structure)

Учетные данные аутентификации частного репозитория для использования.

credentialsParameter -> (string)

Amazon Resource Name (ARN) секрета, содержащего учетные данные аутентификации частного репозитория.

resourceRequirements -> (list)

Тип и количество ресурсов, которые нужно назначить контейнеру. Поддерживается только ресурс GPU.

(структура)

Тип и количество ресурсов, которые нужно назначить контейнеру. Поддерживаемые ресурсы включают GPU , MEMORY и VCPU .

value -> (строка)

Количество указанного ресурса, которое нужно зарезервировать для контейнера. Значения зависят от указанного type.

type=”GPU”

Количество физических GPU, которые нужно зарезервировать для контейнера. Убедитесь, что общее количество зарезервированных GPU для всех контейнеров в задаче не превышает количество доступных GPU на вычислительном ресурсе, на котором запущена задача.

Примечание

GPU недоступны для задач, выполняющихся на ресурсах Fargate.

type=”MEMORY”

Максимальный объём памяти (в MiB), доступный контейнеру. Этот параметр поддерживается для задач, выполняющихся на ресурсах Amazon EC2. Если контейнер попытается превысить заданный объём памяти, контейнер будет завершен. Этот параметр соответствует Memory в разделе «Создание контейнера» в Docker Remote API и параметру --memory в команде docker run. Для задачи необходимо указать как минимум 4 MiB памяти. Этот параметр является обязательным, но может быть указан в нескольких местах для задач многоузлового параллельного выполнения (MNP). Он должен быть указан для каждого узла хотя бы один раз. Этот параметр соответствует Memory в разделе «Создание контейнера» в Docker Remote API и параметру --memory в команде docker run.

Примечание

Если вы пытаетесь максимизировать использование ресурсов, предоставляя задачам как можно больше памяти для определённого типа экземпляра, см. Управление памятью в руководстве пользователя Batch .

Для задач, выполняющихся на ресурсах Fargate, value является максимальным объёмом (в MiB) и должен соответствовать одному из поддерживаемых значений, а VCPU должно быть одним из значений, поддерживаемых для данного значения памяти.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 или 0.5

value = 2048

VCPU = 0.25, 0.5 или 1

value = 3072

VCPU = 0.5 или 1

value = 4096

VCPU = 0.5, 1 или 2

value = 5120, 6144 или 7168

VCPU = 1 или 2

value = 8192

VCPU = 1, 2 или 4

value = 9216, 10240, 11264, 12288, 13312, 14336 или 15360

VCPU = 2 или 4

value = 16384

VCPU = 2, 4 или 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696 или 30720

VCPU = 4

value = 20480, 24576 или 28672

VCPU = 4 или 8

value = 36864, 45056, 53248 или 61440

VCPU = 8

value = 32768, 40960, 49152 или 57344

VCPU = 8 или 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

VCPU = 16

type=”VCPU”

Количество виртуальных процессоров (vCPU), зарезервированных для контейнера. Этот параметр соответствует CpuShares в разделе «Создание контейнера» в Docker Remote API и параметру --cpu-shares в команде docker run. Каждый vCPU эквивалентен 1024 CPU-долям. Для ресурсов Amazon EC2 необходимо указать как минимум один vCPU. Этот параметр является обязательным, но может быть указан в нескольких местах; он должен быть указан для каждого узла как минимум один раз.

По умолчанию для квоты ресурсов vCPU Fargate On-Demand установлено 6 vCPU. Дополнительную информацию о квотах Fargate см. в разделе Квоты Fargate в справке Amazon Web Services General Reference.

Для задач, выполняющихся на ресурсах Fargate, value должно соответствовать одному из поддерживаемых значений, а MEMORY должно быть одним из значений, поддерживаемых для данного значения VCPU. Поддерживаемые значения: 0.25, 0.5, 1, 2, 4, 8 и 16

value = 0.25

MEMORY = 512, 1024 или 2048

value = 0.5

MEMORY = 1024, 2048, 3072 или 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168 или 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360 или 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696 или 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344 или 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

type -> (строка)

Тип ресурса, который нужно назначить контейнеру. Поддерживаемые ресурсы включают GPU , MEMORY и VCPU .

secrets -> (список)

Секреты, которые нужно передать контейнеру. Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в руководстве разработчика Amazon Elastic Container Service.

(структура)

Объект, представляющий секрет, который нужно предоставить контейнеру. Секреты могут быть предоставлены контейнеру следующим образом:

  • Для вставки конфиденциальных данных в контейнеры в качестве переменных окружения используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации журналов контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в руководстве пользователя Batch.

name -> (строка)

Имя секрета.

valueFrom -> (строка)

Секрет для предоставления контейнеру. Поддерживаются полное имя ресурса Amazon (ARN) секрета Secrets Manager или полное ARN параметра в хранилище параметров Amazon Web Services Systems Manager.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и запускаемая задача, то можно использовать полное имя ресурса Amazon (ARN) или имя параметра. Если параметр существует в другой области, то необходимо указать полное ARN.

ulimits -> (список)

Список ulimits , которые нужно установить в контейнере. Если значение ulimit указано в определении задачи, оно переопределяет значения по умолчанию, заданные Docker. Этот параметр соответствует Ulimits в разделе «Создание контейнера» в Docker Remote API и параметру --ulimit в команде docker run.

Задачи Amazon ECS, размещенные на Fargate, используют значения ограничений ресурсов по умолчанию, заданные операционной системой, за исключением параметра ограничения ресурсов nofile, который переопределяется Fargate. Параметр ограничения ресурсов nofile устанавливает ограничение на количество открытых файлов, которые может использовать контейнер. Значение ограничения по умолчанию nofile — 1024, а максимальное значение — 65535.

Для этого параметра требуется версия Docker Remote API 1.18 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в него и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'

Примечание

Этот параметр не поддерживается для контейнеров Windows.

(структура)

Настройки ulimit, которые нужно передать контейнеру. Дополнительную информацию см. в разделе Ulimit.

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate.

hardLimit -> (целое число)

Максимальное значение для типа ulimit.

name -> (строка)

Имя типа type ulimit. Допустимые значения: core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack.

softLimit -> (целое число)

Минимальное значение для типа ulimit.

user -> (строка)

Пользователь, который будет использоваться внутри контейнера. Этот параметр соответствует Пользователю в разделе «Создание контейнера» в Docker Remote API и параметру –user в команде docker run.

Примечание

При запуске задач с использованием сетевого режима host не используйте контейнеры с пользователем root user (UID 0). Рекомендуется использовать не-root пользователя для повышения безопасности.

Можно указать user в следующих форматах. Если указывается UID или GID, необходимо указать его как положительное целое число.

  • user
  • user:group
  • uid
  • uid:gid
  • user:gi
  • uid:group

Примечание

Этот параметр не поддерживается для контейнеров Windows.

ephemeralStorage -> (структура)

Объем временного хранилища, который нужно выделить для задачи. Этот параметр используется для расширения общего объема временного хранилища, доступного помимо значения по умолчанию, для задач, размещенных на Fargate.

sizeInGiB -> (целое число)

Общий объем временного хранилища в GiB, который нужно установить для задачи. Минимальное поддерживаемое значение — 21 GiB, а максимальное — 200 GiB.

executionRoleArn -> (строка)

Идентификатор ресурса Amazon (ARN) роли выполнения, которую Batch может принять. Для задач, выполняющихся на ресурсах Fargate, необходимо указать роль выполнения. Дополнительную информацию см. в разделе Роль IAM для выполнения Batch в руководстве пользователя Batch.

platformVersion -> (строка)

Версия платформы Fargate, на которой выполняются задачи. Версия платформы указывается только для задач, выполняющихся на ресурсах Fargate. Если версия не указана, используется версия платформы Fargate LATEST по умолчанию. Она использует последнюю утверждённую версию платформы Fargate для вычислительных ресурсов. Дополнительную информацию см. в разделе Версии платформы Fargate в руководстве разработчика Amazon Elastic Container Service.

ipcMode -> (строка)

Пространство имен ресурсов IPC, используемое для контейнеров в задаче. Допустимые значения — host, task или none.

Если указано host, все контейнеры в задачах, указавших режим IPC host в том же экземпляре контейнера, используют общие ресурсы IPC с экземпляром Amazon EC2.

Если указано task, все контейнеры в указанной задаче используют общие ресурсы IPC.

Если указано none, ресурсы IPC внутри контейнеров задачи являются частными и не используются совместно с другими контейнерами в задаче или на экземпляре контейнера.

Если значение не указано, использование совместного пространства имен ресурсов IPC зависит от настроек демона Docker на экземпляре контейнера. Дополнительную информацию см. в разделе Настройки IPC в справке Docker run.

taskRoleArn -> (строка)

Идентификатор ресурса Amazon (ARN), связанный с задачей Amazon ECS.

Примечание

Этот объект сравним с ContainerProperties:jobRoleArn.

pidMode -> (строка)

Пространство имен процессов для контейнеров в задаче. Допустимые значения — host или task. Например, мониторинговые sidecar-контейнеры могут потребовать pidMode для доступа к информации о других контейнерах, выполняющихся в той же задаче.

Если указано host, все контейнеры в задачах, указавших режим PID host в том же экземпляре контейнера, используют общее пространство имен процессов с хост-экземпляром Amazon EC2.

Если указано task, все контейнеры в указанной задаче используют общее пространство имен процессов.

Если значение не указано, по умолчанию используется частное пространство имен для каждого контейнера. Дополнительную информацию см. в разделе Настройки PID в справке Docker run.

networkConfiguration -> (структура)

Настройка сети для задач, выполняемых на ресурсах Fargate. Задачи, выполняемые на ресурсах Amazon EC2, не должны указывать этот параметр.

assignPublicIp -> (строка)

Указывает, имеет ли задача публичный IP-адрес. Для задач, выполняемых на ресурсах Fargate в частной подсети для отправки трафика во внешнюю сеть (например, для загрузки образов контейнеров), частная подсеть требует подключения шлюза NAT для маршрутизации запросов во внешнюю сеть. Дополнительную информацию см. в разделе Сети задач Amazon ECS в Руководстве разработчика Amazon Elastic Container Service. Значение по умолчанию — «DISABLED».

runtimePlatform -> (структура)

Объект, представляющий архитектуру вычислительной среды для задач Batch на Fargate.

operatingSystemFamily -> (строка)

Операционная система вычислительной среды. Допустимые значения: LINUX (по умолчанию), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE и WINDOWS_SERVER_2022_FULL.

Примечание

Следующие параметры нельзя задавать для контейнеров Windows: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem и efsVolumeConfiguration.

Примечание

Планировщик Batch проверяет вычислительные среды, присоединённые к очереди задач, перед регистрацией определения задачи в Fargate. В этом случае очередь задач — место отправки задачи. Если задача требует контейнер Windows, и первая вычислительная среда — LINUX, среда пропускается, и проверяется следующая, пока не будет найдена среда Windows.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров Windows на Fargate. Очередь задач заблокируется, если задача Fargate ARM64 или Windows отправляется в очередь задач с только вычислительными средами Fargate Spot. Однако вы можете прикрепить как FARGATE, так и FARGATE_SPOT вычислительные среды к одной очереди задач.

cpuArchitecture -> (строка)

Архитектура vCPU. Значение по умолчанию — X86_64. Допустимые значения — X86_64 и ARM64.

Примечание

Для контейнеров Windows этот параметр должен быть установлен на X86_64.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров Windows на Fargate. Очередь задач заблокируется, если задача Fargate ARM64 или Windows отправляется в очередь задач с только вычислительными средами Fargate Spot. Однако вы можете прикрепить как FARGATE, так и FARGATE_SPOT вычислительные среды к одной очереди задач.

volumes -> (список)

Список томов, связанных с задачей.

(структура)

Том данных, используемый в свойствах контейнера задачи.

host -> (структура)

Содержимое параметра host определяет, сохраняется ли том данных на хост-экземпляре контейнера и где он хранится. Если параметр host пустой, демон Docker назначает путь к хосту для тома данных. Однако данные не гарантированно сохраняются после остановки связанных с ним контейнеров.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate, и его не следует указывать.

sourcePath -> (строка)

Путь на хост-экземпляре контейнера, предоставляемый контейнеру. Если этот параметр пустой, демон Docker назначил путь к хосту. Если этот параметр содержит расположение файла, то том данных сохраняется в указанном месте на хост-экземпляре контейнера до его удаления вручную. Если расположение исходного пути на хост-экземпляре контейнера не существует, демон Docker создаёт его. Если расположение существует, содержимое папки исходного пути экспортируется.

Примечание

Этот параметр не применим к задачам, выполняемым на ресурсах Fargate. Не указывайте его для таких задач.

name -> (строка)

Имя тома. Оно может содержать до 255 символов. Оно может содержать заглавные и строчные буквы, цифры, дефисы (-) и нижние подчёркивания (_). Это имя используется в параметре sourceVolume определения контейнера mountPoints.

efsVolumeConfiguration -> (структура)

Этот параметр используется при использовании Amazon Elastic File System для хранения данных задачи. Задачи, выполняемые на ресурсах Fargate, должны указывать platformVersion длиной не менее 1.4.0.

fileSystemId -> (строка)

Идентификатор файловой системы Amazon EFS.

rootDirectory -> (строка)

Директория внутри файловой системы Amazon EFS, которая будет смонтирована как корневая директория внутри хоста. Если этот параметр опущен, используется корень тома Amazon EFS. Указание / эквивалентно опущению этого параметра. Максимальная длина — 4096 символов.

Предупреждение

Если в authorizationConfig указан EFS-точку доступа, параметр rootDirectory должен быть опущен или установлен в /, что навязывает путь, установленный в точке доступа Amazon EFS.

transitEncryption -> (строка)

Определяет, включить ли шифрование данных Amazon EFS во время передачи между хостом Amazon ECS и сервером Amazon EFS. Шифрование во время передачи должно быть включено, если используется авторизация Amazon EFS IAM. Если этот параметр опущен, используется значение по умолчанию — DISABLED. Дополнительную информацию см. в разделе Шифрование данных при передаче в Руководстве пользователя Amazon Elastic File System.

transitEncryptionPort -> (целое число)

Порт, используемый при отправке зашифрованных данных между хостом Amazon ECS и сервером Amazon EFS. Если вы не указываете порт шифрования во время передачи, используется стратегия выбора порта, используемая помощником монтирования Amazon EFS. Значение должно быть от 0 до 65535. Дополнительную информацию см. в разделе Помощник монтирования EFS в Руководстве пользователя Amazon Elastic File System.

authorizationConfig -> (структура)

Подробности конфигурации авторизации для файловой системы Amazon EFS.

accessPointId -> (строка)

Идентификатор точки доступа Amazon EFS. Если указана точка доступа, значение rootDirectory в EFSVolumeConfiguration должно быть опущено или установлено в /, что навязывает путь, установленный в точке доступа EFS. Если используется точка доступа, шифрование во время передачи должно быть включено в EFSVolumeConfiguration. Дополнительную информацию см. в разделе Работа с точками доступа Amazon EFS в Руководстве пользователя Amazon Elastic File System.

iam -> (строка)

Указывает, использовать ли роль IAM задачи Batch, определённую в определении задачи, при монтировании файловой системы Amazon EFS. Если включено, шифрование во время передачи должно быть включено в EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию — DISABLED. Дополнительную информацию см. в разделе Использование точек доступа Amazon EFS в Руководстве пользователя Batch. Для авторизации IAM EFS необходимо, чтобы TransitEncryption было ENABLED и был указан JobRoleArn.

enableExecuteCommand -> (булево)

Определяет, включена ли функция выполнения команд для этой задачи. Если true, функция выполнения команд включена для всех контейнеров в задаче.

eksProperties -> (структура)

Это объект, представляющий свойства диапазона узлов для многоузловой параллельной задачи.

podProperties -> (структура)

Свойства ресурсов Kubernetes pod для задания.

serviceAccountName -> (строка)

Имя учетной записи службы, используемой для запуска pod. Дополнительную информацию см. в руководстве по Kubernetes service accounts и Настройка учетной записи Kubernetes service account для принятия роли IAM в руководстве по Amazon EKS User Guide и Настройка учетных записей службы для pod в документации по Kubernetes.

hostNetwork -> (логическое значение)

Указывает, использует ли pod IP-адрес сети хоста. Значение по умолчанию — true. Установка этого значения в false включает модель сети Kubernetes pod. Большинство рабочих нагрузок Batch — это только исходящие соединения и не требуют накладных расходов на выделение IP-адресов для каждого pod для входящих соединений. Дополнительную информацию см. в разделах Host namespaces и Pod networking в документации по Kubernetes.

dnsPolicy -> (строка)

Политика DNS для pod. Значение по умолчанию — ClusterFirst. Если параметр hostNetwork не указан, значение по умолчанию — ClusterFirstWithHostNet. ClusterFirst указывает, что любой запрос DNS, не соответствующий настроенному суффиксу домена кластера, пересылается в upstream nameserver, унаследованный от узла. Дополнительную информацию см. в разделе Политика DNS под в документации по Kubernetes.

Допустимые значения: Default | ClusterFirst | ClusterFirstWithHostNet

imagePullSecrets -> (список)

Ссылка на ресурс секрета Kubernetes. Содержит список секретов. Эти секреты помогают получить доступ к скачиванию изображений из частного реестра.

ImagePullSecret$name требуется при использовании этого объекта.

(структура)

Ссылка на ресурс секрета Kubernetes. Это имя секрета должно начинаться и заканчиваться буквенно-цифровым символом, должно быть в нижнем регистре, может содержать точки (.) и тире (-), и не может содержать более 253 символов.

name -> (строка)

Предоставляет уникальный идентификатор для ImagePullSecret. Этот объект требуется при использовании EksPodProperties$imagePullSecrets.

containers -> (список)

Свойства контейнера, используемого в pod Amazon EKS.

Примечание

Этот объект ограничен 10 элементами.

(структура)

Свойства контейнера EKS используются в определениях заданий для определений заданий на основе Amazon EKS для описания свойств узла контейнера в pod, запускаемого в рамках задания. Это нельзя указать для определений заданий на основе Amazon ECS.

name -> (строка)

Имя контейнера. Если имя не указано, используется имя по умолчанию “Default”. Каждый контейнер в pod должен иметь уникальное имя.

image -> (строка)

Изображение Docker, используемое для запуска контейнера.

imagePullPolicy -> (строка)

Политика извлечения изображения для контейнера. Поддерживаемые значения — Always, IfNotPresent и Never. Этот параметр по умолчанию имеет значение IfNotPresent. Однако, если указана метка :latest, она по умолчанию имеет значение Always. Дополнительную информацию см. в разделе Обновление изображений в документации по Kubernetes.

command -> (список)

Точка входа в контейнер. Она не выполняется в оболочке. Если она не указана, используется ENTRYPOINT образа контейнера. Ссылки на переменные среды расширяются с использованием среды контейнера.

Если указанная переменная среды не существует, ссылка в команде не изменяется. Например, если ссылка указывает на “$(NAME1)”, а переменная среды NAME1 не существует, строка команды останется “$(NAME1)”. $$ заменяется на $, и результирующая строка не расширяется. Например, $$(VAR_NAME) передается как $(VAR_NAME) независимо от того, существует ли переменная среды VAR_NAME. Точка входа не может быть обновлена. Дополнительную информацию см. в разделе ENTRYPOINT в справочнике по Dockerfile и Определение команды и аргументов для контейнера и Точка входа в документации по Kubernetes.

(строка)

args -> (список)

Массив аргументов для точки входа. Если он не указан, используется CMD образа контейнера. Это соответствует члену args в разделе Точка входа Pod в Kubernetes. Ссылки на переменные среды расширяются с использованием среды контейнера.

Если указанная переменная среды не существует, ссылка в команде не изменяется. Например, если ссылка указывает на “$(NAME1)”, а переменная среды NAME1 не существует, строка команды останется “$(NAME1)”. $$ заменяется на $, и результирующая строка не расширяется. Например, $$(VAR_NAME) передается как $(VAR_NAME) независимо от того, существует ли переменная среды VAR_NAME. Дополнительную информацию см. в разделе Dockerfile reference: CMD и Определение команды и аргументов для pod в документации по Kubernetes.

(строка)

env -> (список)

Переменные среды, которые необходимо передать контейнеру.

Примечание

Переменные среды не могут начинаться с “AWS_BATCH”. Эта соглашение об именовании зарезервировано для переменных, которые устанавливает Batch.

(структура)

Переменная среды.

name -> (строка)

Имя переменной среды.

value -> (строка)

Значение переменной среды.

resources -> (структура)

Тип и количество ресурсов, которые необходимо назначить контейнеру. Поддерживаемые ресурсы включают memory, cpu и nvidia.com/gpu. Дополнительную информацию см. в разделе Управление ресурсами для pod и контейнеров в документации по Kubernetes.

limits -> (карта)

Тип и количество ресурсов, которые необходимо зарезервировать для контейнера. Значения зависят от указанного name. Ресурсы могут быть запрошены с использованием объектов limits или requests.

memory

Ограничение памяти (в МиБ) для контейнера, используя целые числа, с суффиксом «Ми». Если контейнер пытается превысить указанный объем памяти, контейнер завершается. Для задания необходимо указать как минимум 4 МиБ памяти. memory можно указать в limits, requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

Примечание

Чтобы максимально использовать ресурсы, предоставьте своим заданиям как можно больше памяти для конкретного типа экземпляра, который вы используете. Узнайте, как это сделать, в разделе Управление памятью в руководстве пользователя Batch.

cpu

Количество процессоров, зарезервированных для контейнера. Значения должны быть целыми числами, кратными 0.25. cpu можно указать в limits, requests или обоих. Если cpu указано в обоих местах, то значение, указанное в limits, должно быть как минимум таким же большим, как значение, указанное в requests.

nvidia.com/gpu

Количество графических процессоров, зарезервированных для контейнера. Значения должны быть целыми числами. memory можно указать в limits, requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

key -> (строка)

value -> (строка)

requests -> (карта)

Тип и количество ресурсов, которые необходимо запросить для контейнера. Значения зависят от указанного name. Ресурсы могут быть запрошены с использованием объектов limits или requests.

memory

Ограничение памяти (в МиБ) для контейнера, используя целые числа, с суффиксом «Ми». Если контейнер пытается превысить указанный объем памяти, контейнер завершается. Для задания необходимо указать как минимум 4 МиБ памяти. memory можно указать в limits, requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

Примечание

Если вы пытаетесь максимизировать использование ресурсов, предоставляя своим заданиям как можно больше памяти для конкретного типа экземпляра, см. раздел Управление памятью в руководстве пользователя Batch.

cpu

Количество процессоров, зарезервированных для контейнера. Значения должны быть целыми числами, кратными 0.25. cpu можно указать в limits, requests или обоих. Если cpu указано в обоих местах, то значение, указанное в limits, должно быть как минимум таким же большим, как значение, указанное в requests.

nvidia.com/gpu

Количество графических процессоров, зарезервированных для контейнера. Значения должны быть целыми числами. nvidia.com/gpu можно указать в limits, requests или обоих. Если nvidia.com/gpu указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

key -> (строка)

value -> (строка)

volumeMounts -> (список)

Точки монтирования томов для контейнера. Batch поддерживает типы томов emptyDir, hostPath и secret. Дополнительную информацию о томах и точках монтирования томов в Kubernetes см. в разделе Тома в документации по Kubernetes.

(структура)

Точки монтирования томов для контейнера для задания Amazon EKS. Дополнительную информацию о томах и точках монтирования томов в Kubernetes см. в разделе Тома в документации по Kubernetes.

name -> (строка)

Имя точки монтирования тома. Оно должно соответствовать имени одного из томов в pod.

mountPath -> (строка)

Путь в контейнере, где монтируется том.

subPath -> (строка)

Подпуть внутри указанного тома вместо его корня.

readOnly -> (логическое значение)

Если это значение — true, контейнер имеет только доступ для чтения к тому. В противном случае контейнер может записывать в том. Значение по умолчанию — false.

securityContext -> (структура)

```

Контекст безопасности для задания. Дополнительную информацию см. в разделе Настройка контекста безопасности для под или контейнера в документации Kubernetes.

runAsUser -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора пользователя (uid). Если этот параметр не указан, используется пользователь, указанный в метаданных изображения. Этот параметр соответствует RunAsUser и MustRanAs политике в разделе Пользователи и группы политик безопасности под в документации Kubernetes.

runAsGroup -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора группы (gid). Если этот параметр не указан, используется группа, указанная в метаданных изображения. Этот параметр соответствует RunAsGroup и MustRunAs политике в разделе Пользователи и группы политик безопасности под в документации Kubernetes.

privileged -> (boolean)

При указании этого параметра контейнер получает повышенные разрешения на экземпляре хост-контейнера. Уровень разрешений аналогичен разрешениям пользователя root. Значение по умолчанию - false. Этот параметр соответствует privileged политике в разделе Привилегированные политики безопасности под в документации Kubernetes.

allowPrivilegeEscalation -> (boolean)

Разрешает ли контейнеру или Kubernetes под получить больше привилегий, чем у его родительского процесса. Значение по умолчанию - false.

readOnlyRootFilesystem -> (boolean)

При указании этого параметра контейнеру предоставляется только чтение для корневой файловой системы. Значение по умолчанию - false. Этот параметр соответствует ReadOnlyRootFilesystem политике в разделе Тома и файловые системы политик безопасности под в документации Kubernetes.

runAsNonRoot -> (boolean)

При указании этого параметра контейнер запускается от имени пользователя с идентификатором, отличным от 0. Если этот параметр не указан, такое правило не применяется. Этот параметр соответствует RunAsUser и MustRunAsNonRoot политике в разделе Пользователи и группы политик безопасности под в документации Kubernetes.

initContainers -> (list)

Эти контейнеры выполняются до контейнеров приложения, всегда доводятся до завершения и должны завершиться успешно перед запуском следующего контейнера. Эти контейнеры регистрируются с агентом Amazon EKS Connector и сохраняют информацию о регистрации в хранилище данных Kubernetes backend. Для получения дополнительной информации см. Контейнеры инициализации в документации Kubernetes.

Примечание

Этот объект ограничен 10 элементами.

(структура)

Свойства контейнера EKS используются в определениях задач для определений задач на основе Amazon EKS, чтобы описать свойства узла контейнера в под, который запускается в рамках задачи. Это нельзя указать для определений задач на основе Amazon ECS.

name -> (строка)

Имя контейнера. Если имя не указано, используется имя по умолчанию «Default ». Каждый контейнер в под должен иметь уникальное имя.

image -> (строка)

Изображение Docker, используемое для запуска контейнера.

imagePullPolicy -> (строка)

Политика получения изображения для контейнера. Поддерживаемые значения — Always , IfNotPresent и Never . По умолчанию используется значение IfNotPresent . Однако, если указана метка :latest , по умолчанию используется Always . Для получения дополнительной информации см. Обновление изображений в документации Kubernetes.

command -> (список)

Точка входа для контейнера. Она не выполняется внутри оболочки. Если это не указано, используется ENTRYPOINT изображения контейнера. Ссылок на переменные среды расширяются с использованием среды контейнера.

Если указанная переменная среды не существует, ссылка в команде не изменяется. Например, если ссылка указывает на «$(NAME1) », а переменная среды NAME1 не существует, строка команды останется «$(NAME1) ». $$ заменяется на $ , и полученная строка не расширяется. Например, $$(VAR_NAME) будет передана как $(VAR_NAME) независимо от того, существует ли переменная среды VAR_NAME . Точку входа нельзя обновить. Для получения дополнительной информации см. ENTRYPOINT в справочнике по Dockerfile и Определить команду и аргументы для контейнера и Точка входа в документации Kubernetes.

(строка)

args -> (список)

Массив аргументов для точки входа. Если это не указано, используется CMD изображения контейнера. Это соответствует члену args в разделе Entrypoint в Pod в Kubernetes. Ссылок на переменные среды расширяются с использованием среды контейнера.

Если указанная переменная среды не существует, ссылка в команде не изменяется. Например, если ссылка указывает на «$(NAME1) », а переменная среды NAME1 не существует, строка команды останется «$(NAME1) ». $$ заменяется на $ , и полученная строка не расширяется. Например, $$(VAR_NAME) передается как $(VAR_NAME) независимо от того, существует ли переменная среды VAR_NAME . Для получения дополнительной информации см. Справочник по Dockerfile: CMD и Определение команды и аргументов для под в документации Kubernetes.

(строка)

env -> (список)

Переменные среды, которые необходимо передать контейнеру.

Примечание

Переменные среды не могут начинаться с «AWS_BATCH ». Эта соглашение об именовании зарезервировано для переменных, которые устанавливает Batch.

(структура)

Переменная среды.

name -> (строка)

Имя переменной среды.

value -> (строка)

Значение переменной среды.

resources -> (структура)

Тип и количество ресурсов, которые нужно назначить контейнеру. Поддерживаемые ресурсы включают в себя memory , cpu и nvidia.com/gpu . Для получения дополнительной информации см. Управление ресурсами для подов и контейнеров в документации Kubernetes.

limits -> (карта)

Тип и количество ресурсов, которые необходимо зарезервировать для контейнера. Значения зависят от указанного name . Ресурсы можно запросить, используя объекты limits или requests.

memory

Предельное значение памяти (в MiB) для контейнера, используя целые числа со значением «Mi». Если контейнер попытается превысить заданное значение памяти, контейнер будет завершён. Для работы необходимо указать не менее 4 MiB памяти для задания. memory можно указать в limits , requests или обоих. Если memory указано в обоих местах, тогда значение, указанное в limits , должно быть равно значению, указанному в requests.

Примечание

Для максимального использования ресурсов предоставьте своим задачам как можно больше памяти для конкретного типа экземпляра, который вы используете. Чтобы узнать как, см. Управление памятью в Руководстве пользователя Batch.

cpu

Количество ЦП, резервируемых для контейнера. Значения должны быть целым числом, кратным 0.25 . cpu можно указать в limits , requests или обоих. Если cpu указано в обоих местах, то значение, указанное в limits , должно быть не меньше значения, указанного в requests .

nvidia.com/gpu

Количество графических процессоров, резервируемых для контейнера. Значения должны быть целыми числами. memory можно указать в limits , requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits , должно быть равно значению, указанному в requests .

key -> (строка)

value -> (строка)

requests -> (карта)

Тип и количество ресурсов, которые необходимо запросить для контейнера. Значения зависят от указанного name . Ресурсы можно запросить, используя объекты limits или requests.

memory

Предельное значение памяти (в MiB) для контейнера, используя целые числа со значением «Mi». Если контейнер попытается превысить заданное значение памяти, контейнер будет завершён. Для работы необходимо указать не менее 4 MiB памяти для задания. memory можно указать в limits , requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits , должно быть равно значению, указанному в requests .

Примечание

Если вы пытаетесь максимизировать использование ресурсов, предоставляя своим задачам как можно больше памяти для конкретного типа экземпляра, см. Управление памятью в Руководстве пользователя Batch.

cpu

Количество ЦП, резервируемых для контейнера. Значения должны быть целым числом, кратным 0.25 . cpu можно указать в limits , requests или обоих. Если cpu указано в обоих местах, то значение, указанное в limits , должно быть не меньше значения, указанного в requests .

nvidia.com/gpu

Количество графических процессоров, резервируемых для контейнера. Значения должны быть целыми числами. nvidia.com/gpu можно указать в limits , requests или обоих. Если nvidia.com/gpu указано в обоих местах, то значение, указанное в limits , должно быть равно значению, указанному в requests .

key -> (строка)

value -> (строка)

volumeMounts -> (список)

Точки монтирования томов для контейнера. Batch поддерживает типы томов emptyDir , hostPath и secret . Дополнительную информацию о томах и точках монтирования томов в Kubernetes см. в документации Kubernetes.

(структура)

Точки монтирования томов для контейнера для задачи Amazon EKS. Для получения дополнительной информации о томах и точках монтирования томов в Kubernetes см. Тома в документации Kubernetes.

name -> (строка)

Имя точки монтирования тома. Оно должно совпадать с именем одного из томов в под.

mountPath -> (строка)

Путь в контейнере, где монтируется том.

subPath -> (строка)

Подкаталог внутри указанного тома вместо его корня.

readOnly -> (булево)

Если это значение true , контейнер имеет только доступ для чтения к тому. В противном случае контейнер может записывать в том. Значение по умолчанию — false .

securityContext -> (структура)

```

Контекст безопасности для задания. Дополнительную информацию см. в документации Kubernetes «Настройка контекста безопасности для под или контейнера».

runAsUser -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора пользователя (uid). Если этот параметр не указан, используется пользователь, указанный в метаданных образа. Этот параметр соответствует параметрам RunAsUser и MustRanAs политики в документации Kubernetes «Политики безопасности под по пользователям и группам».

runAsGroup -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора группы (gid). Если этот параметр не указан, используется группа, указанная в метаданных образа. Этот параметр соответствует параметрам RunAsGroup и MustRunAs политики в документации Kubernetes «Политики безопасности под по пользователям и группам».

privileged -> (boolean)

При указании этого параметра контейнер получает повышенные права доступа к хост-контейнеру. Уровень прав аналогичен правам пользователя root. Значение по умолчанию — false. Этот параметр соответствует политике privileged в документации Kubernetes «Политики безопасности под с привилегиями».

allowPrivilegeEscalation -> (boolean)

Указывает, разрешено ли контейнеру или Kubernetes pod получить больше прав, чем у его родительского процесса. Значение по умолчанию — false.

readOnlyRootFilesystem -> (boolean)

При указании этого параметра контейнеру предоставляется только чтение для корневой файловой системы. Значение по умолчанию — false. Этот параметр соответствует политике ReadOnlyRootFilesystem в документации Kubernetes «Политики безопасности под по объемам и файловым системам».

runAsNonRoot -> (boolean)

При указании этого параметра контейнер запускается от пользователя с идентификатором, отличным от 0 (uid). Если этот параметр не указан, такое ограничение не применяется. Этот параметр соответствует параметрам RunAsUser и MustRunAsNonRoot политики в документации Kubernetes «Политики безопасности под по пользователям и группам».

volumes -> (list)

Указывает объемы для определения задания, использующего ресурсы Amazon EKS.

(structure)

Указывает объем Amazon EKS для определения задания.

name -> (string)

Имя тома. Имя должно соответствовать требованиям DNS-субдомена. Дополнительную информацию см. в документации Kubernetes «DNS-субдомены».

hostPath -> (structure)

Указывает конфигурацию тома Kubernetes hostPath. Дополнительную информацию см. в документации Kubernetes «hostPath».

path -> (string)

Путь к файлу или каталогу на хосте, который нужно смонтировать в контейнеры в pod.

emptyDir -> (structure)

Указывает конфигурацию тома Kubernetes emptyDir. Дополнительную информацию см. в документации Kubernetes «emptyDir».

medium -> (string)

Носитель для хранения тома. Значение по умолчанию — пустая строка, использующая хранилище узла.

“”

(Значение по умолчанию) Использует дисковое хранилище узла.

“Memory”

Использует объем tmpfs, который поддерживается оперативной памятью узла. Содержимое тома теряется при перезагрузке узла, а любое хранилище в томе учитывается в пределе памяти контейнера.

sizeLimit -> (string)

Максимальный размер тома. По умолчанию максимальный размер не определен.

secret -> (structure)

Указывает конфигурацию тома Kubernetes secret. Дополнительную информацию см. в документации Kubernetes «secret».

secretName -> (string)

Имя секрета. Имя должно соответствовать требованиям DNS-субдомена. Дополнительную информацию см. в документации Kubernetes «DNS-субдомены».

optional -> (boolean)

Указывает, требуется ли указать секрет или ключи секрета.

persistentVolumeClaim -> (structure)

Указывает конфигурацию объёма Kubernetes persistentVolumeClaim, привязанного к persistentVolume. Дополнительную информацию см. в документации Kubernetes «Persistent Volume Claims».

claimName -> (string)

Имя объёма persistentVolumeClaim, привязанного к persistentVolume. Дополнительную информацию см. в документации Kubernetes «Persistent Volume Claims».

readOnly -> (boolean)

Необязательное булево значение, указывающее, является ли монтаж только для чтения. Значение по умолчанию — false. Дополнительную информацию см. в документации Kubernetes «Read Only Mounts».

metadata -> (structure)

Метаданные о Kubernetes pod. Дополнительную информацию см. в документации Kubernetes «Понимание объектов Kubernetes».

labels -> (map)

Ключ-значение, используемые для идентификации, сортировки и организации ресурсов куба. Может содержать до 63 заглавных букв, строчных букв, цифр, дефисов (-) и подчеркиваний (_). Метки можно добавлять или изменять в любое время. Каждый ресурс может иметь несколько меток, но каждый ключ должен быть уникальным для данного объекта.

key -> (string)

value -> (string)

annotations -> (map)

Ключ-значение, используемые для прикрепления произвольных, неидентифицируемых метаданных к объектам Kubernetes. Действительные ключи аннотаций имеют два сегмента: необязательный префикс и имя, разделенные косой чертой (/).

  • Префикс необязателен и должен содержать не более 253 символов. Если он указан, префикс должен быть DNS-субдоменом — серией DNS-меток, разделенных точками (.), и он должен заканчиваться косой чертой (/).
  • Сегмент имени обязателен и должен содержать не более 63 символов. Он может содержать буквенно-цифровые символы ([a-z0-9A-Z]), дефисы (-), подчеркивания (_) и точки (.), но должен начинаться и заканчиваться буквенно-цифровым символом.

Примечание

Значения аннотаций должны содержать не более 255 символов.

Аннотации можно добавлять или изменять в любое время. Каждый ресурс может иметь несколько аннотаций.

key -> (string)

value -> (string)

namespace -> (string)

Пространство имен кластера Amazon EKS. В Kubernetes пространства имен обеспечивают механизм изоляции групп ресурсов в одном кластере. Имена ресурсов должны быть уникальными в рамках пространства имен, но не во всех пространствах имен. Batch помещает под Batch Job в это пространство имен. Если этот параметр указан, его значение не может быть пустым или нулевым. Оно должно соответствовать следующим требованиям:

  • Длина от 1 до 63 символов
  • Не может быть установлено значение по умолчанию
  • Не может начинаться с kube
  • Должен соответствовать следующему регулярному выражению: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

Дополнительную информацию см. в документации Kubernetes «Пространства имен». Это пространство имен может отличаться от пространства имен kubernetesNamespace, заданного в среде вычислений EksConfiguration, но должно иметь одинаковые роли управления доступом на основе ролей (RBAC) как пространство имен среды вычислений kubernetesNamespace. Для заданий с параллельной обработкой на нескольких узлах необходимо использовать одно и то же значение для всех диапазонов узлов.

shareProcessNamespace -> (boolean)

Указывает, совместно используются ли процессы в контейнере или видны ли они другим контейнерам в одном pod. Дополнительную информацию см. в документации Kubernetes «Совмещение пространства имен процессов между контейнерами в pod».

consumableResourceProperties -> (structure)

Содержит список потребляемых ресурсов, необходимых для задания.

consumableResourceList -> (list)

Список потребляемых ресурсов, необходимых заданию.

(structure)

Информация о потребляемом ресурсе, необходимом для выполнения задания.

consumableResource -> (string)

Название или ARN потребляемого ресурса.

quantity -> (long)

Количество потребляемого ресурса, необходимое для задания.

Синтаксис JSON:

{
  "numNodes": integer,
  "mainNode": integer,
  "nodeRangeProperties": [
    {
      "targetNodes": "string",
      "container": {
        "image": "string",
        "vcpus": integer,
        "memory": integer,
        "command": ["string", ...],
        "jobRoleArn": "string",
        "executionRoleArn": "string",
        "volumes": [
          {
            "host": {
              "sourcePath": "string"
            },
            "name": "string",
            "efsVolumeConfiguration": {
              "fileSystemId": "string",
              "rootDirectory": "string",
              "transitEncryption": "ENABLED"|"DISABLED",
              "transitEncryptionPort": integer,
              "authorizationConfig": {
                "accessPointId": "string",
                "iam": "ENABLED"|"DISABLED"
              }
            }
          }
          ...
        ],
        "environment": [
          {
            "name": "string",
            "value": "string"
          }
          ...
        ],
        "mountPoints": [
          {
            "containerPath": "string",
            "readOnly": true|false,
            "sourceVolume": "string"
          }
          ...
        ],
        "readonlyRootFilesystem": true|false,
        "privileged": true|false,
        "ulimits": [
          {
            "hardLimit": integer,
            "name": "string",
            "softLimit": integer
          }
          ...
        ],
        "user": "string",
        "instanceType": "string",
        "resourceRequirements": [
          {
            "value": "string",
            "type": "GPU"|"VCPU"|"MEMORY"
          }
          ...
        ],
        "linuxParameters": {
          "devices": [
            {
              "hostPath": "string",
              "containerPath": "string",
              "permissions": ["READ"|"WRITE"|"MKNOD", ...]
            }
            ...
          ],
          "initProcessEnabled": true|false,
          "sharedMemorySize": integer,
          "tmpfs": [
            {
              "containerPath": "string",
              "size": integer,
              "mountOptions": ["string", ...]
            }
            ...
          ],
          "maxSwap": integer,
          "swappiness": integer
        },
        "logConfiguration": {
          "logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|"awsfirelens",
          "options": {"string": "string"
            ...},
          "secretOptions": [
            {
              "name": "string",
              "valueFrom": "string"
            }
            ...
          ]
        },
        "secrets": [
          {
            "name": "string",
            "valueFrom": "string"
          }
          ...
        ],
        "networkConfiguration": {
          "assignPublicIp": "ENABLED"|"DISABLED"
        },
        "fargatePlatformConfiguration": {
          "platformVersion": "string"
        },
        "enableExecuteCommand": true|false,
        "ephemeralStorage": {
          "sizeInGiB": integer
        },
        "runtimePlatform": {
          "operatingSystemFamily": "string",
          "cpuArchitecture": "string"
        },
        "repositoryCredentials": {
          "credentialsParameter": "string"
        }
      },
      "instanceTypes": ["string", ...],
      "ecsProperties": {
        "taskProperties": [
          {
            "containers": [
              {
                "command": ["string", ...],
                "dependsOn": [
                  {
                    "containerName": "string",
                    "condition": "string"
                  }
                  ...
                ],
                "environment": [
                  {
                    "name": "string",
                    "value": "string"
                  }
                  ...
                ],
                "essential": true|false,
                "firelensConfiguration": {
                  "type": "fluentd"|"fluentbit",
                  "options": {"string": "string"
                    ...}
                },
                "image": "string",
                "linuxParameters": {
                  "devices": [
                    {
                      "hostPath": "string",
                      "containerPath": "string",
                      "permissions": ["READ"|"WRITE"|"MKNOD", ...]
                    }
                    ...
                  ],
                  "initProcessEnabled": true|false,
                  "sharedMemorySize": integer,
                  "tmpfs": [
                    {
                      "containerPath": "string",
                      "size": integer,
                      "mountOptions": ["string", ...]
                    }
                    ...
                  ],
                  "maxSwap": integer,
                  "swappiness": integer
                },
                "logConfiguration": {
                  "logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|"awsfirelens",
                  "options": {"string": "string"
                    ...},
                  "secretOptions": [
                    {
                      "name": "string",
                      "valueFrom": "string"
                    }
                    ...
                  ]
                },
                "mountPoints": [
                  {
                    "containerPath": "string",
                    "readOnly": true|false,
                    "sourceVolume": "string"
                  }
                  ...
                ],
                "name": "string",
                "privileged": true|false,
                "readonlyRootFilesystem": true|false,
                "repositoryCredentials": {
                  "credentialsParameter": "string"
                },
                "resourceRequirements": [
                  {
                    "value": "string",
                    "type": "GPU"|"VCPU"|"MEMORY"
                  }
                  ...
                ],
                "secrets": [
                  {
                    "name": "string",
                    "valueFrom": "string"
                  }
                  ...
                ],
                "ulimits": [
                  {
                    "hardLimit": integer,
                    "name": "string",
                    "softLimit": integer
                  }
                  ...
                ],
                "user": "string"
              }
              ...
            ],
            "ephemeralStorage": {
              "sizeInGiB": integer
            },
            "executionRoleArn": "string",
            "platformVersion": "string",
            "ipcMode": "string",
            "taskRoleArn": "string",
            "pidMode": "string",
            "networkConfiguration": {
              "assignPublicIp": "ENABLED"|"DISABLED"
            },
            "runtimePlatform": {
              "operatingSystemFamily": "string",
              "cpuArchitecture": "string"
            },
            "volumes": [
              {
                "host": {
                  "sourcePath": "string"
                },
                "name": "string",
                "efsVolumeConfiguration": {
                  "fileSystemId": "string",
                  "rootDirectory": "string",
                  "transitEncryption": "ENABLED"|"DISABLED",
                  "transitEncryptionPort": integer,
                  "authorizationConfig": {
                    "accessPointId": "string",
                    "iam": "ENABLED"|"DISABLED"
                  }
                }
              }
              ...
            ],
            "enableExecuteCommand": true|false
          }
          ...
        ]
      },
      "eksProperties": {
        "podProperties": {
          "serviceAccountName": "string",
          "hostNetwork": true|false,
          "dnsPolicy": "string",
          "imagePullSecrets": [
            {
              "name": "string"
            }
            ...
          ],
          "containers": [
            {
              "name": "string",
              "image": "string",
              "imagePullPolicy": "string",
              "command": ["string", ...],
              "args": ["string", ...],
              "env": [
                {
                  "name": "string",
                  "value": "string"
                }
                ...
              ],
              "resources": {
                "limits": {"string": "string"
                  ...},
                "requests": {"string": "string"
                  ...}
              },
              "volumeMounts": [
                {
                  "name": "string",
                  "mountPath": "string",
                  "subPath": "string",
                  "readOnly": true|false
                }
                ...
              ],
              "securityContext": {
                "runAsUser": long,
                "runAsGroup": long,
                "privileged": true|false,
                "allowPrivilegeEscalation": true|false,
                "readOnlyRootFilesystem": true|false,
                "runAsNonRoot": true|false
              }
            }
            ...
          ],
          "initContainers": [
            {
              "name": "string",
              "image": "string",
              "imagePullPolicy": "string",
              "command": ["string", ...],
              "args": ["string", ...],
              "env": [
                {
                  "name": "string",
                  "value": "string"
                }
                ...
              ],
              "resources": {
                "limits": {"string": "string"
                  ...},
                "requests": {"string": "string"
                  ...}
              },
              "volumeMounts": [
                {
                  "name": "string",
                  "mountPath": "string",
                  "subPath": "string",
                  "readOnly": true|false
                }
                ...
              ],
              "securityContext": {
                "runAsUser": long,
                "runAsGroup": long,
                "privileged": true|false,
                "allowPrivilegeEscalation": true|false,
                "readOnlyRootFilesystem": true|false,
                "runAsNonRoot": true|false
              }
            }
            ...
          ],
          "volumes": [
            {
              "name": "string",
              "hostPath": {
                "path": "string"
              },
              "emptyDir": {
                "medium": "string",
                "sizeLimit": "string"
              },
              "secret": {
                "secretName": "string",
                "optional": true|false
              },
              "persistentVolumeClaim": {
                "claimName": "string",
                "readOnly": true|false
              }
            }
            ...
          ],
          "metadata": {
            "labels": {"string": "string"
              ...},
            "annotations": {"string": "string"
              ...},
            "namespace": "string"
          },
          "shareProcessNamespace": true|false
        }
      },
      "consumableResourceProperties": {
        "consumableResourceList": [
          {
            "consumableResource": "string",
            "quantity": long
          }
          ...
        ]
      }
    }
    ...
  ]
}

--retry-strategy (structure)

Стратегия повторной попытки для завершившихся с ошибкой заданий, отправленных с этим определением задания. Любая стратегия повторной попытки, указанная во время операции SubmitJob, переопределяет стратегию повторной попытки, определенную здесь. Если задание завершилось из-за таймаута, оно не повторяется.

attempts -> (integer)

Количество попыток перевода задания в состояние RUNNABLE. Можно указать от 1 до 10 попыток. Если значение attempts больше одного, задание повторяется при ошибке столько же раз, сколько указывает это значение.

evaluateOnExit -> (list)

Массив до 5 объектов, определяющих условия, при которых задания повторяются или завершаются с ошибкой. Если этот параметр указан, то необходимо также указать параметр attempts. Если ни одно из перечисленных условий не соответствует, то задание повторяется.

(structure)

Указывает массив до 5 условий, которые должны быть выполнены, и действие, которое нужно выполнить (RETRY или EXIT), если все условия выполнены. Если ни одно из условий EvaluateOnExit в RetryStrategy не соответствует, то задание повторяется.

onStatusReason -> (string)

Содержит шаблон поиска, который соответствует значению StatusReason, возвращаемому для задания. Шаблон может содержать до 512 символов. Он может содержать буквы, цифры, точки (.), двоеточия (:) и пробелы (включая пробелы или табуляцию). Он может необязательно заканчиваться звездочкой (*), чтобы только начало строки было точным совпадением.

onReason -> (string)

Содержит шаблон поиска, который соответствует значению Reason, возвращаемому для задания. Шаблон может содержать до 512 символов. Он может содержать буквы, цифры, точки (.), двоеточия (:) и пробелы (включая пробелы и табуляцию). Он может необязательно заканчиваться звездочкой (*), чтобы только начало строки было точным совпадением.

onExitCode -> (string)

Содержит шаблон поиска, который соответствует десятичному представлению ExitCode, возвращаемому для задания. Шаблон может иметь длину до 512 символов. Он может содержать только цифры и может заканчиваться звездочкой (*), чтобы только начало строки было точным совпадением.

Строка может содержать до 512 символов.

action -> (string)

Определяет действие, которое нужно выполнить, если все указанные условия (onStatusReason, onReason и onExitCode) выполнены. Значения не чувствительны к регистру.

Сокращенный синтаксис:

attempts=integer,evaluateOnExit=[{onStatusReason=string,onReason=string,onExitCode=string,action=string},{onStatusReason=string,onReason=string,onExitCode=string,action=string}]

Синтаксис JSON:

{
  "attempts": integer,
  "evaluateOnExit": [
    {
      "onStatusReason": "string",
      "onReason": "string",
      "onExitCode": "string",
      "action": "RETRY"|"EXIT"
    }
    ...
  ]
}

--propagate-tags | --no-propagate-tags (boolean)

Указывает, следует ли распространять теги из задания или определения задания на соответствующую задачу Amazon ECS. Если значение не указано, теги не распространяются. Теги могут распространяться только на задачи во время создания задач. Для тегов с одинаковым именем теги задания имеют приоритет над тегами определений задания. Если общее количество объединенных тегов из задания и определения задания превышает 50, задание переводится в состояние FAILED.

Примечание

Если задание выполняется на ресурсах Amazon EKS, то вы не должны указывать propagateTags .

--timeout (структура)

Настройка таймаута для заданий, которые отправляются с этим определением задания, после чего Batch завершает задания, если они не завершены. Если задание завершается из-за таймаута, оно не повторяется. Минимальное значение таймаута составляет 60 секунд. Любая настройка таймаута, указанная во время операции SubmitJob, переопределяет настройку таймаута, определенную здесь. Дополнительную информацию см. в разделе «Таймауты заданий» в руководстве пользователя Batch .

attemptDurationSeconds -> (целое число)

Время таймаута задания (в секундах), которое измеряется с момента отметки времени начала выполнения задания startedAt. После истечения этого времени Batch завершает задания, если они не завершены. Минимальное значение таймаута составляет 60 секунд.

Для заданий массива таймаут применяется к дочерним заданиям, а не к родительскому заданию массива.

Для заданий многоузловой параллельной обработки (MNP) таймаут применяется ко всему заданию, а не к отдельным узлам.

Сокращённый синтаксис:

attemptDurationSeconds=integer

Синтаксис JSON:

{
  "attemptDurationSeconds": integer
}

--tags (словарь)

Теги, которые вы применяете к определению задания, чтобы помочь в категоризации и организации ваших ресурсов. Каждый тег состоит из ключа и необязательного значения. Дополнительную информацию см. в разделе «Тегирование ресурсов Amazon Web Services» в руководстве пользователя Batch .

key -> (строка)

value -> (строка)

Сокращённый синтаксис:

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "string"
  ...}

--platform-capabilities (список)

Функциональные возможности платформы, требуемые для определения задания. Если значение не указано, оно по умолчанию равно EC2 . Для запуска задания на ресурсах Fargate укажите FARGATE .

Примечание

Если задание выполняется на ресурсах Amazon EKS, то вы не должны указывать platformCapabilities .

(строка)

Синтаксис:

"string" "string" ...

Where valid values are:
  EC2
  FARGATE

--eks-properties (структура)

Объект со свойствами, специфичными для заданий на основе Amazon EKS. Его нельзя указывать для определений заданий на основе Amazon ECS.

podProperties -> (структура)

Свойства ресурсов Kubernetes-подов задания.

serviceAccountName -> (строка)

Имя учетной записи сервиса, используемой для запуска под. Дополнительную информацию см. в разделах «Учетные записи сервиса Kubernetes» и «Настройка учетной записи сервиса Kubernetes для перехода в роль IAM» в руководстве пользователя Amazon EKS, а также «Настройка учетных записей сервисов для под» в документации Kubernetes.

hostNetwork -> (булево)

Указывает, использует ли под IP-адрес сети хоста. Значение по умолчанию — true . Установка этого значения в false включает модель сетевого взаимодействия Kubernetes-подов. Большинство рабочих нагрузок Batch являются только исходящими и не требуют накладных расходов на выделение IP-адреса для каждого под для входящих подключений. Дополнительную информацию см. в разделах «Пространства имен хостов» и «Сетевое взаимодействие под» в документации Kubernetes.

dnsPolicy -> (строка)

Политика DNS для под. Значение по умолчанию — ClusterFirst . Если параметр hostNetwork не указан, значение по умолчанию — ClusterFirstWithHostNet . ClusterFirst указывает, что любой запрос DNS, не соответствующий настроенному суффиксу домена кластера, передаётся в upstream-сервер имен, унаследованный от узла. Дополнительную информацию см. в разделе «Политика DNS под» в документации Kubernetes.

Допустимые значения: Default | ClusterFirst | ClusterFirstWithHostNet

imagePullSecrets -> (список)

Ссылка на ресурс Kubernetes secret. Он содержит список секретов. Эти секреты помогают получить доступ к извлечению изображений из частного репозитория.

ImagePullSecret$name требуется при использовании этого объекта.

(структура)

Ссылка на ресурс Kubernetes secret. Это имя секрета должно начинаться и заканчиваться буквенно-цифровым символом, обязательно быть строчным, может содержать точки (.) и дефисы (-), а также не может содержать более 253 символов.

name -> (строка)

Предоставляет уникальный идентификатор для ImagePullSecret. Этот объект требуется при использовании EksPodProperties$imagePullSecrets.

containers -> (список)

Свойства контейнера, используемого в узле Amazon EKS Pod.

Примечание

Этот объект ограничен 10 элементами.

(структура)

Свойства контейнера EKS используются в определениях задач для задач на основе Amazon EKS для описания свойств узла контейнера в под, запускаемом в рамках задачи. Это не может быть указано для определений задач на основе Amazon ECS.

name -> (строка)

Имя контейнера. Если имя не указано, используется имя по умолчанию «Default ». Каждый контейнер в под должен иметь уникальное имя.

image -> (строка)

Изображение Docker, используемое для запуска контейнера.

imagePullPolicy -> (строка)

Политика извлечения образа для контейнера. Поддерживаемые значения — Always , IfNotPresent и Never . По умолчанию используется значение IfNotPresent . Однако, если указана метка :latest , значение по умолчанию — Always . Дополнительную информацию см. в документации Kubernetes по обновлению изображений.

command -> (список)

Точка входа для контейнера. Она не выполняется в оболочке. Если она не указана, используется значение ENTRYPOINT изображения контейнера. Ссылки на переменные среды расшифровываются с использованием среды контейнера.

Если переменная среды, на которую есть ссылка, не существует, ссылка в команде не изменяется. Например, если ссылка указывает на «$(NAME1) », а переменная среды NAME1 не существует, строка команды останется «$(NAME1) ». $$ заменяется на $ , и полученная строка не расшифровывается. Например, $$(VAR_NAME) передается как $(VAR_NAME) независимо от того, существует ли переменная среды VAR_NAME . Точка входа не может быть обновлена. Дополнительную информацию см. в разделе ENTRYPOINT в справочнике Dockerfile и Определение команды и аргументов для контейнера и Точка входа в документации Kubernetes.

(строка)

args -> (список)

Массив аргументов для точки входа. Если он не указан, используется значение CMD изображения контейнера. Это соответствует элементу args в разделе «Точка входа» Pod в Kubernetes. Ссылки на переменные среды расшифровываются с использованием среды контейнера.

Если переменная среды, на которую есть ссылка, не существует, ссылка в команде не изменяется. Например, если ссылка указывает на «$(NAME1) », а переменная среды NAME1 не существует, строка команды останется «$(NAME1) ». $$ заменяется на $ , и полученная строка не расшифровывается. Например, $$(VAR_NAME) передается как $(VAR_NAME) независимо от того, существует ли переменная среды VAR_NAME . Дополнительную информацию см. в справочнике Dockerfile: CMD и Определение команды и аргументов для под в документации Kubernetes.

(строка)

env -> (список)

Переменные среды, передаваемые контейнеру.

Примечание

Переменные среды не могут начинаться с «AWS_BATCH ». Эта соглашение об именовании зарезервировано для переменных, которые устанавливает Batch.

(структура)

Переменная среды.

name -> (строка)

Имя переменной среды.

value -> (строка)

Значение переменной среды.

resources -> (структура)

Тип и количество ресурсов, назначаемых контейнеру. Поддерживаемые ресурсы включают memory , cpu и nvidia.com/gpu . Дополнительную информацию см. в разделе Управление ресурсами для под и контейнеров в документации Kubernetes.

limits -> (карта)

Тип и количество ресурсов, резервируемых для контейнера. Значения зависят от указанного name . Ресурсы можно запросить, используя либо объекты limits , либо requests.

memory

Максимальное значение памяти (в МБ) для контейнера, используя целые числа с суффиксом «МБ». Если контейнер попытается превысить заданное значение памяти, контейнер будет завершен. Для задачи необходимо указать как минимум 4 МБ памяти. memory может быть указано в limits , requests или обоих. Если memory указано в обоих местах, значение, указанное в limits , должно быть равно значению, указанному в requests.

Примечание

Для максимального использования ресурсов предоставьте своим задачам как можно больше памяти для конкретного типа экземпляра, который вы используете. Как это сделать, см. в разделе Управление памятью в Руководстве пользователя Batch.

cpu

Количество ЦП, резервируемых для контейнера. Значения должны быть четным кратным 0.25 . cpu может быть указано в limits , requests или обоих. Если cpu указано в обоих местах, значение, указанное в limits , должно быть по крайней мере таким же большим, как значение, указанное в requests.

nvidia.com/gpu

Количество графических процессоров, резервируемых для контейнера. Значения должны быть целыми числами. memory может быть указано в limits , requests или обоих. Если memory указано в обоих местах, значение, указанное в limits , должно быть равно значению, указанному в requests.

key -> (строка)

value -> (строка)

requests -> (карта)

Тип и количество ресурсов, запрашиваемых для контейнера. Значения зависят от указанного name . Ресурсы можно запросить, используя либо объекты limits , либо requests.

memory

Максимальное значение памяти (в МБ) для контейнера, используя целые числа с суффиксом «МБ». Если контейнер попытается превысить заданное значение памяти, контейнер будет завершен. Для задачи необходимо указать как минимум 4 МБ памяти. memory может быть указано в limits , requests или обоих. Если memory указано в обоих местах, значение, указанное в limits , должно быть равно значению, указанному в requests.

Примечание

Если вы пытаетесь максимизировать использование ресурсов, предоставляя своим задачам как можно больше памяти для определенного типа экземпляра, см. раздел Управление памятью в Руководстве пользователя Batch.

cpu

Количество ЦП, резервируемых для контейнера. Значения должны быть четным кратным 0.25 . cpu может быть указано в limits , requests или обоих. Если cpu указано в обоих местах, значение, указанное в limits , должно быть по крайней мере таким же большим, как значение, указанное в requests.

nvidia.com/gpu

Количество графических процессоров, резервируемых для контейнера. Значения должны быть целыми числами. nvidia.com/gpu может быть указано в limits , requests или обоих. Если nvidia.com/gpu указано в обоих местах, значение, указанное в limits , должно быть равно значению, указанному в requests.

key -> (строка)

value -> (строка)

volumeMounts -> (список)

Подмонтированные тома для контейнера. Batch поддерживает типы томов emptyDir , hostPath и secret . Дополнительную информацию о томах и монтировании томов в Kubernetes см. в разделе Тома в документации Kubernetes.

(структура)

Подмонтированные тома для контейнера для задачи Amazon EKS. Дополнительную информацию о томах и монтировании томов в Kubernetes см. в разделе Тома в документации Kubernetes.

name -> (строка)

Имя подмонтированного тома. Оно должно совпадать с именем одного из томов в под.

mountPath -> (строка)

Путь в контейнере, где монтируется том.

subPath -> (строка)

Подпуть внутри указанного тома вместо его корня.

readOnly -> (логическое значение)

Если это значение true , контейнер имеет доступ только для чтения к тому. В противном случае контейнер может записывать в том. Значение по умолчанию — false.

securityContext -> (структура)

Контекст безопасности для задания. Дополнительную информацию см. в разделе Настройка контекста безопасности для под или контейнера в документации Kubernetes.

runAsUser -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора пользователя (uid). Если этот параметр не указан, используется пользователь, указанный в метаданных образа. Данный параметр соответствует RunAsUser и MustRanAs политике в разделе Пользователи и группы в политиках безопасности Pods в документации Kubernetes.

runAsGroup -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора группы (gid). Если этот параметр не указан, используется группа, указанная в метаданных образа. Этот параметр соответствует RunAsGroup и MustRunAs политике в разделе Пользователи и группы в политиках безопасности Pods в документации Kubernetes.

privileged -> (boolean)

При указании этого параметра контейнер получает повышенные разрешения на экземпляре хост-контейнера. Уровень разрешений аналогичен разрешениям пользователя root. Значение по умолчанию — false. Этот параметр соответствует privileged политике в разделе Разрешения в политиках безопасности Pods в документации Kubernetes.

allowPrivilegeEscalation -> (boolean)

Разрешает ли контейнеру или Kubernetes pod получить больше привилегий, чем у родительского процесса. Значение по умолчанию — false.

readOnlyRootFilesystem -> (boolean)

При указании этого параметра контейнеру предоставляется доступ в режиме только для чтения к файловой системе корня. Значение по умолчанию — false. Этот параметр соответствует ReadOnlyRootFilesystem политике в разделе Тома и файловые системы в политиках безопасности Pods в документации Kubernetes.

runAsNonRoot -> (boolean)

При указании этого параметра контейнер запускается пользователем с идентификатором, отличным от 0 (uid). Если этот параметр не указан, такое правило не применяется. Этот параметр соответствует RunAsUser и MustRunAsNonRoot политике в разделе Пользователи и группы в политиках безопасности Pods в документации Kubernetes.

initContainers -> (list)

Эти контейнеры выполняются до контейнеров приложения, всегда доводятся до завершения и должны завершиться успешно перед запуском следующего контейнера. Эти контейнеры регистрируются с агентом Amazon EKS Connector и сохраняют информацию о регистрации в хранилище данных Kubernetes. Для получения дополнительной информации см. Контейнеры инициализации в документации Kubernetes.

Примечание

Этот объект ограничен 10 элементами.

(структура)

Свойства контейнеров EKS используются в определениях задач для определений задач на основе Amazon EKS для описания свойств узла контейнера в под, который запускается как часть задачи. Это не может быть указано для определений задач на основе Amazon ECS.

name -> (строка)

Имя контейнера. Если имя не указано, используется имя по умолчанию «Default ». Каждый контейнер в под должен иметь уникальное имя.

image -> (строка)

Изображение Docker, используемое для запуска контейнера.

imagePullPolicy -> (строка)

Политика извлечения образа для контейнера. Поддерживаемые значения — Always , IfNotPresent и Never . По умолчанию используется значение IfNotPresent . Однако, если указан тег :latest , значение по умолчанию — Always . Для получения дополнительной информации см. Обновление изображений в документации Kubernetes.

command -> (список)

Точка входа для контейнера. Это не выполняется в оболочке. Если это не указано, используется ENTRYPOINT образа контейнера. Ссылки на переменные среды расширяются с использованием среды контейнера.

Если указанная переменная среды не существует, ссылка в команде не изменяется. Например, если ссылка относится к «$(NAME1) », а переменная среды NAME1 не существует, строка команды останется «$(NAME1) ». $$ заменяется на $, и полученная строка не расширяется. Например, $$(VAR_NAME) будет передано как $(VAR_NAME), независимо от существования переменной среды VAR_NAME. Точку входа нельзя обновить. Для получения дополнительной информации см. ENTRYPOINT в справочнике Dockerfile и Определение команды и аргументов для контейнера и Точка входа в документации Kubernetes.

(строка)

args -> (список)

Массив аргументов для точки входа. Если это не указано, используется CMD образа контейнера. Это соответствует члену args в разделе Точка входа в Под в Kubernetes. Ссылки на переменные среды расширяются с использованием среды контейнера.

Если указанная переменная среды не существует, ссылка в команде не изменяется. Например, если ссылка относится к «$(NAME1) », а переменная среды NAME1 не существует, строка команды останется «$(NAME1) ». $$ заменяется на $, и полученная строка не расширяется. Например, $$(VAR_NAME) передаётся как $(VAR_NAME), независимо от существования переменной среды VAR_NAME. Для получения дополнительной информации см. Справочник Dockerfile: CMD и Определение команды и аргументов для под в документации Kubernetes.

(строка)

env -> (список)

Переменные среды, передаваемые контейнеру.

Примечание

Переменные среды не могут начинаться с «AWS_BATCH ». Эта соглашение об именовании зарезервировано для переменных, которые устанавливает Batch.

(структура)

Переменная среды.

name -> (строка)

Имя переменной среды.

value -> (строка)

Значение переменной среды.

resources -> (структура)

Тип и количество ресурсов, назначаемых контейнеру. Поддерживаемые ресурсы включают memory , cpu и nvidia.com/gpu . Для получения дополнительной информации см. Управление ресурсами для под и контейнеров в документации Kubernetes.

limits -> (карта)

Тип и количество ресурсов, резервируемых для контейнера. Значения зависят от указанного name . Ресурсы могут быть запрошены с помощью объектов limits или requests.

memory

Жесткое ограничение памяти (в МиБ) для контейнера, используя целые числа с суффиксом «Ми». Если контейнер пытается превысить указанную память, контейнер завершается. Для задачи необходимо указать как минимум 4 МиБ памяти. memory может быть указано в limits , requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

Примечание

Для максимального использования ресурсов предоставьте задачам как можно больше памяти для конкретного типа экземпляра, который вы используете. Узнайте как в разделе Управление памятью в Руководстве пользователя Batch.

cpu

Количество ЦП, зарезервированных для контейнера. Значения должны быть целыми кратными 0.25. cpu можно указать в limits , requests или обоих. Если cpu указано в обоих местах, то значение, указанное в limits, должно быть не меньше значения, указанного в requests.

nvidia.com/gpu

Количество графических процессоров, зарезервированных для контейнера. Значения должны быть целыми числами. memory может быть указано в limits , requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

key -> (строка)

value -> (строка)

requests -> (карта)

Тип и количество ресурсов, запрашиваемых для контейнера. Значения зависят от указанного name . Ресурсы могут быть запрошены с помощью объектов limits или requests.

memory

Жесткое ограничение памяти (в МиБ) для контейнера, используя целые числа с суффиксом «Ми». Если контейнер пытается превысить указанную память, контейнер завершается. Для задачи необходимо указать как минимум 4 МиБ памяти. memory может быть указано в limits , requests или обоих. Если memory указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

Примечание

Если вы пытаетесь максимизировать использование ресурсов, предоставляя задачам как можно больше памяти для определенного типа экземпляра, обратитесь к разделу Управление памятью в Руководстве пользователя Batch.

cpu

Количество ЦП, зарезервированных для контейнера. Значения должны быть целыми кратными 0.25. cpu можно указать в limits , requests или обоих. Если cpu указано в обоих местах, то значение, указанное в limits, должно быть не меньше значения, указанного в requests.

nvidia.com/gpu

Количество графических процессоров, зарезервированных для контейнера. Значения должны быть целыми числами. nvidia.com/gpu может быть указано в limits , requests или обоих. Если nvidia.com/gpu указано в обоих местах, то значение, указанное в limits, должно быть равно значению, указанному в requests.

key -> (строка)

value -> (строка)

volumeMounts -> (список)

Точки монтирования томов для контейнера. Batch поддерживает типы томов emptyDir , hostPath и secret . Для получения дополнительной информации о томах и точках монтирования томов в Kubernetes см. Тома в документации Kubernetes.

(структура)

Точки монтирования томов для контейнера для задачи Amazon EKS. Для получения дополнительной информации о томах и точках монтирования томов в Kubernetes см. Тома в документации Kubernetes.

name -> (строка)

Имя точки монтирования тома. Оно должно совпадать с именем одного из томов в под.

mountPath -> (строка)

Путь в контейнере, где монтируется том.

subPath -> (строка)

Подпуть внутри указанного тома вместо его корня.

readOnly -> (логическое значение)

Если это значение — true , контейнер имеет только чтение для тома. В противном случае контейнер может записывать в том. Значение по умолчанию — false.

securityContext -> (структура)

Контекст безопасности для задания. Дополнительную информацию см. в разделе Настройка контекста безопасности для под или контейнера в документации Kubernetes.

runAsUser -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора пользователя (uid). Если этот параметр не указан, по умолчанию используется пользователь, указанный в метаданных изображения. Этот параметр соответствует параметрам RunAsUser и MustRanAs политики в разделе Пользователи и группы политик безопасности под в документации Kubernetes.

runAsGroup -> (long)

При указании этого параметра контейнер запускается от имени указанного идентификатора группы (gid). Если этот параметр не указан, по умолчанию используется группа, указанная в метаданных изображения. Этот параметр соответствует параметрам RunAsGroup и MustRunAs политики в разделе Пользователи и группы политик безопасности под в документации Kubernetes.

privileged -> (boolean)

При указании этого параметра контейнер получает повышенные разрешения на хост-контейнер. Уровень разрешений аналогичен разрешениям пользователя root. Значение по умолчанию - false. Этот параметр соответствует политике privileged в разделе Привилегированные политики безопасности под в документации Kubernetes.

allowPrivilegeEscalation -> (boolean)

Разрешает ли контейнеру или Kubernetes-поду получить больше привилегий, чем у родительского процесса. Значение по умолчанию - false.

readOnlyRootFilesystem -> (boolean)

При указании этого параметра контейнер получает доступ только для чтения к своей корневой файловой системе. Значение по умолчанию - false. Этот параметр соответствует политике ReadOnlyRootFilesystem в разделе Тома и файловые системы политик безопасности под в документации Kubernetes.

runAsNonRoot -> (boolean)

При указании этого параметра контейнер запускается от имени пользователя с идентификатором, отличным от 0 (uid). Если этот параметр не указан, такая политика не применяется. Этот параметр соответствует параметрам RunAsUser и MustRunAsNonRoot политики в разделе Пользователи и группы политик безопасности под в документации Kubernetes.

volumes -> (list)

Указывает тома для определения задания, использующего ресурсы Amazon EKS.

(структура)

Указывает том Amazon EKS для определения задания.

name -> (string)

Имя тома. Имя должно быть допустимым именем поддомена DNS. Дополнительную информацию см. в разделе Имена поддоменов DNS в документации Kubernetes.

hostPath -> (structure)

Указывает конфигурацию тома Kubernetes hostPath. Дополнительную информацию см. в разделе hostPath в документации Kubernetes.

path -> (string)

Путь к файлу или каталогу на хосте, который нужно смонтировать в контейнеры под.

emptyDir -> (structure)

Указывает конфигурацию тома Kubernetes emptyDir. Дополнительную информацию см. в разделе emptyDir в документации Kubernetes.

medium -> (string)

Носитель для хранения тома. Значение по умолчанию — пустая строка, использующая хранилище узла.

“”

(По умолчанию) Используйте дисковое хранилище узла.

“Memory”

Используйте том tmpfs, поддерживаемый ОЗУ узла. Содержимое тома теряется при перезагрузке узла, и любое хранилище в томе учитывается в пределе памяти контейнера.

sizeLimit -> (string)

Максимальный размер тома. По умолчанию максимальный размер не определен.

secret -> (structure)

Указывает конфигурацию тома Kubernetes secret. Дополнительную информацию см. в разделе secret в документации Kubernetes.

secretName -> (string)

Имя секрета. Имя должно быть допустимым именем поддомена DNS. Дополнительную информацию см. в разделе Имена поддоменов DNS в документации Kubernetes.

optional -> (boolean)

Указывает, должен ли секрет или ключи секрета быть определены.

persistentVolumeClaim -> (structure)

Указывает конфигурацию Kubernetes-тома, привязанного к persistentVolume. Дополнительную информацию см. в разделе Постоянные объемы требований в документации Kubernetes.

claimName -> (string)

Имя persistentVolumeClaim, привязанного к persistentVolume. Дополнительную информацию см. в разделе Постоянные объемы требований в документации Kubernetes.

readOnly -> (boolean)

Необязательное булево значение, указывающее, является ли монтирование только для чтения. По умолчанию значение false. Дополнительную информацию см. в разделе Моунты только для чтения в документации Kubernetes.

metadata -> (structure)

Метаданные о Kubernetes-поде. Дополнительную информацию см. в разделе Понимание Kubernetes-объектов в документации Kubernetes.

labels -> (map)

Ключево-значные пары, используемые для идентификации, сортировки и организации ресурсов куба. Может содержать до 63 заглавных и строчных букв, цифр, дефисов (-) и подчеркиваний (_). Метки можно добавлять или изменять в любое время. Каждый ресурс может иметь несколько меток, но каждый ключ должен быть уникальным для данного объекта.

key -> (string)

value -> (string)

annotations -> (map)

Ключево-значные пары, используемые для добавления произвольных, не идентифицирующих метаданных к объектам Kubernetes. Валидные ключи аннотаций имеют два сегмента: необязательный префикс и имя, разделенные косой чертой (/).

  • Префикс необязателен и должен быть не более 253 символов. Если указан, префикс должен быть поддоменом DNS — серией меток DNS, разделенных точками (.), и должен заканчиваться косой чертой (/).
  • Сегмент имени обязателен и должен быть не более 63 символов. Он может содержать буквенно-цифровые символы ([a-z0-9A-Z]), дефисы (-), подчеркивания (_) и точки (.), но должен начинаться и заканчиваться буквенно-цифровым символом.

Примечание

Значения аннотаций должны быть не более 255 символов.

Аннотации можно добавлять или изменять в любое время. Каждый ресурс может иметь несколько аннотаций.

key -> (string)

value -> (string)

namespace -> (string)

Имя пространства Amazon EKS-кластера. В Kubernetes пространства имен обеспечивают механизм изоляции групп ресурсов в одном кластере. Имена ресурсов должны быть уникальными в пределах одного пространства имен, но не в разных пространствах имен. Задания Batch размещают контейнеры Batch Job в этом пространстве имен. Если этот параметр указан, значение не может быть пустым или нулевым. Оно должно соответствовать следующим требованиям:

  • Длина от 1 до 63 символов
  • Не может быть установлено значение «default»
  • Не может начинаться с kube
  • Должно соответствовать следующему регулярному выражению: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

Дополнительную информацию см. в разделе Пространства имен в документации Kubernetes. Это пространство имен может отличаться от пространства имен, заданного в среде вычислений EksConfiguration, но должно иметь одинаковые роли управления доступом на основе ролей (RBAC) как пространство имен среды вычислений kubernetesNamespace. Для заданий с параллельным выполнением на нескольких узлах необходимо указать одинаковое значение для всех диапазонов узлов.

shareProcessNamespace -> (boolean)

Указывает, разделяют ли процессы в контейнере или видимы другим контейнерам в одном под. Дополнительную информацию см. в разделе Разделение пространства имен процесса между контейнерами в одном под.

Синтаксис JSON:

{
  "podProperties": {
    "serviceAccountName": "string",
    "hostNetwork": true|false,
    "dnsPolicy": "string",
    "imagePullSecrets": [
      {
        "name": "string"
      }
      ...
    ],
    "containers": [
      {
        "name": "string",
        "image": "string",
        "imagePullPolicy": "string",
        "command": ["string", ...],
        "args": ["string", ...],
        "env": [
          {
            "name": "string",
            "value": "string"
          }
          ...
        ],
        "resources": {
          "limits": {"string": "string"
            ...},
          "requests": {"string": "string"
            ...}
        },
        "volumeMounts": [
          {
            "name": "string",
            "mountPath": "string",
            "subPath": "string",
            "readOnly": true|false
          }
          ...
        ],
        "securityContext": {
          "runAsUser": long,
          "runAsGroup": long,
          "privileged": true|false,
          "allowPrivilegeEscalation": true|false,
          "readOnlyRootFilesystem": true|false,
          "runAsNonRoot": true|false
        }
      }
      ...
    ],
    "initContainers": [
      {
        "name": "string",
        "image": "string",
        "imagePullPolicy": "string",
        "command": ["string", ...],
        "args": ["string", ...],
        "env": [
          {
            "name": "string",
            "value": "string"
          }
          ...
        ],
        "resources": {
          "limits": {"string": "string"
            ...},
          "requests": {"string": "string"
            ...}
        },
        "volumeMounts": [
          {
            "name": "string",
            "mountPath": "string",
            "subPath": "string",
            "readOnly": true|false
          }
          ...
        ],
        "securityContext": {
          "runAsUser": long,
          "runAsGroup": long,
          "privileged": true|false,
          "allowPrivilegeEscalation": true|false,
          "readOnlyRootFilesystem": true|false,
          "runAsNonRoot": true|false
        }
      }
      ...
    ],
    "volumes": [
      {
        "name": "string",
        "hostPath": {
          "path": "string"
        },
        "emptyDir": {
          "medium": "string",
          "sizeLimit": "string"
        },
        "secret": {
          "secretName": "string",
          "optional": true|false
        },
        "persistentVolumeClaim": {
          "claimName": "string",
          "readOnly": true|false
        }
      }
      ...
    ],
    "metadata": {
      "labels": {"string": "string"
        ...},
      "annotations": {"string": "string"
        ...},
      "namespace": "string"
    },
    "shareProcessNamespace": true|false
  }
}

--ecs-properties (структура)

Объект со свойствами, специфичными для заданий на основе Amazon ECS. Этот параметр не должен указываться для заданий на основе Amazon EKS.

taskProperties -> (список)

Объект, содержащий свойства определения задачи Amazon ECS для задания.

Примечание

В настоящее время этот объект ограничен одним элементом задачи. Однако элемент задачи может запускать до 10 контейнеров.

(структура)

Свойства определения задачи, описывающие определения контейнеров и томов задачи Amazon ECS. Вы можете указать, какие образы Docker использовать, необходимые ресурсы и другие конфигурации, связанные с запуском определения задачи через Amazon ECS-сервис или задачу.

containers -> (список)

Этот объект представляет собой список контейнеров.

(структура)

Свойства контейнеров используются для определений заданий на основе Amazon ECS. Эти свойства описывают контейнер, запускаемый в рамках задания.

command -> (список)

Команда, передаваемая контейнеру. Этот параметр соответствует Cmd в разделе «Создание контейнера» удаленного API Docker и параметру COMMAND параметру к команде docker run. Дополнительную информацию см. в справке по Dockerfile: CMD.

(строка)

dependsOn -> (список)

Список контейнеров, от которых зависит данный контейнер.

(структура)

Список контейнеров, от которых зависит данная задача.

containerName -> (строка)

Уникальный идентификатор контейнера.

condition -> (строка)

Условие зависимости контейнера. Доступные условия и их поведение:

  • START - Это условие имитирует поведение связей и томов сегодня. Оно проверяет, что зависимый контейнер запущен до разрешения запуска других контейнеров.
  • COMPLETE - Это условие проверяет, что зависимый контейнер завершил выполнение (вышел) до разрешения запуска других контейнеров. Это может быть полезно для необязательных контейнеров, выполняющих скрипт, а затем завершающих работу. Это условие не может быть установлено для основного контейнера.
  • SUCCESS - Это условие такое же, как COMPLETE, но также требует, чтобы контейнер завершился с нулевым статусом. Это условие не может быть установлено для основного контейнера.

environment -> (список)

Переменные среды, передаваемые контейнеру. Этот параметр соответствует параметру Env в разделе «Создание контейнера» удаленного API Docker и параметру --env к команде docker run.

Предупреждение

Не рекомендуется использовать текстовые переменные среды для конфиденциальной информации, например, данных для аутентификации.

Примечание

Переменные среды не могут начинаться с AWS_BATCH. Эта соглашение об именовании зарезервировано для переменных, которые устанавливаются Batch.

(структура)

Объект пары «ключ-значение».

name -> (строка)

Имя пары «ключ-значение». Для переменных среды это имя переменной среды.

value -> (строка)

Значение пары «ключ-значение». Для переменных среды это значение переменной среды.

essential -> (булево)

Если для параметра essential контейнера установлено значение true, и этот контейнер выходит из строя или останавливается по любой причине, все другие контейнеры, входящие в задачу, остановятся. Если параметр essential контейнера установлен в значение false, его выход из строя не повлияет на остальные контейнеры в задаче. Если этот параметр опущен, контейнер считается основным.

Все задания должны иметь как минимум один основной контейнер. Если у вас приложение, состоящее из нескольких контейнеров, сгруппируйте контейнеры, используемые для одной цели, в компоненты, а различные компоненты разделите на несколько определений задач. Дополнительную информацию см. в разделе «Архитектура приложений» в руководстве разработчика Amazon Elastic Container Service.

firelensConfiguration -> (структура)

Конфигурация FireLens для контейнера. Используется для указания и настройки маршрутизатора журналов для журналов контейнера. Дополнительную информацию см. в разделе «Настройка маршрутизации журналов» в руководстве разработчика Amazon Elastic Container Service.

type -> (строка)

Маршрутизатор журналов для использования. Допустимые значения: fluentd или fluentbit.

options -> (карта)

Параметры, используемые при настройке маршрутизатора журналов. Это поле необязательно и может использоваться для указания файла конфигурации пользовательского конфигурации или добавления дополнительных метаданных, таких как данные задачи, определения задачи, кластера и экземпляра контейнера, в событие журнала. Если указано, используется синтаксис "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}. Дополнительную информацию см. в разделе «Создание определения задачи с использованием конфигурации FireLens» в руководстве разработчика Amazon Elastic Container Service.

key -> (строка)

value -> (строка)

image -> (строка)

Изображение, используемое для запуска контейнера. Эта строка передается непосредственно демону Docker. По умолчанию доступны образы в реестре Docker Hub. Другие хранилища указываются с помощью repository-url/image:tag или repository-url/image@digest. Разрешается до 255 символов (строчные и прописные буквы), цифр, дефисов, подчеркиваний, двоеточий, точек, слешей и знаков решетки. Этот параметр соответствует Image в разделе «Создание контейнера» удаленного API Docker и параметру IMAGE параметру команды ` docker run https://docs.docker.com/engine/reference/run/#security-configuration`__.

linuxParameters -> (структура)

Модификации, специфичные для Linux, которые применяются к контейнеру, такие как возможности ядра Linux. Дополнительную информацию см. в разделе KernelCapabilities .

devices -> (список)

Любые устройства хоста, которые необходимо экспонировать контейнеру. Этот параметр соответствует Devices в разделе «Создание контейнера» в Docker Remote API и параметру --device команды docker run .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не предоставляйте его для этих задач.

(структура)

Объект, представляющий устройство хоста контейнера.

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate, и его не следует предоставлять.

hostPath -> (строка)

Путь к устройству на экземпляре хост-контейнера.

containerPath -> (строка)

Путь внутри контейнера, используемый для экспонирования устройства хоста. По умолчанию используется значение hostPath.

permissions -> (список)

Явные разрешения, предоставляемые контейнеру для устройства. По умолчанию контейнер имеет разрешения на read , write и mknod для устройства.

(строка)

initProcessEnabled -> (булево)

Если true, запустить процесс init внутри контейнера, который перенаправляет сигналы и собирает процессы. Этот параметр соответствует параметру --init команды docker run . Этот параметр требует версии Docker Remote API 1.25 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

sharedMemorySize -> (целое число)

Значение размера (в MiB) тома /dev/shm . Этот параметр соответствует параметру --shm-size команды docker run .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не предоставляйте его для этих задач.

tmpfs -> (список)

Путь контейнера, параметры монтирования и размер (в MiB) точки монтирования tmpfs . Этот параметр соответствует параметру --tmpfs команды docker run .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не предоставляйте этот параметр для этого типа ресурсов.

(структура)

Путь контейнера, параметры монтирования и размер точки монтирования tmpfs .

Примечание

Этот объект не применим к задачам, выполняющимся на ресурсах Fargate.

containerPath -> (строка)

Абсолютный путь к файлу в контейнере, где смонтирован том tmpfs .

size -> (целое число)

Размер (в MiB) тома tmpfs .

mountOptions -> (список)

Список параметров монтирования тома tmpfs .

Допустимые значения: “defaults “ | “ro “ | “rw “ | “suid “ | “nosuid “ | “dev “ | “nodev “ | “exec “ | “noexec “ | “sync “ | “async “ | “dirsync “ | “remount “ | “mand “ | “nomand “ | “atime “ | “noatime “ | “diratime “ | “nodiratime “ | “bind “ | “rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime “ | “norelatime “ | “strictatime “ | “nostrictatime “ | “mode “ | “uid “ | “gid “ | “nr_inodes “ | “nr_blocks “ | “mpol “

(строка)

maxSwap -> (целое число)

Общий объем памяти подкачки (в MiB), который может использовать контейнер. Этот параметр преобразуется в параметр --memory-swap команды docker run, где значение представляет собой сумму памяти контейнера и значения maxSwap . Дополнительную информацию см. в разделе ` --memory-swap <https://docs.docker.com/config/containers/resource_constraints/#–memory-swap-details>`__ в документации Docker.

Если задано значение maxSwap 0 , контейнер не использует подкачку. Допустимые значения — 0 или любое положительное целое число. Если параметр maxSwap опущен, контейнер не использует настройки подкачки для экземпляра контейнера, на котором он выполняется. Значение maxSwap должно быть задано для использования параметра swappiness .

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не предоставляйте его для этих задач.

swappiness -> (целое число)

Этот параметр позволяет настроить поведение подкачки памяти контейнера. Значение swappiness 0 приводит к тому, что подкачка происходит только в случае крайней необходимости. Значение swappiness 100 приводит к агрессивной подкачке страниц. Допустимые значения — целые числа от 0 до 100 . Если параметр swappiness не указан, используется значение по умолчанию 60 . Если значение не указано для maxSwap , этот параметр игнорируется. Если maxSwap установлено в 0, контейнер не использует подкачку. Этот параметр соответствует параметру --memory-swappiness команды docker run .

Следует учитывать следующее при использовании конфигурации подкачки на уровне контейнера.

  • Для использования подкачки контейнерами, она должна быть включена и выделена на экземпляре контейнера.

Примечание

По умолчанию в оптимизированных AMI Amazon ECS подкачка отключена. Чтобы использовать эту функцию, необходимо включить подкачку на экземпляре. Дополнительную информацию см. в разделе «Тома подкачки хранилища экземпляров» в руководстве пользователя Amazon EC2 для Linux-экземпляров или «Как выделить память для использования в качестве пространства подкачки в экземпляре Amazon EC2 с использованием файла подкачки?»
  • Параметры пространства подкачки поддерживаются только для определений задач, использующих ресурсы EC2.
  • Если параметры maxSwap и swappiness опущены из определения задачи, у каждого контейнера используется значение swappiness по умолчанию, равное 60. Кроме того, общее использование подкачки ограничено двумя значениями резервирования памяти контейнера.

Примечание

Этот параметр не применим к задачам, выполняющимся на ресурсах Fargate. Не предоставляйте его для этих задач.

logConfiguration -> (структура)

Спецификация конфигурации ведения журнала для контейнера.

Этот параметр соответствует LogConfig в разделе «Создание контейнера» в Docker Remote API и параметру --log-driver для команды docker run.

По умолчанию контейнеры используют тот же драйвер ведения журнала, что и демон Docker. Однако контейнер может использовать другой драйвер ведения журнала, отличного от используемого демоном Docker, указав драйвер журнала в определении контейнера. Чтобы использовать другой драйвер ведения журнала для контейнера, система журналов должна быть должным образом настроена на экземпляре контейнера (или на другом сервере журналов для удаленных вариантов ведения журнала). Дополнительную информацию о параметрах различных поддерживаемых драйверов журналов см. в разделе «Настройка драйверов ведения журналов» в документации Docker.

Примечание

Amazon ECS в настоящее время поддерживает подмножество драйверов ведения журналов, доступных демону Docker (показано в типе данных LogConfiguration). Дополнительные драйверы журналов могут быть доступны в будущих выпусках агента Amazon ECS для контейнеров.

Для этого параметра требуется версия 1.18 Docker Remote API или более поздняя на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'

Примечание

Агент Amazon ECS, работающий на экземпляре контейнера, должен зарегистрировать доступные на этом экземпляре драйверы ведения журналов с переменной среды ECS_AVAILABLE_LOGGING_DRIVERS, прежде чем контейнеры, размещенные на этом экземпляре, смогут использовать эти параметры конфигурации журналов. Дополнительную информацию см. в разделе «Конфигурация агента Amazon ECS для контейнеров» в Руководстве разработчика Amazon Elastic Container Service.

logDriver -> (строка)

Драйвер ведения журнала, который следует использовать для контейнера. Допустимые значения, перечисленные для этого параметра, — это драйверы журналов, с которыми агент Amazon ECS для контейнеров может взаимодействовать по умолчанию.

Поддерживаемые драйверы журналов — awslogs , fluentd , gelf , json-file , journald , logentries , syslog и splunk.

Примечание

Задачи, выполняемые на ресурсах Fargate, ограничены драйверами журналов awslogs и splunk.

awsfirelens

Указывает драйвер ведения журнала firelens. Дополнительную информацию о настройке Firelens см. в разделе «Отправка журналов Amazon ECS в сервис Amazon Web Services или партнера Amazon Web Services» в Руководстве разработчика Amazon Elastic Container Service.

awslogs

Указывает драйвер ведения журнала Amazon CloudWatch Logs. Дополнительную информацию см. в разделе «Использование драйвера журнала awslogs» в Руководстве пользователя Batch и в разделе «Драйвер ведения журнала Amazon CloudWatch Logs» в документации Docker.

fluentd

Указывает драйвер ведения журнала Fluentd. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер ведения журнала Fluentd» в документации Docker.

gelf

Указывает драйвер ведения журнала Graylog Extended Format (GELF). Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер ведения журнала Graylog Extended Format» в документации Docker.

journald

Указывает драйвер ведения журнала journald. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер ведения журнала journald» в документации Docker.

json-file

Указывает драйвер ведения журнала JSON-файла. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер ведения журнала JSON-файла» в документации Docker.

splunk

Указывает драйвер ведения журнала Splunk. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер ведения журнала Splunk» в документации Docker.

syslog

Указывает драйвер ведения журнала syslog. Дополнительную информацию, включая использование и параметры, см. в разделе «Драйвер ведения журнала syslog» в документации Docker.

Примечание

Если у вас есть пользовательский драйвер, который не перечислен выше, с которым вы хотите работать с агентом Amazon ECS для контейнеров, вы можете создать форк проекта агента Amazon ECS для контейнеров, доступного на GitHub, и настроить его для работы с этим драйвером. Мы рекомендуем отправлять запросы на включение необходимых изменений. Однако в настоящее время Amazon Web Services не поддерживает запуск измененных копий этого программного обеспечения.

Для этого параметра требуется версия 1.18 Docker Remote API или более поздняя на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

options -> (карта)

Параметры конфигурации для отправки драйверу ведения журнала. Для этого параметра требуется версия 1.19 Docker Remote API или более поздняя на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version | grep "Server API version"

key -> (строка)

value -> (строка)

secretOptions -> (список)

Секреты для передачи в конфигурацию ведения журнала. Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в Руководстве пользователя Batch.

(структура)

Объект, представляющий секрет, который необходимо открыть для вашего контейнера. Секреты могут быть открыты для контейнера следующим образом:

  • Чтобы ввести конфиденциальные данные в контейнеры в виде переменных окружения, используйте параметр определения контейнера secrets.
  • Чтобы сослаться на конфиденциальную информацию в конфигурации ведения журнала контейнера, используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в Руководстве пользователя Batch.

name -> (строка)

Имя секрета.

valueFrom -> (строка)

Секрет для открытия в контейнере. Поддерживаемые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в хранилище параметров Amazon Web Services Systems Manager.

Примечание

Если параметр хранилища параметров Amazon Web Services Systems Manager существует в той же области, что и задача, которую вы запускаете, вы можете использовать либо полный Amazon Resource Name (ARN), либо имя параметра. Если параметр существует в другой области, необходимо указать полный ARN.

mountPoints -> (список)

Точки монтирования томов данных в вашем контейнере.

Этот параметр соответствует Volumes в разделе «Создание контейнера» в Docker Remote API и параметру –volume в `docker run`.

Контейнеры Windows могут монтировать целые каталоги на том же диске, что и $env:ProgramData. Контейнеры Windows не могут монтировать каталоги на другом диске, и точка монтирования не может быть между дисками.

(структура)

Подробности о точке монтирования тома Docker, используемого в свойствах контейнера задачи. Этот параметр соответствует Volumes в разделе «Создание контейнера» в Docker Remote API и параметру --volume для команды docker run.

containerPath -> (строка)

Путь в контейнере, где монтируется том хоста.

readOnly -> (булево)

Если это значение равно true, доступ контейнера к тому — только для чтения. В противном случае контейнер может записывать в том. Значение по умолчанию — false.

sourceVolume -> (строка)

Имя тома для монтирования.

name -> (строка)

Имя контейнера. Имя можно использовать в качестве уникального идентификатора для определения ваших объектов dependsOn и Overrides.

privileged -> (булево)

Когда этот параметр равен true, контейнеру предоставляются повышенные привилегии на экземпляре хост-контейнера (по аналогии с пользователем root). Этот параметр соответствует Privileged в разделе «Создание контейнера» в Docker Remote API и параметру --privileged для команды docker run.

Примечание

Этот параметр не поддерживается для контейнеров Windows или задач, выполняемых на Fargate.

readonlyRootFilesystem -> (булево)

Когда этот параметр равен true, контейнеру предоставляется доступ только для чтения к его файловой системе корневого каталога. Этот параметр соответствует ReadonlyRootfs в разделе «Создание контейнера» в Docker Remote API и параметру --read-only для команды docker run.

Примечание

Этот параметр не поддерживается для контейнеров Windows.

repositoryCredentials -> (структура)

Учетные данные аутентификации частного репозитория для использования.

credentialsParameter -> (строка)

Amazon Resource Name (ARN) секрета, содержащего учетные данные аутентификации частного репозитория.

resourceRequirements -> (список)

```

Тип и количество ресурсов, которые нужно назначить контейнеру. Поддерживается только ресурс GPU.

(структура)

Тип и количество ресурсов, которые нужно назначить контейнеру. Поддерживаемые ресурсы включают GPU , MEMORY и VCPU .

значение -> (строка)

Количество указанного ресурса, который нужно зарезервировать для контейнера. Значения зависят от указанного type.

тип=”GPU”

Количество физических GPU, которые нужно зарезервировать для контейнера. Убедитесь, что общее количество GPU, зарезервированных для всех контейнеров в задаче, не превышает количество доступных GPU на вычислительном ресурсе, на котором запускается задача.

Примечание

GPU недоступны для задач, выполняемых на ресурсах Fargate.

тип=”MEMORY”

Максимальное ограничение памяти (в МБ), предоставляемое контейнеру. Этот параметр поддерживается для задач, выполняемых на ресурсах Amazon EC2. Если контейнер пытается превысить указанный объем памяти, контейнер завершается. Этот параметр соответствует Memory в разделе «Создание контейнера» в Docker Remote API и параметру --memory команды docker run. Для задачи необходимо указать как минимум 4 МБ памяти. Это обязательно, но может быть указано в нескольких местах для задач с многоузловым параллельным выполнением (MNP). Оно должно быть указано для каждого узла хотя бы один раз. Этот параметр соответствует Memory в разделе «Создание контейнера» в Docker Remote API и параметру --memory команды docker run.

Примечание

Если вы хотите максимизировать использование ресурсов, предоставляя своим задачам как можно больше памяти для определенного типа экземпляра, обратитесь к разделу «Управление памятью» в руководстве пользователя Batch.

Для задач, выполняемых на ресурсах Fargate, value является жестким ограничением (в МБ) и должно соответствовать одному из поддерживаемых значений, а VCPU должно быть одним из значений, поддерживаемых для этого значения памяти.

значение = 512

VCPU = 0.25

значение = 1024

VCPU = 0.25 или 0.5

значение = 2048

VCPU = 0.25, 0.5 или 1

значение = 3072

VCPU = 0.5 или 1

значение = 4096

VCPU = 0.5, 1 или 2

значение = 5120, 6144 или 7168

VCPU = 1 или 2

значение = 8192

VCPU = 1, 2 или 4

значение = 9216, 10240, 11264, 12288, 13312, 14336 или 15360

VCPU = 2 или 4

значение = 16384

VCPU = 2, 4 или 8

значение = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696 или 30720

VCPU = 4

значение = 20480, 24576 или 28672

VCPU = 4 или 8

значение = 36864, 45056, 53248 или 61440

VCPU = 8

значение = 32768, 40960, 49152 или 57344

VCPU = 8 или 16

значение = 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

VCPU = 16

тип=”VCPU”

Количество выделенных виртуальных процессоров (vCPU) для контейнера. Этот параметр соответствует CpuShares в разделе «Создание контейнера» в Docker Remote API и параметру --cpu-shares команды docker run. Каждый vCPU эквивалентен 1024 CPU-долям. Для ресурсов Amazon EC2 необходимо указать как минимум один vCPU. Это обязательно, но может быть указано в нескольких местах; оно должно быть указано для каждого узла хотя бы один раз.

Значение по умолчанию для квоты ресурсов Fargate On-Demand vCPU составляет 6 vCPU. Дополнительную информацию о квотах Fargate см. в разделе «Квоты Fargate» в Общей справке Amazon Web Services.

Для задач, выполняемых на ресурсах Fargate, value должно соответствовать одному из поддерживаемых значений, а MEMORY — одному из значений, поддерживаемых для этого значения VCPU. Поддерживаемые значения: 0.25, 0.5, 1, 2, 4, 8 и 16

значение = 0.25

MEMORY = 512, 1024 или 2048

значение = 0.5

MEMORY = 1024, 2048, 3072 или 4096

значение = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168 или 8192

значение = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360 или 16384

значение = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696 или 30720

значение = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344 или 61440

значение = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688 или 122880

тип -> (строка)

Тип ресурса, который нужно назначить контейнеру. Поддерживаемые ресурсы включают GPU , MEMORY и VCPU .

секреты -> (список)

Секреты, которые нужно передать контейнеру. Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в руководстве разработчика Amazon Elastic Container Service.

(структура)

Объект, представляющий секрет, который нужно предоставить контейнеру. Секреты могут быть предоставлены контейнеру следующим образом:

  • Для внедрения конфиденциальных данных в контейнеры в качестве переменных среды используйте параметр определения контейнера secrets.
  • Для ссылки на конфиденциальную информацию в конфигурации журналов контейнера используйте параметр определения контейнера secretOptions.

Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в руководстве пользователя Batch.

имя -> (строка)

Имя секрета.

значениеИз -> (строка)

Секрет для предоставления контейнеру. Поддерживаемые значения — это полный Amazon Resource Name (ARN) секрета Secrets Manager или полный ARN параметра в Amazon Web Services Systems Manager Parameter Store.

Примечание

Если параметр Amazon Web Services Systems Manager Parameter Store существует в той же области, что и задача, которую вы запускаете, то вы можете использовать либо полный Amazon Resource Name (ARN), либо имя параметра. Если параметр находится в другой области, то необходимо указать полный ARN.

ограничения -> (список)

Список ulimits , которые нужно установить в контейнере. Если значение ulimit указано в определении задачи, оно переопределяет значения по умолчанию, заданные Docker. Этот параметр соответствует Ulimits в разделе «Создание контейнера» в Docker Remote API и параметру --ulimit команды docker run.

Задачи Amazon ECS, размещенные на Fargate, используют значения ограничений ресурсов по умолчанию, заданные операционной системой, за исключением параметра ограничения nofile, который Fargate переопределяет. Параметр ограничения nofile устанавливает ограничение на количество открытых файлов, которые может использовать контейнер. Значение по умолчанию для мягкого ограничения nofile равно 1024, а жесткое ограничение по умолчанию равно 65535.

Для этого параметра требуется версия Docker Remote API 1.18 или более поздняя версия на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на своем экземпляре контейнера, войдите в него и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'

Примечание

Этот параметр не поддерживается для контейнеров Windows.

(структура)

ulimit параметры, которые нужно передать контейнеру. Дополнительную информацию см. в разделе «Ограничения».

Примечание

Этот объект не применим к задачам, выполняемым на ресурсах Fargate.

жесткоеОграничение -> (целое число)

Жесткое ограничение для типа ulimit.

имя -> (строка)

Имя type ulimit . Допустимые значения: core | cpu | data | fsize | locks | memlock | msgqueue | nice | nofile | nproc | rss | rtprio | rttime | sigpending | stack.

мягкоеОграничение -> (целое число)

Мягкое ограничение для типа ulimit.

пользователь -> (строка)

Пользователь, который нужно использовать внутри контейнера. Этот параметр соответствует Пользователь в разделе «Создание контейнера» Docker Remote API и параметру –user команды docker run.

Примечание

При выполнении задач с режимом сети host не используйте контейнеры с root user (UID 0). Для повышения безопасности рекомендуется использовать пользователя, отличного от root.

Вы можете указать user с использованием следующих форматов. Если вы указываете UID или GID, вы должны указать его как положительное целое число.

  • user
  • user:group
  • uid
  • uid:gid
  • user:gi
  • uid:group

Примечание

Этот параметр не поддерживается для контейнеров Windows.

временноеХранилище -> (структура)

Объем временного хранилища, который нужно выделить для задачи. Этот параметр используется для увеличения общего объема временного хранилища, доступного помимо стандартного значения, для задач, размещенных на Fargate.

размерВGiB -> (целое число)

Общий объем временного хранилища в ГБ, который нужно задать для задачи. Минимальное поддерживаемое значение — 21 ГБ, а максимальное — 200 ГБ.

executionRoleArn -> (строка)

Amazon Resource Name (ARN) роли выполнения, которую Batch может принять. Для задач, выполняемых на ресурсах Fargate, необходимо предоставить роль выполнения. Дополнительную информацию см. в разделе «IAM-роль выполнения Batch» в Руководстве пользователя Batch.

platformVersion -> (строка)

Версия платформы Fargate, на которой выполняются задачи. Версия платформы указывается только для задач, выполняемых на ресурсах Fargate. Если она не указана, по умолчанию используется версия платформы LATEST. Это использует последнюю одобренную версию платформы Fargate для вычислительных ресурсов. Дополнительную информацию см. в разделе «Версии платформ Fargate» в Руководстве разработчика Amazon Elastic Container Service.

ipcMode -> (строка)

Пространство имён ресурсов IPC, используемое для контейнеров в задаче. Допустимые значения — host, task или none.

Если указано host, все контейнеры в задачах, которые указали режим IPC host для того же контейнера, используют общие ресурсы IPC с хост-машиной Amazon EC2.

Если указано task, все контейнеры в заданной task используют общие ресурсы IPC.

Если указано none, ресурсы IPC в контейнерах задачи являются частными и не совместно используются другими контейнерами в задаче или на экземпляре контейнера.

Если значение не указано, то совместное использование пространства имён ресурсов IPC зависит от настроек демона Docker на экземпляре контейнера. Дополнительную информацию см. в разделе Настройки IPC в справке Docker run.

taskRoleArn -> (string)

Amazon Resource Name (ARN), связанный с задачей Amazon ECS.

Примечание

Этот объект сравним с ContainerProperties:jobRoleArn.

pidMode -> (string)

Пространство имён процессов, используемое для контейнеров в задаче. Допустимые значения — host или task. Например, контейнеры мониторинга могут потребовать pidMode для доступа к информации об других контейнерах, работающих в той же задаче.

Если указано host, все контейнеры в задачах, которые указали режим PID host для того же экземпляра контейнера, используют общее пространство имён процессов с хост-машиной Amazon EC2.

Если указано task, все контейнеры в указанной задаче используют общее пространство имён процессов.

Если значение не указано, по умолчанию используется частное пространство имён для каждого контейнера. Дополнительную информацию см. в разделе Настройки PID в справке Docker run.

networkConfiguration -> (structure)

Настройка сети для задач, выполняемых на ресурсах Fargate. Задачи, выполняемые на ресурсах Amazon EC2, этот параметр не должны указывать.

assignPublicIp -> (string)

Указывает, имеет ли задача публичный IP-адрес. Для задач, выполняемых на ресурсах Fargate в частной подсети, для отправки исходящего трафика в Интернет (например, для загрузки образов контейнеров), частной подсети требуется шлюз NAT для маршрутизации запросов в Интернет. Дополнительную информацию см. в разделе Сети задач Amazon ECS в руководстве разработчика Amazon Elastic Container Service . Значение по умолчанию — «DISABLED».

runtimePlatform -> (structure)

Объект, представляющий архитектуру среды выполнения для задач Batch на Fargate.

operatingSystemFamily -> (string)

Операционная система для среды выполнения. Допустимые значения: LINUX (по умолчанию), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE и WINDOWS_SERVER_2022_FULL.

Примечание

Следующие параметры нельзя задавать для контейнеров Windows: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem и efsVolumeConfiguration.

Примечание

Планировщик Batch проверяет среды выполнения, присоединённые к очереди задач, перед регистрацией определения задачи в Fargate. В этом случае очередь задач — это место, где подаётся задача. Если задача требует контейнер Windows, и первая среда выполнения — LINUX, среда выполнения пропускается, и проверяется следующая среда выполнения до тех пор, пока не будет найдена среда выполнения на базе Windows.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров на базе Windows на Fargate. Очередь задач будет заблокирована, если задача Fargate ARM64 или Windows подаётся в очередь задач только со средами выполнения Fargate Spot. Однако вы можете подключить как среды выполнения FARGATE, так и FARGATE_SPOT к одной очереди задач.

cpuArchitecture -> (string)

Архитектура vCPU. Значение по умолчанию — X86_64. Допустимые значения — X86_64 и ARM64.

Примечание

Для контейнеров Windows этот параметр должен быть установлен на X86_64.

Примечание

Fargate Spot не поддерживается для ARM64 и контейнеров на базе Windows на Fargate. Очередь задач будет заблокирована, если задача Fargate ARM64 или Windows подаётся в очередь задач только со средами выполнения Fargate Spot. Однако вы можете подключить как среды выполнения FARGATE, так и FARGATE_SPOT к одной очереди задач.

volumes -> (list)

Список томов, связанных с задачей.

(structure)

Том данных, используемый в свойствах контейнера задачи.

host -> (structure)

Содержимое параметра host определяет, сохраняется ли ваш том данных на хост-экземпляре контейнера и где он хранится. Если параметр host пустой, то демон Docker назначает путь на хост для вашего тома данных. Однако данные не гарантированно сохраняются после остановки контейнеров, связанных с ним.

Примечание

Этот параметр не относится к задачам, выполняемым на ресурсах Fargate, и его не следует указывать.

sourcePath -> (string)

Путь на хост-экземпляре контейнера, предоставляемый контейнеру. Если этот параметр пустой, демон Docker назначит для вас путь на хост. Если этот параметр содержит расположение файла, то том данных сохраняется в указанном расположении на хост-экземпляре контейнера до тех пор, пока вы его вручную не удалите. Если расположение источника не существует на хост-экземпляре контейнера, демон Docker его создаёт. Если расположение существует, содержимое папки источника экспортируется.

Примечание

Этот параметр не относится к задачам, выполняемым на ресурсах Fargate. Не указывайте его для этих задач.

name -> (string)

Имя тома. Длина может составлять до 255 символов. Оно может содержать заглавные и строчные буквы, цифры, дефисы (-) и символы нижнего подчеркивания (_). Это имя используется в параметре sourceVolume определения контейнера mountPoints.

efsVolumeConfiguration -> (structure)

Этот параметр указывается при использовании файловой системы Amazon Elastic File System для хранения задач. Задачи, выполняемые на ресурсах Fargate, должны указывать platformVersion объёмом не менее 1.4.0.

fileSystemId -> (string)

Идентификатор файловой системы Amazon EFS, используемый для работы.

rootDirectory -> (string)

Директория в файловой системе Amazon EFS, которая монтируется в качестве корневой директории внутри хоста. Если этот параметр опущен, используется корень тома Amazon EFS. Указание / имеет тот же эффект, что и опускание этого параметра. Максимальная длина — 4096 символов.

Предупреждение

Если в authorizationConfig указан доступ к точке Amazon EFS, параметр rootDirectory должен быть опущен или установлен на /, что заставляет использовать путь, установленный в точке доступа Amazon EFS.

transitEncryption -> (string)

Определяет, следует ли включить шифрование данных Amazon EFS при передаче между хостом Amazon ECS и сервером Amazon EFS. Шифрование при передаче должно быть включено, если используется авторизация Amazon EFS IAM. Если этот параметр опущен, используется значение по умолчанию — DISABLED. Дополнительную информацию см. в разделе Шифрование данных при передаче в руководстве пользователя Amazon Elastic File System.

transitEncryptionPort -> (integer)

Порт, используемый при передаче зашифрованных данных между хостом Amazon ECS и сервером Amazon EFS. Если вы не указываете порт шифрования при передаче, используется стратегия выбора порта, используемая помощником монтирования Amazon EFS. Значение должно находиться в диапазоне от 0 до 65535. Дополнительную информацию см. в разделе Помощник монтирования EFS в руководстве пользователя Amazon Elastic File System.

authorizationConfig -> (structure)

Детали конфигурации авторизации для файловой системы Amazon EFS.

accessPointId -> (string)

Идентификатор точки доступа Amazon EFS, используемый для работы. Если указана точка доступа, значение rootDirectory, указанное в EFSVolumeConfiguration, должно быть опущено или установлено на /, что заставляет использовать путь, установленный в точке доступа EFS. Если используется точка доступа, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Дополнительную информацию см. в разделе Работа с точками доступа Amazon EFS в руководстве пользователя Amazon Elastic File System.

iam -> (string)

Использовать ли роль IAM задачи Batch, определённую в определении задачи, при монтировании файловой системы Amazon EFS. При включении шифрование при передаче должно быть включено в EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию — DISABLED. Дополнительную информацию см. в разделе Использование точек доступа Amazon EFS в руководстве пользователя Batch. Авторизация Amazon EFS IAM требует, чтобы TransitEncryption была ENABLED и чтобы был указан JobRoleArn.

enableExecuteCommand -> (boolean)

Определяет, включена ли функция выполнения команд для этой задачи. Если true, функция выполнения команд включена для всех контейнеров в задаче.

Синтаксис JSON:

{
  "taskProperties": [
    {
      "containers": [
        {
          "command": ["string", ...],
          "dependsOn": [
            {
              "containerName": "string",
              "condition": "string"
            }
            ...
          ],
          "environment": [
            {
              "name": "string",
              "value": "string"
            }
            ...
          ],
          "essential": true|false,
          "firelensConfiguration": {
            "type": "fluentd"|"fluentbit",
            "options": {"string": "string"
              ...}
          },
          "image": "string",
          "linuxParameters": {
            "devices": [
              {
                "hostPath": "string",
                "containerPath": "string",
                "permissions": ["READ"|"WRITE"|"MKNOD", ...]
              }
              ...
            ],
            "initProcessEnabled": true|false,
            "sharedMemorySize": integer,
            "tmpfs": [
              {
                "containerPath": "string",
                "size": integer,
                "mountOptions": ["string", ...]
              }
              ...
            ],
            "maxSwap": integer,
            "swappiness": integer
          },
          "logConfiguration": {
            "logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|"awsfirelens",
            "options": {"string": "string"
              ...},
            "secretOptions": [
              {
                "name": "string",
                "valueFrom": "string"
              }
              ...
            ]
          },
          "mountPoints": [
            {
              "containerPath": "string",
              "readOnly": true|false,
              "sourceVolume": "string"
            }
            ...
          ],
          "name": "string",
          "privileged": true|false,
          "readonlyRootFilesystem": true|false,
          "repositoryCredentials": {
            "credentialsParameter": "string"
          },
          "resourceRequirements": [
            {
              "value": "string",
              "type": "GPU"|"VCPU"|"MEMORY"
            }
            ...
          ],
          "secrets": [
            {
              "name": "string",
              "valueFrom": "string"
            }
            ...
          ],
          "ulimits": [
            {
              "hardLimit": integer,
              "name": "string",
              "softLimit": integer
            }
            ...
          ],
          "user": "string"
        }
        ...
      ],
      "ephemeralStorage": {
        "sizeInGiB": integer
      },
      "executionRoleArn": "string",
      "platformVersion": "string",
      "ipcMode": "string",
      "taskRoleArn": "string",
      "pidMode": "string",
      "networkConfiguration": {
        "assignPublicIp": "ENABLED"|"DISABLED"
      },
      "runtimePlatform": {
        "operatingSystemFamily": "string",
        "cpuArchitecture": "string"
      },
      "volumes": [
        {
          "host": {
            "sourcePath": "string"
          },
          "name": "string",
          "efsVolumeConfiguration": {
            "fileSystemId": "string",
            "rootDirectory": "string",
            "transitEncryption": "ENABLED"|"DISABLED",
            "transitEncryptionPort": integer,
            "authorizationConfig": {
              "accessPointId": "string",
              "iam": "ENABLED"|"DISABLED"
            }
          }
        }
        ...
      ],
      "enableExecuteCommand": true|false
    }
    ...
  ]
}

--consumable-resource-properties (structure)

Содержит список потребляемых ресурсов, необходимых для задачи.

consumableResourceList -> (list)

Список потребляемых ресурсов, необходимых для задачи.

(structure)

Информация о потребляемом ресурсе, необходимом для выполнения задачи.

consumableResource -> (string)

Имя или ARN потребляемого ресурса.

quantity -> (long)

Количество потребляемого ресурса, необходимого для выполнения задачи.

Краткая запись:

consumableResourceList=[{consumableResource=string,quantity=long},{consumableResource=string,quantity=long}]

Синтаксис JSON:

{
  "consumableResourceList": [
    {
      "consumableResource": "string",
      "quantity": long
    }
    ...
  ]
}

--cli-input-json | --cli-input-yaml (string) Читает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному в --generate-cli-skeleton. Если на командной строке указаны другие аргументы, эти значения перепишут значения из JSON. Передать произвольные двоичные значения с помощью JSON-значения в виде строки невозможно, так как строка будет интерпретироваться буквально. Это нельзя указать вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если не указано значение или значение input, выводит JSON-пример входных данных, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если указано yaml-input, он выведет YAML-пример входных данных, который можно использовать с --cli-input-yaml. Если указано значение output, он проверит входные данные команды и вернёт пример выходных данных JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.

Глобальные параметры

--debug (логическое значение)

Включить отладочную регистрацию.

--endpoint-url (строка)

Переопределить стандартный URL команды на указанный URL.

--no-verify-ssl (логическое значение)

По умолчанию AWS CLI использует SSL при взаимодействии с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.

--no-paginate (логическое значение)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования выходных данных команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (строка)

Запрос JMESPath для фильтрации данных ответа.

--profile (строка)

Использовать определённый профиль из файла аутентификации.

--region (строка)

Используемый регион. Переопределяет настройки конфигурации/окружения.

--version (строка)

Показать версию этого инструмента.

--color (строка)

Включить/отключить цветной вывод.

  • on
  • off
  • auto

--no-sign-request (логическое значение)

Не подписывать запросы. Кредиты не будут загружены, если этот аргумент предоставлен.

--ca-bundle (строка)

Файл с сертификатами доверенных центров сертификации для проверки SSL-сертификатов. Переопределяет настройки конфигурации/окружения.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет блокирующим и без таймаута. Значение по умолчанию составляет 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет блокирующим и без таймаута. Значение по умолчанию составляет 60 секунд.

--cli-binary-format (строка)

Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое отображается на двоичный блок fileb:// всегда будет обрабатываться как двоичный и будет использовать содержимое файла напрямую независимо от настроек cli-binary-format. При использовании file:// содержимое файла должно быть правильно отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (логическое значение)

Отключить вывод страниц cli.

--cli-auto-prompt (логическое значение)

Автоматически запрашивать параметры входных данных CLI.

--no-cli-auto-prompt (логическое значение)

Отключить автоматическое запросы параметров входных данных CLI.

Примеры

Примечание

Для использования следующих примеров необходимо установить и настроить AWS CLI. Подробнее см. руководство по началу работы в руководстве пользователя AWS CLI.

Если не указано иное, во всех примерах используются правила цитирования Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. Подробнее см. Использование кавычек со строками в руководстве пользователя AWS CLI.

Для регистрации определения задания

В этом примере регистрируется определение задания для простого контейнерного задания.

Команда:

aws batch register-job-definition --job-definition-name sleep30 --type container --container-properties '{ "image": "busybox", "vcpus": 1, "memory": 128, "command": [ "sleep", "30"]}'

Вывод:

{
    "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1",
    "jobDefinitionName": "sleep30",
    "revision": 1
}

Вывод

jobDefinitionName -> (строка)

Имя определения задания.

jobDefinitionArn -> (строка)

Amazon Resource Name (ARN) определения задания.

revision -> (целое число)

Ревизия определения задания.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API