delete-task-definitions
Описание
Удаляет одну или несколько дефиниций задач.
Перед удалением необходимо аннулировать версию дефиниции задачи. Дополнительную информацию можно найти в разделе Удаление дефиниции задачи.
При удалении версии дефиниции задачи она сразу переходит из состояния INACTIVE в состояние DELETE_IN_PROGRESS. Существующие задачи и сервисы, которые ссылаются на DELETE_IN_PROGRESS версию дефиниции задачи, продолжают работать без перерывов. Существующие сервисы, которые ссылаются на DELETE_IN_PROGRESS версию дефиниции задачи, по-прежнему могут масштабироваться вверх или вниз путем изменения желаемого количества.
Вы не можете использовать DELETE_IN_PROGRESS версию дефиниции задачи для запуска новых задач или создания новых сервисов. Вы также не можете обновить существующий сервис для ссылки на DELETE_IN_PROGRESS версию дефиниции задачи.
Версия дефиниции задачи будет оставаться в состоянии DELETE_IN_PROGRESS до тех пор, пока все связанные задачи и сервисы не будут завершены.
Когда вы удаляете все INACTIVE версии дефиниции задачи, имя дефиниции задачи не отображается в консоли и не возвращается в API. Если версии дефиниции задачи находятся в состоянии DELETE_IN_PROGRESS, имя дефиниции задачи отображается в консоли и возвращается в API. Имя дефиниции задачи сохраняется Amazon ECS, а версия увеличивается при следующем создании дефиниции задачи с этим именем.
См. также: Документация API AWS
Синтаксис
delete-task-definitions
--task-definitions <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]
Параметры
--task-definitions (список)
family и revision (family:revision ) или полный Amazon Resource Name (ARN) дефиниции задачи для удаления. Вы должны указать revision .
Вы можете указать до 10 дефиниций задач в виде списка, разделенного запятыми.
(строка)
Синтаксис:
"string" "string" ...
--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной 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
- текст
- таблица
- yaml
- yaml-поток
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из файла учетных данных.
--region (строка)
Используемый регион. Переопределяет настройки конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить вывод цвета.
- включено
- выключено
- автоматически
--no-sign-request (булево)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.
--ca-bundle (строка)
Файл сертификатов CA для проверки сертификатов 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.
Для удаления дефиниции задачи
Следующий delete-task-definitions пример удаляет НЕАКТИВНУЮ дефиницию задачи.
aws ecs delete-task-definitions \
--task-definition curltest:1
Вывод:
{
"taskDefinitions": [
{
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/curltest:1",
"containerDefinitions": [
{
"name": "ctest",
"image": "mreferre/eksutils",
"cpu": 0,
"portMappings": [],
"essential": true,
"entryPoint": [
"sh",
"-c"
],
"command": [
"curl ${ECS_CONTAINER_METADATA_URI_V4}/task"
],
"environment": [],
"mountPoints": [],
"volumesFrom": [],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-create-group": "true",
"awslogs-group": "/ecs/curltest",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "ecs"
}
}
}
],
"family": "curltest",
"taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
"networkMode": "awsvpc",
"revision": 1,
"volumes": [],
"status": "DELETE_IN_PROGRESS",
"compatibilities": [
"EC2",
"FARGATE"
],
"requiresCompatibilities": [
"FARGATE"
],
"cpu": "256",
"memory": "512",
"registeredAt": "2021-09-10T12:56:24.704000+00:00",
"deregisteredAt": "2023-03-14T15:20:59.419000+00:00",
"registeredBy": "arn:aws:sts::123456789012:assumed-role/Admin/jdoe"
}
],
"failures": []
}
Дополнительную информацию см. в разделе Amazon ECS Task Definitions в руководстве разработчика Amazon ECS.
Вывод
taskDefinitions -> (список)
Список удаленных определений задач.
(структура)
Подробности определения задачи, описывающие определения контейнера и тома задачи Amazon Elastic Container Service. Вы можете указать, какие образы Docker использовать, необходимые ресурсы и другие параметры, связанные с запуском определения задачи через сервис или задачу Amazon ECS.
taskDefinitionArn -> (строка)
containerDefinitions -> (список)
Список определений контейнеров в формате JSON, описывающих различные контейнеры, составляющие задачу. Дополнительную информацию о параметрах и значениях по умолчанию для определения контейнера можно найти в разделе «Определения задач Amazon ECS» в руководстве для разработчиков Amazon Elastic Container Service.
(структура)
Определения контейнеров используются в определениях задач для описания различных контейнеров, запускаемых как часть задачи.
name -> (строка)
name в команде docker container create и параметру --name в команде docker run.image -> (строка)
Образ, используемый для запуска контейнера. Эта строка передается напрямую демону Docker. По умолчанию доступны образы из реестра Docker Hub. Другие хранилища указываются с использованием форматов `` url-хранилища /образ :метка `` или `` url-хранилища /образ @*digest* ``. Разрешается до 255 букв (в верхнем и нижнем регистре), цифр, дефисов, подчеркиваний, двоеточий, точек, слешей и диезов. Этот параметр соответствует параметру Image в команде docker container create и параметру IMAGE в команде docker run.
- При запуске новой задачи агент Amazon ECS извлекает последнюю версию указанного образа и метки для использования контейнером. Однако последующие обновления образа репозитория не распространяются на уже запущенные задачи.
- Образы в репозиториях Amazon ECR можно указать, используя либо полное
registry/repository:tag, либоregistry/repository@digest. Например,012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>:latestили012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE. - Образы в официальных репозиториях Docker Hub используют одно имя (например,
ubuntuилиmongo). - Образы в других репозиториях Docker Hub квалифицируются именем организации (например,
amazon/amazon-ecs-agent). - Образы в других онлайн-репозиториях квалифицируются дополнительно именем домена (например,
quay.io/assemblyline/ubuntu).
repositoryCredentials -> (структура)
Учетные данные аутентификации для частного репозитория.
credentialsParameter -> (строка)
Имя ресурса Amazon (ARN) секрета, содержащего учетные данные аутентификации для частного репозитория.
Примечание
При использовании API, командной строки или SDK Amazon ECS, если секрет находится в том же регионе, что и запускаемая задача, вы можете использовать либо полное ARN, либо имя секрета. При использовании веб-консоли Amazon Web Services необходимо указать полное ARN секрета.cpu -> (целое число)
Количество единиц cpu, зарезервированных для контейнера. Этот параметр соответствует параметру CpuShares в команде docker container create и параметру --cpu-shares в команде docker run.
Для задач, использующих тип запуска Fargate, это поле необязательно, и единственное требование состоит в том, чтобы общее количество выделенных единиц ЦП для всех контейнеров в задаче было меньше значения cpu на уровне задачи.
Примечание
Количество единиц ЦП, доступных для каждого типа экземпляра EC2, можно определить, умножив количество виртуальных процессоров (vCPU), указанных для этого типа экземпляра на странице подробностей экземпляров Amazon EC2, на 1024.Контейнеры Linux делят невыделенные единицы ЦП с другими контейнерами на экземпляре контейнера в том же соотношении, что и их выделенное количество. Например, если вы запускаете задачу с одним контейнером на экземпляре с одним ядром и 512 единицами ЦП для этого контейнера, и это единственная запущенная задача на экземпляре контейнера, этот контейнер может использовать весь общий ресурс в 1024 единицы ЦП в любой момент времени. Однако если вы запустите еще одну копию той же задачи на этом экземпляре контейнера, каждая задача гарантирует минимум 512 единиц ЦП при необходимости. Кроме того, каждый контейнер может достигать более высокого использования ЦП, если другой контейнер не использует его. Если обе задачи были активны на 100% все время, они были бы ограничены 512 единицами ЦП.
На экземплярах контейнеров Linux демон Docker на экземпляре контейнера использует значение ЦП для расчета относительных соотношений использования ЦП для запущенных контейнеров. Минимальное допустимое значение использования ЦП, разрешенное ядром Linux, равно 2, а максимальное допустимое значение — 262144. Однако параметр ЦП не является обязательным, и вы можете использовать значения ЦП ниже 2 или выше 262144 в ваших определениях контейнеров. Для значений ЦП ниже 2 (включая null) или выше 262144 поведение зависит от версии агента Amazon ECS:
- Версии агента, меньшие или равные 1.1.0: Значения null и нулевые значения ЦП передаются Docker как 0, что Docker преобразует в 1024 доли ЦП. Значения ЦП 1 передаются Docker как 1, что ядро Linux преобразует в две доли ЦП.
- Версии агента, большие или равные 1.2.0: Значения null, ноль и значения ЦП 1 передаются Docker как 2.
- Версии агента, большие или равные 1.84.0: Значения ЦП, превышающие 256 vCPU, передаются Docker как 256, что эквивалентно 262144 долям ЦП.
На экземплярах контейнеров Windows ограничение по ЦП применяется как абсолютное ограничение или квота. Контейнеры Windows имеют доступ только к указанному количеству ЦП, описанному в определении задачи. Значение null или нулевое значение ЦП передается Docker как 0, которое Windows интерпретирует как 1% от одного ЦП.
memory -> (целое число)
Количество памяти (в МБ) для представления контейнеру. Если контейнер пытается превысить указанный здесь объем памяти, контейнер уничтожается. Общий объем памяти, зарезервированный для всех контейнеров в задаче, должен быть меньше значения memory на уровне задачи, если оно указано. Этот параметр соответствует параметру Memory в команде docker container create и параметру --memory в команде docker run.
Если используется тип запуска Fargate, этот параметр необязателен.
Если используется тип запуска EC2, вы должны указать либо значение памяти на уровне задачи, либо на уровне контейнера. Если вы указываете значение памяти на уровне контейнера memory и значение memoryReservation, то memory должно быть больше, чем memoryReservation. Если вы указываете memoryReservation, тогда это значение вычитается из доступных ресурсов памяти для экземпляра контейнера, где размещается контейнер. В противном случае используется значение memory.
Демон Docker 20.10.0 или более поздней версии резервирует минимум 6 МБ памяти для контейнера. Поэтому не указывайте менее 6 МБ памяти для ваших контейнеров.
Демон Docker 19.03.13-ce или более ранней версии резервирует минимум 4 МБ памяти для контейнера. Поэтому не указывайте менее 4 МБ памяти для ваших контейнеров.
memoryReservation -> (целое число)
Мягкое ограничение (в МБ) памяти для резервирования контейнера. При сильной конкуренции за системную память Docker пытается поддерживать память контейнера на этом мягком ограничении. Однако ваш контейнер может использовать больше памяти, когда это необходимо, до жесткого ограничения, указанного параметром memory (при необходимости) или всей доступной памяти на экземпляре контейнера, что произойдет раньше. Этот параметр соответствует параметру MemoryReservation в команде docker container create и параметру --memory-reservation в команде docker run.
Если не задано значение памяти на уровне задачи, вы должны указать ненулевое целое число для одного или обоих memory или memoryReservation в определении контейнера. Если вы указываете оба, то memory должно быть больше, чем memoryReservation. Если вы указываете memoryReservation, это значение вычитается из доступных ресурсов памяти для экземпляра контейнера, где находится контейнер. В противном случае используется значение memory.
Например, если ваш контейнер обычно использует 128 МБ памяти, но периодически кратковременно увеличивает ее до 256 МБ, вы можете установить мягкое ограничение memoryReservation в 128 МБ и жесткое ограничение memory в 300 МБ. Эта настройка позволит контейнеру зарезервировать только 128 МБ памяти из оставшихся ресурсов на экземпляре контейнера, но также позволит контейнеру использовать больше ресурсов памяти при необходимости.
Демон Docker 20.10.0 или более поздней версии резервирует минимум 6 МБ памяти для контейнера. Поэтому не указывайте менее 6 МБ памяти для ваших контейнеров.
Демон Docker 19.03.13-ce или более ранней версии резервирует минимум 4 МБ памяти для контейнера. Поэтому не указывайте менее 4 МБ памяти для ваших контейнеров.
links -> (список)
Параметр links позволяет контейнерам взаимодействовать друг с другом без необходимости отображения портов. Этот параметр поддерживается только если режим сети определения задачи равен bridge. Конструкция name:internalName аналогична параметру name:alias в Docker links. Разрешается до 255 букв (в верхнем и нижнем регистре), цифр, подчеркиваний и дефисов. Этот параметр соответствует параметру Links в команде docker container create и параметру --link в команде docker run.
Примечание
Этот параметр не поддерживается для контейнеров Windows.Предупреждение
Контейнеры, которые размещаются на одном экземпляре контейнера, могут взаимодействовать друг с другом без необходимости использования связей или отображения портов хоста. Изоляция сети на экземпляре контейнера достигается с помощью групп безопасности и параметров VPC.(строка)
portMappings -> (список)
Список сопоставлений портов для контейнера. Сопоставления портов позволяют контейнерам получать доступ к портам на хост-контейнерной инстанции для отправки или получения трафика.
Для определений задач, которые используют режим сети awsvpc, укажите только containerPort. Поле hostPort можно оставить пустым или оно должно быть таким же, как значение containerPort.
Сопоставления портов в Windows используют адрес шлюза NetNAT, а не localhost. Для сопоставлений портов в Windows нет обратной связи, поэтому вы не можете получить доступ к сопоставленному порту контейнера с самого хоста.
Этот параметр соответствует параметру PortBindings в команде создания контейнера Docker и параметру --publish для команды `docker run`. Если режим сети определения задачи задан как none, вы не можете указать сопоставления портов. Если режим сети определения задачи задан как host, порты хоста должны быть неопределены или должны совпадать с портом контейнера в сопоставлении портов.
Примечание
После того, как задача достигла статусаRUNNING, ручные и автоматические назначения портов хоста и контейнера отображаются в разделе Связи сетей описания контейнера для выбранной задачи в консоли Amazon ECS. Назначения также отображаются в разделе networkBindings ответов DescribeTasks.(структура)
Сопоставления портов позволяют контейнерам получать доступ к портам на хост-контейнерной инстанции для отправки или получения трафика. Сопоставления портов задаются в рамках определения контейнера.
Если вы используете контейнеры в задаче с режимом сети awsvpc или host, укажите открытые порты, используя containerPort. Поле hostPort можно оставить пустым или оно должно быть таким же, как значение containerPort.
Большинство полей этого параметра (containerPort, hostPort, protocol) соответствуют параметру PortBindings в команде создания контейнера Docker и параметру --publish для команды docker run. Если режим сети определения задачи установлен на host, порты хоста должны быть неопределены или соответствовать порту контейнера в сопоставлении портов.
Примечание
Вы не можете открыть один и тот же порт контейнера для нескольких протоколов. Если вы попытаетесь это сделать, будет возвращено сообщение об ошибке.После того, как задача достигла статуса RUNNING, ручные и автоматические назначения портов хоста и контейнера отображаются в разделе networkBindings ответов API DescribeTasks.
containerPort -> (целое число)
Номер порта в контейнере, привязанный к заданному пользователем или автоматически назначенному порту хоста.
Если вы используете контейнеры в задаче с режимом сети awsvpc или host, укажите открытые порты, используя containerPort.
Если вы используете контейнеры в задаче с режимом сети bridge и указываете порт контейнера, но не порт хоста, ваш контейнер автоматически получает порт хоста в диапазоне временных портов. Дополнительную информацию см. в hostPort. Сопоставления портов, автоматически назначенные таким образом, не учитываются при подсчете 100 зарезервированных портов контейнерной инстанции.
hostPort -> (целое число)
Номер порта на хост-инстанции, который нужно зарезервировать для вашего контейнера.
Если вы указываете containerPortRange, оставьте это поле пустым, и значение hostPort устанавливается следующим образом:
- Для контейнеров в задаче с режимом сети
awsvpc,hostPortустанавливается равным значениюcontainerPort. Это стратегия статического сопоставления. - Для контейнеров в задаче с режимом сети
bridge, агент Amazon ECS находит свободные порты на хосте и автоматически привязывает их к портам контейнера. Это стратегия динамического сопоставления.
Если вы используете контейнеры в задаче с режимом сети awsvpc или host, hostPort может быть оставлено пустым или установлено равным значению containerPort.
Если вы используете контейнеры в задаче с режимом сети bridge, вы можете указать нерезервированный порт хоста для сопоставления портов контейнера или опустить hostPort (или установить его в значение 0), указав containerPort, и ваш контейнер автоматически получит порт в диапазоне временных портов для операционной системы вашей контейнерной инстанции и версии Docker.
Диапазон временных портов по умолчанию для версии Docker 1.6.0 и выше указан на инстанции в разделе /proc/sys/net/ipv4/ip_local_port_range. Если этот параметр ядра недоступен, используется диапазон временных портов по умолчанию с 49153 по 65535 (Linux) или с 49152 по 65535 (Windows). Не пытайтесь указать порт хоста в диапазоне временных портов, так как они зарезервированы для автоматического назначения. Как правило, порты ниже 32768 находятся вне диапазона временных портов.
Зарезервированные порты по умолчанию — 22 для SSH, порты Docker 2375 и 2376, и порты агента Amazon ECS 51678-51680. Любой ранее указанный порт хоста в выполняющейся задаче также зарезервирован во время выполнения задачи. То есть после остановки задачи порт хоста высвобождается. Текущие зарезервированные порты отображаются в разделе remainingResources вывода DescribeContainerInstances. Контейнерная инстанция может иметь до 100 зарезервированных портов одновременно. Это число включает зарезервированные порты по умолчанию. Автоматически назначенные порты не учитываются при подсчете 100 зарезервированных портов.
protocol -> (строка)
tcp и udp. По умолчанию используется tcp. protocol неизменен в службе Service Connect. Для обновления этого поля требуется удаление и повторное развертывание службы.name -> (строка)
serviceConnectConfiguration и vpcLatticeConfigurations службы. Имя может содержать до 64 символов. Символы могут включать строчные буквы, цифры, символы подчёркивания (_) и дефисы (-). Имя не может начинаться с дефиса.appProtocol -> (строка)
Прикладной протокол, используемый для сопоставления портов. Этот параметр применим только к Service Connect. Рекомендуется устанавливать этот параметр, согласуясь с протоколом, используемым вашим приложением. Если вы установите этот параметр, Amazon ECS добавит обработку подключений, специфичных для протокола, к прокси-серверу Service Connect. Если вы установите этот параметр, Amazon ECS добавит телеметрию, специфичную для протокола, в консоль Amazon ECS и CloudWatch.
Если вы не зададите значение для этого параметра, будет использоваться TCP. Однако Amazon ECS не добавляет телеметрию, специфичную для протокола, для TCP.
appProtocol неизменен в службе Service Connect. Для обновления этого поля требуется удаление и повторное развертывание службы.Задачи, выполняемые в пространстве имен, могут использовать короткие имена для подключения к службам в этом пространстве имен. Задачи могут подключаться к службам через все кластеры в пространстве имен. Задачи подключаются через управляемый прокси-контейнер, который собирает журналы и метрики для повышения видимости. Поддерживаются только задачи, созданные службами Amazon ECS. Дополнительную информацию см. в разделе Service Connect в руководстве Amazon Elastic Container Service Developer Guide.
containerPortRange -> (строка)
Диапазон номеров портов в контейнере, привязанный к динамически сопоставленному диапазону портов хоста.
При указании containerPortRange применяются следующие правила:
- Вы должны использовать режим сети
bridgeилиawsvpc. - Этот параметр доступен для типов запуска EC2 и Fargate.
- Этот параметр доступен для операционных систем Linux и Windows.
- Контейнерная инстанция должна иметь как минимум версию 1.67.0 агента контейнера и как минимум версию 1.67.0-1 пакета
ecs-init - Вы можете указать максимум 100 диапазонов портов на контейнер.
- Вы не указываете
hostPortRange. ЗначениеhostPortRangeустанавливается следующим образом:- Для контейнеров в задаче с режимом сети
awsvpc,hostPortRangeустанавливается равным значениюcontainerPortRange. Это стратегия статического сопоставления. - Для контейнеров в задаче с режимом сети
bridge, агент Amazon ECS находит свободные порты хоста из стандартного диапазона временных портов и передает их Docker для привязки к портам контейнера.
- Для контейнеров в задаче с режимом сети
- Значение
containerPortRangeдолжно быть в диапазоне от 1 до 65535. - Порт может быть включен только в одном сопоставлении портов на контейнер.
- Нельзя указывать перекрывающиеся диапазоны портов.
- Первый порт в диапазоне должен быть меньше последнего порта в диапазоне.
- Docker рекомендует отключить docker-proxy в файле конфигурации демона Docker при большом количестве портов. Дополнительную информацию см. в проблеме #11185 на сайте GitHub. Информацию о том, как отключить docker-proxy в файле конфигурации демона Docker, см. в разделе Демон Docker в руководстве Amazon ECS Developer Guide.
Вы можете вызвать ` DescribeTasks https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html`__ для просмотра hostPortRange, которые являются портами хоста, привязанными к портам контейнера.
essential -> (булево)
Если параметр essential контейнера помечен как true, и этот контейнер завершается или останавливается по какой-либо причине, все другие контейнеры, являющиеся частью задачи, также останавливаются. Если параметр essential контейнера помечен как false, его завершение не влияет на остальные контейнеры в задаче. Если этот параметр опущен, контейнер считается важным.
Все задачи должны иметь как минимум один важный контейнер. Если у вас приложение, состоящее из нескольких контейнеров, сгруппируйте контейнеры, используемые для одной цели, в компоненты, и разделите различные компоненты на несколько определений задач. Дополнительную информацию см. в разделе Архитектура приложений в руководстве Amazon Elastic Container Service Developer Guide.
restartPolicy -> (структура)
Политика перезапуска контейнера. При настройке политики перезапуска Amazon ECS может перезапустить контейнер без необходимости замены задачи. Дополнительную информацию см. в разделе Перезапуск отдельных контейнеров в задачах Amazon ECS с политиками перезапуска контейнеров в руководстве разработчика Amazon Elastic Container Service.
enabled -> (boolean)
ignoredExitCodes -> (list)
Список кодов завершения, которые Amazon ECS проигнорирует и не попытается перезапустить. Можно указать до 50 кодов завершения контейнера. По умолчанию Amazon ECS не игнорирует никакие коды завершения.
(integer)
restartAttemptPeriod -> (integer)
restartAttemptPeriod секунды. Если контейнер не может работать в течение этого периода времени и завершается раньше, он не будет перезапущен. Можно установить минимальное значение restartAttemptPeriod в 60 секунд и максимальное значение restartAttemptPeriod в 1800 секунд. По умолчанию контейнер должен работать 300 секунд, прежде чем его можно будет перезапустить.entryPoint -> (list)
Предупреждение
Ранние версии агента контейнеров Amazon ECS не обрабатывают должным образомentryPoint параметры. Если у вас возникают проблемы с использованием entryPoint, обновите свой агент контейнеров или введите свои команды и аргументы в виде элементов массива command.Точка входа, которая передается контейнеру. Этот параметр соответствует Entrypoint в команде docker container create и параметру --entrypoint в docker run.
(string)
command -> (list)
Команда, которая передается контейнеру. Этот параметр соответствует Cmd в команде docker container create и параметру COMMAND в docker run. Если аргументов несколько, каждый аргумент — это отдельный строковый элемент в массиве.
(string)
environment -> (list)
Переменные среды, которые нужно передать контейнеру. Этот параметр соответствует Env в команде docker container create и параметру --env в docker run.
Предупреждение
Не рекомендуется использовать текстовые переменные среды для конфиденциальной информации, такой как данные учетных данных.(structure)
Объект пары «ключ-значение».
name -> (string)
value -> (string)
environmentFiles -> (list)
Список файлов, содержащих переменные среды для передачи контейнеру. Этот параметр соответствует параметру --env-file в команде docker run.
Можно указать до десяти файлов со средой. Файл должен иметь расширение .env. Каждая строка в файле среды содержит переменную среды в формате VARIABLE=VALUE. Строки, начинающиеся с #, рассматриваются как комментарии и игнорируются.
Если переменные среды указаны с помощью параметра environment в определении контейнера, они имеют приоритет над переменными, содержащимися в файле среды. Если указаны несколько файлов среды, содержащих одну и ту же переменную, они обрабатываются сверху вниз. Рекомендуется использовать уникальные имена переменных. Дополнительную информацию см. в разделе Указание переменных среды в руководстве разработчика Amazon Elastic Container Service.
(structure)
Список файлов, содержащих переменные среды для передачи контейнеру. Можно указать до десяти файлов со средой. Файл должен иметь расширение .env. Каждая строка в файле среды должна содержать переменную среды в формате VARIABLE=VALUE. Строки, начинающиеся с #, рассматриваются как комментарии и игнорируются.
Если переменные среды указаны с помощью параметра environment в определении контейнера, они имеют приоритет над переменными, содержащимися в файле среды. Если указаны несколько файлов среды, содержащих одну и ту же переменную, они обрабатываются сверху вниз. Рекомендуется использовать уникальные имена переменных. Дополнительную информацию см. в разделе Использование файла для передачи переменных среды контейнеру в руководстве разработчика Amazon Elastic Container Service.
Файлы переменных среды — это объекты в Amazon S3, и к ним применяются все соображения безопасности Amazon S3.
Для типа запуска Fargate необходимо использовать следующие платформы:
- Версия платформы Linux
1.4.0или более поздняя. - Версия платформы Windows
1.0.0или более поздняя.
При использовании типа запуска Fargate следует учитывать следующее:
- Файл обрабатывается как собственный файл Docker env-file.
- Обработка экранирования оболочки не поддерживается.
- Точка входа контейнера интерпретирует
VARIABLEзначения.
value -> (string)
type -> (string)
s3.mountPoints -> (list)
Точки подключения для томов данных в контейнере.
Этот параметр соответствует Volumes в команде docker container create и параметру --volume в docker run.
Контейнеры Windows могут подключать целые каталоги на том же диске, что и $env:ProgramData. Контейнеры Windows не могут подключать каталоги на другом диске, и точка подключения не может находиться на разных дисках.
(structure)
Подробности для точки подключения тома, используемой в определении контейнера.
sourceVolume -> (string)
name определения задачи volume.containerPath -> (string)
readOnly -> (boolean)
true, контейнер имеет только доступ для чтения к тому. Если это значение равно false, то контейнер может записывать в том. Значение по умолчанию — false.volumesFrom -> (list)
Тома данных для подключения из другого контейнера. Этот параметр соответствует VolumesFrom в команде docker container create и параметру --volumes-from в docker run.
(structure)
Подробности о томе данных из другого контейнера в том же определении задачи.
sourceContainer -> (string)
readOnly -> (boolean)
true, контейнер имеет только доступ для чтения к тому. Если это значение равно false, то контейнер может записывать в том. Значение по умолчанию — false.linuxParameters -> (structure)
Модификации, специфичные для Linux, применяемые к конфигурации контейнера Docker по умолчанию, такие как возможности ядра Linux. Дополнительную информацию см. в разделе KernelCapabilities.
Примечание
Этот параметр не поддерживается для контейнеров Windows.capabilities -> (структура)
Возможности Linux для контейнера, которые добавляются к или удаляются из конфигурации по умолчанию, предоставленной Docker.
Примечание
Для задач, использующих тип запуска Fargate,capabilities поддерживается для всех версий платформ, но параметр add поддерживается только при использовании версии платформы 1.4.0 или более поздней.add -> (список)
Возможности Linux для контейнера, которые были добавлены к конфигурации по умолчанию, предоставленной Docker. Этот параметр соответствует CapAdd в команде docker container create и параметру --cap-add к docker run.
Примечание
Задачи, запущенные на Fargate, поддерживают только добавление возможности ядраSYS_PTRACE.Допустимые значения: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"
(строка)
drop -> (список)
Возможности Linux для контейнера, которые были удалены из конфигурации по умолчанию, предоставленной Docker. Этот параметр соответствует CapDrop в команде docker container create и параметру --cap-drop к docker run.
Допустимые значения: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"
(строка)
devices -> (список)
Любые устройства хоста, которые необходимо экспонировать для контейнера. Этот параметр соответствует Devices в команде docker container create и параметру --device к docker run.
Примечание
Если вы используете задачи с типом запуска Fargate, параметрdevices не поддерживается.(структура)
Объект, представляющий устройство хоста экземпляра контейнера.
hostPath -> (строка)
containerPath -> (строка)
permissions -> (список)
Явные разрешения, предоставляемые контейнеру для устройства. По умолчанию контейнер имеет разрешения на read , write и mknod для устройства.
(строка)
initProcessEnabled -> (булево)
init внутри контейнера, который перенаправляет сигналы и собирает процессы. Этот параметр соответствует параметру --init к docker run. Этот параметр требует версии Docker Remote API 1.25 или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
sharedMemorySize -> (целое число)
Значение размера (в МБ) тома /dev/shm. Этот параметр соответствует параметру --shm-size к docker run.
Примечание
Если вы используете задачи с типом запуска Fargate, параметрsharedMemorySize не поддерживается.tmpfs -> (список)
Путь контейнера, параметры монтирования и размер (в МБ) mount tmpfs. Этот параметр соответствует параметру --tmpfs к docker run.
Примечание
Если вы используете задачи с типом запуска Fargate, параметрtmpfs не поддерживается.(структура)
Путь контейнера, параметры монтирования и размер tmpfs mount.
containerPath -> (строка)
size -> (целое число)
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.
Если указано значение maxSwap равное 0, контейнер не будет использовать свопинг. Допустимые значения — 0 или любое положительное целое число. Если параметр maxSwap опущен, контейнер будет использовать конфигурацию свопинга для экземпляра контейнера, на котором он работает. Для использования параметра swappiness необходимо задать значение maxSwap.
Примечание
Если вы используете задачи с типом запуска Fargate, параметр maxSwap не поддерживается.
Если вы используете задачи на Amazon Linux 2023, параметр swappiness не поддерживается.
swappiness -> (целое число)
Это позволяет настроить поведение контейнера при использовании памяти свопинга. Значение swappiness равное 0 приведет к тому, что свопинг не произойдет, пока это не будет совершенно необходимо. Значение swappiness равное 100 приведет к тому, что страницы будут очень агрессивно меняться местами. Допустимые значения — целые числа от 0 до 100. Если параметр swappiness не указан, используется значение по умолчанию 60. Если значение не указано для maxSwap, этот параметр игнорируется. Этот параметр соответствует параметру --memory-swappiness команды docker run.
Примечание
Если вы используете задачи с типом запуска Fargate, параметр swappiness не поддерживается.
Если вы используете задачи на Amazon Linux 2023, параметр swappiness не поддерживается.
secrets -> (список)
Секреты, передаваемые контейнеру. Дополнительную информацию см. в разделе Указание конфиденциальных данных в Руководстве разработчика Amazon Elastic Container Service.
(структура)
Объект, представляющий секрет, который необходимо экспонировать для контейнера. Секреты могут быть экспонированы контейнеру следующими способами:
- Для внедрения конфиденциальных данных в ваши контейнеры в качестве переменных среды используйте параметр определения контейнера
secrets. - Для ссылки на конфиденциальную информацию в конфигурации журналов контейнера используйте параметр определения контейнера
secretOptions.
Дополнительную информацию см. в разделе Указание конфиденциальных данных в Руководстве разработчика Amazon Elastic Container Service.
name -> (строка)
valueFrom -> (строка)
Секрет, который необходимо экспонировать для контейнера. Поддерживаемые значения — полный ARN секрета Secrets Manager или полный ARN параметра в хранилище параметров SSM.
Сведения о необходимых разрешениях Identity and Access Management см. в разделе Требуемые разрешения IAM для секретов Amazon ECS (для Secrets Manager) или Требуемые разрешения IAM для секретов Amazon ECS (для хранилища параметров Systems Manager) в Руководстве разработчика Amazon Elastic Container Service.
Примечание
Если параметр хранилища параметров SSM существует в той же области, что и задача, которую вы запускаете, вы можете использовать либо полный ARN, либо имя параметра. Если параметр существует в другой области, необходимо указать полный ARN.dependsOn -> (список)
Определенные зависимости для запуска и завершения контейнера. Контейнер может содержать несколько зависимостей от других контейнеров в определении задачи. При определении зависимости для запуска контейнера, для завершения контейнера она меняется на обратную.
Для задач, использующих тип запуска EC2, экземпляры контейнеров требуют как минимум версии 1.26.0 агента контейнера для включения зависимостей контейнеров. Однако рекомендуется использовать последнюю версию агента контейнера. Сведения о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента Amazon ECS Container в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS образ Linux AMI, экземпляру требуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запущены с версии 20190301 или выше, то они содержат необходимые версии агента контейнера и ecs-init. Дополнительные сведения см. в разделе Оптимизированный для Amazon ECS образ Linux AMI в Руководстве разработчика Amazon Elastic Container Service.
Для задач, использующих тип запуска Fargate, задача или служба требуют следующих платформ:
- Версия платформы Linux
1.3.0или выше. - Версия платформы Windows
1.0.0или выше.
(структура)
Определенные зависимости для запуска и завершения контейнера. Контейнер может содержать несколько зависимостей. При определении зависимости для запуска контейнера, для завершения контейнера она меняется на обратную.
Ваши экземпляры контейнеров Amazon ECS требуют как минимум версии 1.26.0 агента контейнера для использования зависимостей контейнеров. Однако рекомендуется использовать последнюю версию агента контейнера. Сведения о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента Amazon ECS Container в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS образ Linux AMI, экземпляру требуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запущены с версии 20190301 или выше, то они содержат необходимые версии агента контейнера и ecs-init. Дополнительные сведения см. в разделе Оптимизированный для Amazon ECS образ Linux AMI в Руководстве разработчика Amazon Elastic Container Service.
Примечание
Для задач, использующих тип запуска Fargate, задача или служба требуют следующих платформ:
- Версия платформы Linux
1.3.0или выше. - Версия платформы Windows
1.0.0или выше.
Дополнительные сведения о создании зависимости контейнера см. в разделе Зависимость контейнера в Руководстве разработчика Amazon Elastic Container Service.
containerName -> (строка)
condition -> (строка)
Условие зависимости контейнера. Доступны следующие условия и их поведение:
-
START- Это условие имитирует поведение ссылок и томов на данный момент. Оно проверяет, запущен ли зависимый контейнер, прежде чем разрешить запуск других контейнеров. -
COMPLETE- Это условие проверяет, завершился ли зависимый контейнер (вышел), прежде чем разрешить запуск других контейнеров. Это может быть полезно для необязательных контейнеров, которые выполняют скрипт, а затем выходят. Это условие не может быть установлено для обязательного контейнера. -
SUCCESS- Это условие такое же, какCOMPLETE, но также требует, чтобы контейнер завершился со статусомzero. Это условие не может быть установлено для обязательного контейнера. -
HEALTHY- Это условие проверяет, прошел ли зависимый контейнер проверку состояния Docker, прежде чем разрешить запуск других контейнеров. Это требует, чтобы у зависимого контейнера были настроены проверки состояния. Это условие проверяется только при запуске задачи.
startTimeout -> (целое число)
Срок ожидания (в секундах) перед отказом от разрешения зависимостей для контейнера. Например, вы указываете два контейнера в определении задачи, где containerA зависит от containerB, достигая статусов COMPLETE, SUCCESS или HEALTHY. Если для containerB указано значение startTimeout, и оно не достигнет желаемого состояния в течение этого времени, containerA откажется и не запустится. Это приводит к тому, что задача переходит в состояние STOPPED.
Примечание
Когда используется переменная конфигурации агента контейнераECS_CONTAINER_START_TIMEOUT, она применяется независимо от этого значения тайм-аута запуска.Для задач, использующих тип запуска Fargate, задача или служба требуют следующих платформ:
- Версия платформы Linux
1.3.0или выше. - Версия платформы Windows
1.0.0или выше.
Для задач, использующих тип запуска EC2, ваши экземпляры контейнеров требуют как минимум версии 1.26.0 агента контейнера для использования значения тайм-аута запуска контейнера. Однако рекомендуется использовать последнюю версию агента контейнера. Сведения о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента Amazon ECS Container в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS образ Linux AMI, экземпляру требуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запущены с версии 20190301 или выше, то они содержат необходимые версии агента контейнера и ecs-init. Дополнительные сведения см. в разделе Оптимизированный для Amazon ECS образ Linux AMI в Руководстве разработчика Amazon Elastic Container Service.
Допустимые значения для Fargate составляют от 2 до 120 секунд.
stopTimeout -> (целое число)
Срок ожидания (в секундах) перед принудительным завершением контейнера, если он не завершился нормально самостоятельно.
Для задач, использующих тип запуска Fargate, задача или служба требуют следующих платформ:
- Версия платформы Linux
1.3.0или выше. - Версия платформы Windows
1.0.0или выше.
Для задач, использующих тип запуска Fargate, максимальное значение тайм-аута завершения равно 120 секундам, а если параметр не указан, используется значение по умолчанию 30 секунд.
Для задач, использующих тип запуска EC2, если параметр stopTimeout не указан, используется значение, заданное для переменной конфигурации агента Amazon ECS контейнера ECS_CONTAINER_STOP_TIMEOUT. Если ни параметр stopTimeout, ни переменная конфигурации агента ECS_CONTAINER_STOP_TIMEOUT не заданы, используются значения по умолчанию 30 секунд для контейнеров Linux и 30 секунд для контейнеров Windows. Ваши экземпляры контейнеров требуют как минимум версии 1.26.0 агента контейнера для использования значения тайм-аута завершения контейнера. Однако рекомендуется использовать последнюю версию агента контейнера. Сведения о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента Amazon ECS Container в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS образ Linux AMI, экземпляру требуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запущены с версии 20190301 или выше, то они содержат необходимые версии агента контейнера и ecs-init. Дополнительные сведения см. в разделе Оптимизированный для Amazon ECS образ Linux AMI в Руководстве разработчика Amazon Elastic Container Service.
Допустимые значения для Fargate составляют от 2 до 120 секунд.
versionConsistency -> (строка)
enabled. Если вы установите значение для контейнера как disabled, Amazon ECS не будет разрешать предоставленный тег изображения контейнера в дайджест и будет использовать исходный URI изображения, указанный в определении контейнера, для развертывания. Дополнительные сведения о разрешении изображений контейнеров см. в разделе Разрешение изображений контейнеров в Руководстве разработчика Amazon ECS.hostname -> (строка)
Имя хоста для вашего контейнера. Этот параметр соответствует Hostname в команде docker container create и параметру --hostname для docker run.
Примечание
Параметрhostname не поддерживается, если вы используете режим сети awsvpc.user -> (строка)
Пользователь для использования внутри контейнера. Этот параметр соответствует User в команде docker container create и параметру --user для docker run.
Предупреждение
При запуске задач с помощью режима сетиhost не запускайте контейнеры с использованием root-пользователя (UID 0). Рекомендуется использовать пользователя, не являющегося root, для повышения безопасности.Вы можете указать user, используя следующие форматы. При указании UID или GID необходимо указать его как положительное целое число.
useruser:groupuiduid:giduser:giduid:group
Примечание
Этот параметр не поддерживается для контейнеров Windows.workingDirectory -> (строка)
WorkingDir в команде docker container create и параметру --workdir для docker run.disableNetworking -> (булево)
При значении true сеть внутри контейнера отключена. Этот параметр соответствует NetworkDisabled в команде docker container create.
Примечание
Этот параметр не поддерживается для контейнеров Windows.privileged -> (булево)
При значении true контейнеру предоставляются повышенные привилегии на хост-экземпляре контейнера (аналогично пользователю root). Этот параметр соответствует Privileged в команде docker container create и параметру --privileged для docker run.
Примечание
Этот параметр не поддерживается для контейнеров Windows или задач, выполняемых на Fargate.readonlyRootFilesystem -> (булево)
При значении true контейнеру предоставляется доступ на чтение только к своей файловой системе корня. Этот параметр соответствует ReadonlyRootfs в команде docker container create и параметру --read-only для docker run.
Примечание
Этот параметр не поддерживается для контейнеров Windows.dnsServers -> (список)
Список DNS-серверов, предоставляемых контейнеру. Этот параметр соответствует Dns в команде docker container create и параметру --dns команды docker run.
Примечание
Этот параметр не поддерживается для контейнеров Windows.(строка)
dnsSearchDomains -> (список)
Список DNS-доменных имен поиска, предоставляемых контейнеру. Этот параметр соответствует DnsSearch в команде docker container create и параметру --dns-search команды docker run.
Примечание
Этот параметр не поддерживается для контейнеров Windows.(строка)
extraHosts -> (список)
Список сопоставлений имен хостов и IP-адресов, которые необходимо добавить к файлу /etc/hosts контейнера. Этот параметр соответствует ExtraHosts в команде docker container create и параметру --add-host команды docker run.
Примечание
Этот параметр не поддерживается для контейнеров Windows или задач, использующих режим сетиawsvpc.(структура)
Имена хостов и записи IP-адресов, которые добавляются в файл /etc/hosts контейнера с помощью параметра extraHosts его ContainerDefinition.
hostname -> (строка)
/etc/hosts.ipAddress -> (строка)
/etc/hosts.dockerSecurityOptions -> (список)
Список строк для предоставления пользовательской конфигурации для нескольких систем безопасности. Это поле недействительно для контейнеров в задачах, использующих тип запуска Fargate.
Для задач Linux на EC2 этот параметр можно использовать для ссылки на пользовательские метки для систем многоуровневой безопасности SELinux и AppArmor.
Для любых задач на EC2 этот параметр можно использовать для ссылки на файл спецификации учетных данных, который настраивает контейнер для аутентификации Active Directory. Дополнительную информацию см. в разделе Использование gMSAs для контейнеров Windows и Использование gMSAs для контейнеров Linux в руководстве Amazon Elastic Container Service Developer Guide.
Этот параметр соответствует SecurityOpt в команде docker container create и параметру --security-opt команды docker run.
Примечание
Агент контейнеров Amazon ECS, работающий на экземпляре контейнера, должен зарегистрироваться с переменными окруженияECS_SELINUX_CAPABLE=true или ECS_APPARMOR_CAPABLE=true, прежде чем контейнеры, размещенные на этом экземпляре, смогут использовать эти параметры безопасности. Дополнительную информацию см. в разделе Настройка агента контейнеров Amazon ECS в руководстве Amazon Elastic Container Service Developer Guide.Допустимые значения: “no-new-privileges” | “apparmor:PROFILE” | “label:value” | “credentialspec:CredentialSpecFilePath”
(строка)
interactive -> (булево)
true, вы можете развертывать контейнерные приложения, которым требуется stdin или выделенный tty. Этот параметр соответствует OpenStdin в команде docker container create и параметру --interactive команды docker run.pseudoTerminal -> (булево)
true, выделяется TTY. Этот параметр соответствует Tty в команде docker container create и параметру --tty команды docker run.dockerLabels -> (отображение)
Отображение пар "ключ-значение" меток для добавления в контейнер. Этот параметр соответствует Labels в команде docker container create и параметру --label команды docker run. Этот параметр требует версии 1.18 Docker Remote API или более поздней на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
key -> (строка)
value -> (строка)
ulimits -> (список)
Список ulimits для установки в контейнере. Если в определении задачи указано значение ulimit, оно переопределяет значения по умолчанию, установленные Docker. Этот параметр соответствует Ulimits в команде docker container create и параметру --ulimit команды docker run. Допустимые значения имен отображаются в типе данных Ulimit.
Задачи Amazon ECS, размещенные на Fargate, используют значения пределов ресурсов по умолчанию, установленные операционной системой, за исключением параметра предела ресурса nofile, который Fargate переопределяет. Предел ресурса nofile ограничивает количество открытых файлов, которые может использовать контейнер. Значение по умолчанию для мягкого ограничения nofile равно 65535, а значение по умолчанию для жесткого ограничения равно 65535.
Этот параметр требует версии 1.18 Docker Remote API или более поздней на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
Примечание
Этот параметр не поддерживается для контейнеров Windows.(структура)
Параметры ulimit, передаваемые контейнеру.
Задачи Amazon ECS, размещенные на Fargate, используют значения пределов ресурсов по умолчанию, установленные операционной системой, за исключением параметра предела ресурса nofile, который Fargate переопределяет. Предел ресурса nofile ограничивает количество открытых файлов, которые может использовать контейнер. Значение по умолчанию для мягкого ограничения nofile равно 65535, а значение по умолчанию для жесткого ограничения равно 65535.
Вы можете указать параметры ulimit для контейнера в определении задачи.
name -> (строка)
type ulimit.softLimit -> (целое число)
ulimit. Значение может быть указано в байтах, секундах или как счет, в зависимости от type типа ulimit.hardLimit -> (целое число)
ulimit. Значение может быть указано в байтах, секундах или как счет, в зависимости от type типа ulimit.logConfiguration -> (структура)
Спецификация конфигурации журналов для контейнера.
Этот параметр сопоставляется с LogConfig в команде создания контейнера Docker и параметром --log-driver для команды docker run. По умолчанию контейнеры используют тот же драйвер журналов, что и демон Docker. Однако контейнер может использовать другой драйвер журналов, отличный от используемого демоном Docker, указав драйвер журналов в определении контейнера. Для использования другого драйвера журналов для контейнера система журналов должна быть должным образом настроена в экземпляре контейнера (или на другом сервере журналов для вариантов удалённого ведения журналов).
Примечание
Amazon ECS в настоящее время поддерживает подмножество драйверов журналов, доступных для демона Docker (показано в типе данных LogConfiguration). Дополнительные драйверы журналов могут быть доступны в будущих выпусках агента Amazon ECS для контейнеров.Этот параметр требует версию 1.18 API Docker Remote или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
Примечание
Агент Amazon ECS, работающий на экземпляре контейнера, должен зарегистрировать доступные на этом экземпляре драйверы журналов с переменной средыECS_AVAILABLE_LOGGING_DRIVERS , прежде чем контейнеры на этом экземпляре смогут использовать эти параметры конфигурации журналов. Дополнительная информация представлена в разделе Конфигурация агента Amazon ECS для контейнеров в Руководстве разработчика Amazon Elastic Container Service.logDriver -> (строка)
Драйвер журналов, который следует использовать для контейнера.
Для задач на Fargate поддерживаются драйверы журналов awslogs , splunk и awsfirelens .
Для задач, размещённых на экземплярах Amazon EC2, поддерживаются драйверы журналов awslogs , fluentd , gelf , json-file , journald , syslog , splunk и awsfirelens .
Дополнительную информацию об использовании драйвера журналов awslogs см. в разделе Отправка журналов Amazon ECS в CloudWatch в Руководстве разработчика Amazon Elastic Container Service.
Дополнительную информацию об использовании драйвера журналов awsfirelens см. в разделе Отправка журналов Amazon ECS в Amazon Web Services service или Amazon Web Services Partner.
Примечание
Если у вас есть пользовательский драйвер, который не указан в списке, вы можете видоизменить проект агента Amazon ECS для контейнеров, доступный на GitHub, и настроить его для работы с этим драйвером. Мы рекомендуем вам отправлять запросы на добавление изменений, которые вы хотели бы видеть включенными. Однако в настоящее время мы не предоставляем поддержку запуска изменённых копий этого программного обеспечения.options -> (массив)
Параметры конфигурации, которые следует передать драйверу журналов.
Параметры, которые вы можете указать, зависят от драйвера журналов. Некоторые из параметров, которые вы можете указать, когда вы используете драйвер журналов awslogs для перенаправления журналов в Amazon CloudWatch, включают следующие:
Обязательно: Нет
Указывает, хотите ли вы, чтобы группа журналов создавалась автоматически. Если этот параметр не указан, он устанавливается по умолчанию в false .
Примечание
Ваша политика IAM должна содержать разрешение logs:CreateLogGroup, прежде чем вы попытаетесь использовать awslogs-create-group .
awslogs-region
Обязательно: Да
Укажите регион Amazon Web Services, в который драйвер журналов awslogs должен отправлять ваши журналы Docker. Вы можете настроить отправку всех журналов из кластеров в различных регионах в один регион в CloudWatch Logs, чтобы они все отображались в одном месте. В противном случае вы можете разделить их по регионам для большей детализации. Убедитесь, что указанная группа журналов существует в регионе, который вы указываете с этим параметром.
Обязательно: Да
Убедитесь, что вы указали группу журналов, в которую драйвер журналов awslogs отправляет свои потоки журналов.
Обязательно: Да, при использовании Fargate. Необязательно при использовании EC2.
Используйте параметр awslogs-stream-prefix, чтобы связать поток журналов с указанным префиксом, именем контейнера и идентификатором задачи Amazon ECS, к которой принадлежит контейнер. Если вы укажете префикс с этим параметром, то поток журналов будет иметь формат prefix-name/container-name/ecs-task-id .
Если вы не укажете префикс с этим параметром, то поток журналов будет назван в соответствии с идентификатором контейнера, присвоенным демоном Docker на экземпляре контейнера. Поскольку отслеживание журналов обратно к контейнеру, который их отправил, с помощью только идентификатора Docker контейнера (который доступен только на экземпляре контейнера) сложно, мы рекомендуем указать префикс с этим параметром.
Для сервисов Amazon ECS вы можете использовать имя сервиса в качестве префикса. Это позволяет отслеживать потоки журналов до сервиса, к которому принадлежит контейнер, имени контейнера, который их отправил, и идентификатору задачи, к которой принадлежит контейнер.
Для отображения журналов в панели Журналы при использовании консоли Amazon ECS необходимо указать префикс потока журналов.
Обязательно: Нет
Этот параметр определяет шаблон начального многострочного в формате Python strftime . Сообщение журнала состоит из строки, соответствующей шаблону, и всех последующих строк, которые не соответствуют шаблону. Соответствующая строка является разделителем между сообщениями журнала.
Один из примеров использования этого формата — для разбора вывода, например, дампов стека, который в противном случае может записываться в несколько записей. Правильный шаблон позволяет его захватить в одной записи.
Для получения дополнительной информации см. awslogs-datetime-format.
Вы не можете настроить оба параметра awslogs-datetime-format и awslogs-multiline-pattern.
Примечание
Многострочная запись выполняет разбор и сопоставление всех сообщений журналов с помощью регулярных выражений. Это может негативно сказаться на производительности ведения журнала.awslogs-multiline-pattern
Обязательно: Нет
Этот параметр определяет многострочный начальный шаблон с использованием регулярного выражения. Сообщение журнала состоит из строки, соответствующей шаблону, и всех последующих строк, которые не соответствуют шаблону. Соответствующая строка является разделителем между сообщениями журнала.
Для получения дополнительной информации см. awslogs-multiline-pattern.
Этот параметр игнорируется, если также настроен параметр awslogs-datetime-format.
Вы не можете настроить оба параметра awslogs-datetime-format и awslogs-multiline-pattern.
Примечание
Многострочная запись выполняет разбор и сопоставление всех сообщений журналов с помощью регулярных выражений. Это может негативно сказаться на производительности ведения журнала.Следующие параметры применяются ко всем поддерживаемым драйверам журналов.
Обязательно: Нет
Допустимые значения: non-blocking | blocking
Этот параметр определяет режим доставки сообщений журнала от контейнера до драйвера журнала, указанного с помощью logDriver . Выбранный режим доставки влияет на доступность приложения при прерывании потока журналов из контейнера.
Если вы используете режим blocking, и поток журналов прерван, вызовы из кода контейнера для записи в потоки stdout и stderr будут блокироваться. В результате этого будет блокироваться поток ведения журнала приложения. Это может привести к тому, что приложение станет неотзывчивым и к сбоям проверки работоспособности контейнера.
Если вы используете режим non-blocking, журналы контейнера вместо этого хранятся в промежуточном буфере оперативной памяти, настроенном с помощью параметра max-buffer-size. Это предотвращает неотзывчивость приложения при невозможности отправки журналов. Мы рекомендуем использовать этот режим, если вы хотите гарантировать доступность сервиса и готовы к потере некоторых журналов. Дополнительная информация представлена в статье Предотвращение потери журналов с помощью неблокирующего режима в драйвере журналов контейнера «awslogs» <http://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`__.
Вы можете установить значение по умолчанию для mode для всех контейнеров в определённом регионе Amazon Web Services, используя настройку учётной записи defaultLogDriverMode. Если вы не указываете параметр mode или не настраиваете настройку учётной записи, Amazon ECS по умолчанию будет использовать режим blocking. Дополнительную информацию о настройке учётной записи см. в разделе Режим по умолчанию для драйвера журналов в Руководстве разработчика Amazon Elastic Container Service.
Обязательно: Нет
Значение по умолчанию: 1m
Когда используется режим non-blocking, параметр журнала max-buffer-size контролирует размер буфера, используемого для промежуточного хранения сообщений. Убедитесь, что вы указали достаточный размер буфера в соответствии с вашим приложением. Когда буфер заполняется, дальнейшие журналы не могут быть сохранены. Журналы, которые не могут быть сохранены, теряются.
Для перенаправления журналов с помощью маршрутизатора журналов splunk необходимо указать splunk-token и splunk-url.
Когда вы используете маршрутизатор журналов awsfirelens для перенаправления журналов в место назначения Amazon Web Services или Amazon Web Services Partner Network для хранения и анализа журналов, вы можете установить параметр log-driver-buffer-limit, чтобы ограничить количество событий, которые буферизуются в памяти перед отправкой в контейнер маршрутизатора журналов. Это может помочь решить потенциальную проблему потери журналов, поскольку высокая пропускная способность может привести к исчерпанию памяти для буфера внутри Docker.
Другие параметры, которые вы можете указать при использовании awsfirelens для перенаправления журналов, зависят от места назначения. При экспорте журналов в Amazon Data Firehose вы можете указать регион Amazon Web Services с помощью region и имя потока журналов с помощью delivery_stream.
При экспорте журналов в Amazon Kinesis Data Streams вы можете указать регион Amazon Web Services с помощью region и имя потока данных с помощью stream.
При экспорте журналов в Amazon OpenSearch Service вы можете указать параметры, такие как Name , Host (конечная точка OpenSearch Service без протокола), Port , Index , Type , Aws_auth , Aws_region , Suppress_Type_Name и tls . Для получения дополнительной информации см. Под капотом: FireLens для задач Amazon ECS.
При экспорте журналов в Amazon S3 вы можете указать ведро с помощью параметра bucket. Вы также можете указать region , total_file_size , upload_timeout и use_put_object в качестве параметров.
Этот параметр требует версию 1.19 API Docker Remote или выше на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
key -> (строка)
value -> (строка)
secretOptions -> (список)
Секреты для конфигурации журналов. Дополнительную информацию см. в разделе «Определение конфиденциальных данных» в руководстве разработчика Amazon Elastic Container Service.
(структура)
Объект, представляющий секрет, который необходимо открыть для контейнера. Секреты могут быть открыты для контейнера следующим образом:
- Для вставки конфиденциальных данных в контейнеры в качестве переменных среды используйте параметр определения контейнера
secrets. - Для ссылки на конфиденциальную информацию в конфигурации журналов контейнера используйте параметр определения контейнера
secretOptions.
Дополнительную информацию см. в разделе «Определение конфиденциальных данных» в руководстве разработчика Amazon Elastic Container Service.
name -> (строка)
valueFrom -> (строка)
Секрет, который необходимо открыть для контейнера. Допустимые значения — полный ARN секрета Secrets Manager или полный ARN параметра в хранилище параметров SSM.
Сведения о необходимых разрешениях Identity and Access Management см. в разделе «Необходимые разрешения IAM для секретов Amazon ECS (для Secrets Manager)» или «Необходимые разрешения IAM для секретов Amazon ECS (для хранилища параметров Systems Manager)» в руководстве разработчика Amazon Elastic Container Service.
Примечание
Если параметр хранилища параметров SSM существует в той же области, что и задача, которую вы запускаете, то вы можете использовать полный ARN или имя параметра. Если параметр находится в другой области, необходимо указать полный ARN.healthCheck -> (структура)
Команда проверки состояния контейнера и связанные с ней параметры конфигурации для контейнера. Этот параметр соответствует параметру HealthCheck в команде docker container create и параметру HEALTHCHECK команды docker run.
command -> (список)
Массив строк, представляющий команду, которую выполняет контейнер для определения своего состояния. Массив строк должен начинаться с CMD для непосредственного выполнения аргументов команды или CMD-SHELL для выполнения команды с помощью оболочки контейнера.
При использовании панели JSON Amazon Web Services Management Console, командной строки или API заключите список команд в двойные кавычки и скобки.
[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]При использовании Amazon Web Services Management Console двойные кавычки и скобки не включаются.
CMD-SHELL, curl -f http://localhost/ || exit 1Код завершения 0 указывает на успех, а код завершения, отличный от 0, указывает на ошибку. Дополнительную информацию см. в HealthCheck в команде docker container create.
(строка)
interval -> (целое число)
command.timeout -> (целое число)
command.retries -> (целое число)
command.startPeriod -> (целое число)
Необязательный период времени, чтобы предоставить контейнерам время для инициализации, прежде чем неудачные проверки состояния будут учитываться в максимальном количестве попыток. Вы можете указать значение от 0 до 300 секунд. По умолчанию параметр startPeriod выключен. Это значение применяется только при указании параметра command.
Примечание
Если проверка состояния завершается успешно в течениеstartPeriod , то контейнер считается работоспособным, и любые последующие неудачи учитываются в максимальном количестве попыток.systemControls -> (список)
Список параметров ядра с указанием области для установки в контейнере. Этот параметр соответствует параметру Sysctls в команде docker container create и параметру --sysctl команды docker run. Например, вы можете настроить параметр net.ipv4.tcp_keepalive_time для поддержания долгоживущих соединений.
(структура)
Список параметров ядра с указанием области для установки в контейнере. Этот параметр соответствует параметру Sysctls в команде docker container create и параметру --sysctl команды docker run. Например, вы можете настроить параметр net.ipv4.tcp_keepalive_time для поддержания долгоживущих соединений.
Не рекомендуется указывать параметры systemControls, относящиеся к сети, для нескольких контейнеров в одной задаче, которая также использует режим сети awsvpc или host. Это связано со следующими недостатками:
- Для задач, использующих режим сети
awsvpc, включая Fargate, если вы устанавливаете параметрsystemControlsдля любого контейнера, он применяется ко всем контейнерам в задаче. Если вы устанавливаете разные параметрыsystemControlsдля нескольких контейнеров в одной задаче, контейнер, запущенный последним, определяет, какие параметрыsystemControlsвступят в силу. - Для задач, использующих режим сети
host, пространства имен сетиsystemControlsне поддерживаются.
Если вы настраиваете пространство имен IPC для использования контейнеров в задаче, на параметры системного управления распространяются следующие условия. Дополнительную информацию см. в разделе «Режим IPC».
- Для задач, использующих режим IPC
host, пространства имен IPCsystemControlsне поддерживаются. - Для задач, использующих режим IPC
task, значения пространства имен IPCsystemControlsприменяются ко всем контейнерам в задаче.
Примечание
Этот параметр не поддерживается для контейнеров Windows.Примечание
Этот параметр поддерживается только для задач, размещенных на Fargate, если задачи используют версию платформы1.4.0 или более позднюю (Linux). Это не поддерживается для контейнеров Windows на Fargate.namespace -> (строка)
value.value -> (строка)
Параметр ядра с указанием области для настройки value.
Допустимые значения пространства имен IPC: "kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced" и Sysctls, начинающиеся с "fs.mqueue.*"
Допустимые значения пространства имен сети: Sysctls, начинающиеся с "net.*". Принимаются только пространства имен Sysctls, существующие внутри контейнера, начинающиеся с «net.*.
Все эти значения поддерживаются Fargate.
resourceRequirements -> (список)
Тип и количество ресурса, назначенного контейнеру. Поддерживается только ресурс GPU.
(структура)
Тип и количество ресурса, назначенного контейнеру. Поддерживаются типы ресурсов — GPU и ускорители Elastic Inference. Дополнительную информацию см. в разделе «Работа с GPU в Amazon ECS» или «Работа с Amazon Elastic Inference в Amazon ECS» в руководстве разработчика Amazon Elastic Container Service.
value -> (строка)
Значение для указанного типа ресурса.
Если тип — GPU, значение — количество физических GPUs, которые агент Amazon ECS резервирует для контейнера. Количество резервируемых GPU для всех контейнеров в задаче не может превышать количество доступных GPU на экземпляре контейнера, на котором запущена задача.
Если тип — InferenceAccelerator, значение value соответствует значению deviceName для InferenceAccelerator, указанного в определении задачи.
type -> (строка)
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.
Примечание
Задачи, размещенные на Fargate, поддерживают только тип файла конфигурацииfile.key -> (строка)
value -> (строка)
credentialSpecs -> (список)
Список ARN в SSM или Amazon S3 для файла спецификации учетных данных (CredSpec), который настраивает контейнер для аутентификации Active Directory. Рекомендуется использовать этот параметр вместо dockerSecurityOptions. Максимальное количество ARN — 1.
Существуют два формата для каждого ARN.
Используйте credentialspecdomainless:MyARN, чтобы предоставить CredSpec с дополнительным разделом для секрета в Secrets Manager. Предоставляйте учетные данные для входа в домен в секрете.
Каждая задача, выполняемая на любом экземпляре контейнера, может присоединяться к различным доменам.
Вы можете использовать этот формат без присоединения экземпляра контейнера к домену.
Используйте credentialspec:MyARN, чтобы предоставить CredSpec для одного домена.
Вы должны присоединить экземпляр контейнера к домену, прежде чем запускать любые задачи, использующие это определение задачи.
В обоих форматах замените MyARN на ARN в SSM или Amazon S3.
Если вы предоставляете credentialspecdomainless:MyARN, credspec должен предоставить ARN в Secrets Manager для секрета, содержащего имя пользователя, пароль и домен для подключения. Для повышения безопасности экземпляр не присоединяется к домену для аутентификации без домена. Другие приложения на экземпляре не могут использовать учетные данные без домена. Вы можете использовать этот параметр для запуска задач на одном экземпляре, даже если задачам необходимо присоединяться к различным доменам. Дополнительную информацию см. в разделах «Использование gMSA для контейнеров Windows» и «Использование gMSA для контейнеров Linux».
(строка)
family -> (строка)
Имя семейства, к которому относится данное определение задачи. Разрешено до 255 символов. Допускаются буквы (как прописные, так и строчные), цифры, дефисы (-) и символы подчеркивания (_).
Семейство группирует несколько версий определения задачи. Amazon ECS присваивает первой зарегистрированной задаче в семействе номер ревизии 1. Amazon ECS присваивает последовательные номера ревизии каждой задаче, которую вы добавляете.
taskRoleArn -> (string)
executionRoleArn -> (string)
networkMode -> (string)
Режим сети Docker, который следует использовать для контейнеров в задаче. Допустимые значения: none , bridge , awsvpc , и host . Если режим сети не указан, используется значение по умолчанию bridge .
Для задач Amazon ECS на Fargate требуется режим сети awsvpc . Для задач Amazon ECS на экземплярах Amazon EC2 Linux можно использовать любой режим сети. Для задач Amazon ECS на экземплярах Amazon EC2 Windows можно использовать <default> или awsvpc . Если режим сети установлен на none , вы не можете указывать сопоставления портов в определениях контейнеров, и контейнеры задач не имеют внешнего подключения. Режимы сети host и awsvpc обеспечивают наивысшую производительность сети для контейнеров, так как они используют стек сети EC2 вместо виртуализированного стека сети, предоставляемого режимом bridge .
В режимах сети host и awsvpc открытые порты контейнеров отображаются непосредственно на соответствующий порт хоста (для режима host ) или порт прикрепленного интерфейса эластичной сети (для режима awsvpc ), поэтому вы не можете воспользоваться динамическими сопоставлениями портов хоста.
Предупреждение
При использовании режима сетиhost не следует запускать контейнеры с использованием пользователя root (UID 0). Рекомендуется использовать пользователя, отличного от root.Если режим сети установлен на awsvpc , задаче назначается интерфейс эластичной сети, и при создании службы или запуске задачи с определением задачи необходимо указать значение NetworkConfiguration. Подробнее см. в разделе «Сети задач» в руководстве разработчика Amazon Elastic Container Service.
Если режим сети установлен на host , вы не можете запускать несколько экземпляров одной и той же задачи на одном экземпляре контейнера при использовании сопоставлений портов.
revision -> (integer)
1 . Каждый раз при регистрации новой ревизии определения задачи в том же семействе значение ревизии увеличивается на единицу. Это происходит даже в том случае, если вы отменили регистрацию предыдущих ревизий в этом семействе.volumes -> (list)
Список определений объёма данных для задачи. Дополнительную информацию см. в разделе «Использование томов данных в задачах» в руководстве разработчика Amazon Elastic Container Service.
Примечание
Параметрыhost и sourcePath не поддерживаются для задач, выполняемых на Fargate.(структура)
Настройка тома данных для задач, запущенных с помощью этого определения задачи. Указание настройки тома в определении задачи необязательно. Настройка тома может содержать несколько томов, но при запуске поддерживается только один. Каждый том, определённый в настройке тома, может указать только один name и один из configuredAtLaunch, dockerVolumeConfiguration, efsVolumeConfiguration, fsxWindowsFileServerVolumeConfiguration или host. Если указана пустая настройка тома, по умолчанию Amazon ECS использует том хоста. Дополнительную информацию см. в разделе «Использование томов данных в задачах».
name -> (строка)
Имя тома. Разрешается до 255 букв (строчные и прописные), цифр, символов подчеркивания и дефисов.
При использовании тома, настроенного при запуске, требуется name и он также должен быть указан как имя тома в параметре ServiceVolumeConfiguration или TaskVolumeConfiguration при создании службы или автономной задачи.
Для всех других типов томов это имя ссылается на параметр sourceVolume объекта mountPoints в определении контейнера.
Когда том использует efsVolumeConfiguration, имя обязательно.
host -> (структура)
Этот параметр используется при использовании томов хоста с монтированием.
Содержимое параметра host определяет, сохраняется ли том хоста при запуске контейнера и где он хранится. Если параметр host пустой, то демон Docker назначает путь хоста для тома данных. Однако данные не гарантированно сохранятся после остановки контейнеров, связанных с ним.
Контейнеры Windows могут монтировать целые каталоги на том же диске, что и $env:ProgramData. Контейнеры Windows не могут монтировать каталоги на другом диске, и точка монтирования не может быть между дисками. Например, можно монтировать C:\my\path:C:\my\path и D:\:D:\, но не D:\my\path:C:\my\path или D:\:C:\my\path.
sourcePath -> (строка)
При использовании параметра host укажите sourcePath, чтобы указать путь на контейнере хоста, который предоставляется контейнеру. Если этот параметр пустой, то демон Docker назначил путь хоста за вас. Если параметр host содержит расположение файла sourcePath, то том данных сохраняется в указанном расположении на контейнере хоста до его удаления вручную. Если значение sourcePath не существует на контейнере хоста, то демон Docker создаёт его. Если расположение существует, содержимое папки исходного пути экспортируется.
Если используется тип запуска Fargate, параметр sourcePath не поддерживается.
dockerVolumeConfiguration -> (структура)
Этот параметр используется при использовании томов Docker.
Контейнеры Windows поддерживают только использование драйвера local. Для использования монтирования укажите параметр host.
Примечание
Тома Docker не поддерживаются задачами, выполняемыми на Fargate.scope -> (строка)
task, автоматически предоставляются при запуске задачи и уничтожаются при остановке задачи. Тома Docker, область которых определена как shared, сохраняются после остановки задачи.autoprovision -> (логическое)
Если это значение равно true, том Docker создаётся, если он ещё не существует.
Примечание
Это поле используется только еслиscope равно shared.driver -> (строка)
docker plugin ls для получения имени драйвера из вашего контейнера. Если драйвер был установлен другим способом, используйте обнаружение плагинов Docker для получения имени драйвера. Этот параметр сопоставляется с Driver в команде docker create container и параметром xxdriver к docker volume create.driverOpts -> (массив)
Карта параметров, специфичных для драйвера Docker, передаваемых через. Этот параметр сопоставляется с DriverOpts в команде docker create-volume и параметром xxopt к docker volume create.
key -> (строка)
value -> (строка)
labels -> (массив)
Пользовательские метаданные для добавления в ваш том Docker. Этот параметр сопоставляется с Labels в команде docker container create и параметром xxlabel к docker volume create.
key -> (строка)
value -> (строка)
efsVolumeConfiguration -> (структура)
Этот параметр используется при использовании файловой системы Amazon Elastic File System для хранения задач.
fileSystemId -> (строка)
rootDirectory -> (строка)
Каталог внутри файловой системы Amazon EFS для монтирования в качестве корневого каталога внутри хоста. Если этот параметр опущен, будет использован корень тома Amazon EFS. Указание / будет иметь тот же эффект, что и опускание этого параметра.
Предупреждение
Если вauthorizationConfig указан контрольный пункт доступа к EFS, параметр корневого каталога должен быть опущен или установлен на /, что заставит придерживаться пути, заданного в контрольном пункте доступа к EFS.transitEncryption -> (строка)
DISABLED. Дополнительную информацию см. в разделе «Шифрование данных при передаче» в руководстве пользователя Amazon Elastic File System.transitEncryptionPort -> (целое число)
authorizationConfig -> (структура)
Подробные данные о настройке авторизации для файловой системы Amazon EFS.
accessPointId -> (строка)
EFSVolumeConfiguration, должно быть опущено или установлено на /, что заставит придерживаться пути, заданного в контрольном пункте доступа к EFS. Если используется контрольный пункт доступа, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Дополнительную информацию см. в разделе «Работа с контрольными пунктами доступа к Amazon EFS» в руководстве пользователя Amazon Elastic File System.iam -> (строка)
EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию DISABLED. Дополнительную информацию см. в разделе «Использование контрольных пунктов доступа к Amazon EFS» в руководстве разработчика Amazon Elastic Container Service.fsxWindowsFileServerVolumeConfiguration -> (структура)
Этот параметр используется при использовании файловой системы Amazon FSx для Windows File Server для хранения задач.
fileSystemId -> (строка)
rootDirectory -> (строка)
authorizationConfig -> (структура)
Данные о настройке авторизации для файловой системы Amazon FSx для Windows File Server.
credentialsParameter -> (строка)
domain -> (строка)
configuredAtLaunch -> (логическое)
Указывает, должен ли том настраиваться при запуске. Это используется для создания томов Amazon EBS для автономных задач или задач, созданных в рамках службы. В каждой версии определения задачи может быть только один том, настроенный при запуске, в настройке тома.
Для настройки тома при запуске используйте эту версию определения задачи и укажите объект volumeConfigurations при вызове API CreateService, UpdateService, RunTask или StartTask.
status -> (строка)
requiresAttributes -> (список)
Атрибуты экземпляра контейнера, необходимые для вашей задачи. Когда экземпляр Amazon EC2 регистрируется в вашем кластере, агент Amazon ECS контейнера назначает некоторые стандартные атрибуты экземпляру. Вы можете применять пользовательские атрибуты. Они указываются в виде пар ключ-значение с помощью консоли Amazon ECS или API PutAttributes. Эти атрибуты используются при определении размещения задач для задач, размещенных на экземплярах Amazon EC2. Дополнительную информацию см. в разделе Атрибуты в Руководстве разработчика Amazon Elastic Container Service.
Примечание
Этот параметр не поддерживается для задач, выполняемых на Fargate.(структура)
Атрибут — это пара имя-значение, которая связана с объектом Amazon ECS. Используйте атрибуты, чтобы расширить модель данных Amazon ECS, добавив пользовательские метаданные к вашим ресурсам. Дополнительную информацию см. в разделе Атрибуты в Руководстве разработчика Amazon Elastic Container Service.
name -> (строка)
name должно содержать от 1 до 128 символов. Имя может содержать буквы (в верхнем и нижнем регистре), цифры, дефисы (-), подчеркивания (_), косые черты (/), обратные косые черты (), или точки (.).value -> (строка)
value должно содержать от 1 до 128 символов. Оно может содержать буквы (в верхнем и нижнем регистре), цифры, дефисы (-), подчеркивания (_), точки (.), знаки «@», косые черты (/), обратные косые черты (), двоеточия (:) или пробелы. Значение не может начинаться или заканчиваться пробелом.targetType -> (строка)
targetId -> (строка)
placementConstraints -> (список)
Массив объектов ограничений размещения для использования в задачах.
Примечание
Этот параметр не поддерживается для задач, выполняемых на Fargate.(структура)
Ограничение размещения задачи в определении задачи. Дополнительную информацию см. в разделе Ограничения размещения задач в Руководстве разработчика Amazon Elastic Container Service.
Примечание
Ограничения размещения задач не поддерживаются для задач, выполняемых на Fargate.type -> (строка)
MemberOf ограничивает выбор кандидатами из группы допустимых кандидатов.expression -> (строка)
compatibilities -> (список)
Amazon ECS проверяет параметры определения задачи на совместимость с типами запуска. Дополнительную информацию см. в разделе Типы запуска Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.
(строка)
runtimePlatform -> (структура)
Операционная система, на которой выполняются ваши определения задач. Семейство платформ указывается только для задач, использующих тип запуска Fargate.
При указании задачи в службе это значение должно соответствовать значению runtimePlatform службы.
cpuArchitecture -> (строка)
Архитектура процессора.
Вы можете запускать свои задачи Linux на платформе на базе ARM, установив значение на ARM64. Этот параметр доступен для задач, выполняемых на экземпляре Linux Amazon EC2 или Linux-контейнерах на Fargate.
operatingSystemFamily -> (строка)
requiresCompatibilities -> (список)
Типы запуска задач, с которыми проверялось определение задачи. Допустимые значения — EC2, FARGATE и EXTERNAL. Дополнительную информацию см. в разделе Типы запуска Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.
(строка)
cpu -> (строка)
Количество cpu единиц, используемых задачей. Если вы используете тип запуска EC2, это поле необязательно. Любое значение может быть использовано. Если вы используете тип запуска Fargate, это поле обязательно. Вы должны использовать одно из следующих значений. Выбранное значение определяет диапазон допустимых значений для параметра memory.
Если вы используете тип запуска EC2 или внешний тип запуска, это поле необязательно. Поддерживаемые значения находятся между 128 единицами процессора (0.125 виртуальных процессоров) и 196608 единицами процессора (192 виртуальных процессоров).
Это поле необходимо для Fargate. Сведения о допустимых значениях см. в разделе Размер задачи в Руководстве разработчика Amazon Elastic Container Service.
memory -> (строка)
Объем памяти (в МБ), используемый задачей.
Если ваши задачи выполняются на экземплярах Amazon EC2, вы должны указать либо значение памяти на уровне задачи, либо на уровне контейнера. Это поле необязательно, и может быть использовано любое значение. Если указано значение памяти на уровне задачи, значение памяти на уровне контейнера необязательно. Дополнительную информацию о памяти контейнера и резервировании памяти см. в разделе ContainerDefinition.
Если ваши задачи выполняются на Fargate, это поле обязательно. Вы должны использовать одно из следующих значений. Выбранное значение определяет диапазон допустимых значений для параметра cpu.
- 512 (0.5 ГБ), 1024 (1 ГБ), 2048 (2 ГБ) - Допустимые
cpuзначения: 256 (.25 vCPU) - 1024 (1 ГБ), 2048 (2 ГБ), 3072 (3 ГБ), 4096 (4 ГБ) - Допустимые
cpuзначения: 512 (.5 vCPU) - 2048 (2 ГБ), 3072 (3 ГБ), 4096 (4 ГБ), 5120 (5 ГБ), 6144 (6 ГБ), 7168 (7 ГБ), 8192 (8 ГБ) - Допустимые
cpuзначения: 1024 (1 vCPU) - От 4096 (4 ГБ) до 16384 (16 ГБ) с шагом 1024 (1 ГБ) - Допустимые
cpuзначения: 2048 (2 vCPU) - От 8192 (8 ГБ) до 30720 (30 ГБ) с шагом 1024 (1 ГБ) - Допустимые
cpuзначения: 4096 (4 vCPU) - От 16 ГБ до 60 ГБ с шагом 4 ГБ - Допустимые
cpuзначения: 8192 (8 vCPU) Требуется Linux-платформа1.4.0или более поздняя. - От 32 ГБ до 120 ГБ с шагом 8 ГБ - Допустимые
cpuзначения: 16384 (16 vCPU) Требуется Linux-платформа1.4.0или более поздняя.
inferenceAccelerators -> (список)
Ускоритель Elastic Inference, связанный с задачей.
(структура)
Подробности об ускорителе Elastic Inference. Дополнительную информацию см. в разделе Работа с Amazon Elastic Inference в Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.
deviceName -> (строка)
deviceName также должно быть указано в определении контейнера как ResourceRequirement.deviceType -> (строка)
pidMode -> (строка)
Пространство имен процессов для контейнеров в задаче. Допустимые значения — host или task. На Fargate для Linux-контейнеров единственное допустимое значение — task. Например, мониторинговые подконтейнеры могут потребовать pidMode, чтобы получить доступ к информации о других контейнерах, выполняемых в той же задаче.
Если указано host, все контейнеры в задачах, которые указали режим PID host в том же экземпляре контейнера, используют одно и то же пространство имен процессов с хостовым экземпляром Amazon EC2.
Если указано task, все контейнеры в задаче используют одно и то же пространство имен процессов.
Если значение не указано, по умолчанию используется частное пространство имен для каждого контейнера.
Если используется режим PID host, существует повышенный риск нежелательного доступа к пространству имен процессов.
Примечание
Этот параметр не поддерживается для Windows-контейнеров.Примечание
Этот параметр поддерживается только для задач, размещенных на Fargate, если задачи используют версию платформы1.4.0 или более позднюю (Linux). Это не поддерживается для Windows-контейнеров на Fargate.ipcMode -> (строка)
Пространство имен IPC для использования контейнерами в задаче. Допустимые значения — host, task или none. Если указано host, все контейнеры в задачах, указавших режим IPC host в том же экземпляре контейнера, используют общие IPC-ресурсы с хостовым экземпляром Amazon EC2. Если указано task, все контейнеры в задаче используют общие IPC-ресурсы. Если указано none, IPC-ресурсы в контейнерах задачи являются частными и не совместно используются с другими контейнерами в задаче или на экземпляре контейнера. Если значение не указано, совместное использование пространства имен IPC зависит от настройки Docker-демона на экземпляре контейнера.
Если используется режим IPC host, будьте готовы к повышенному риску нежелательного доступа к пространству имен IPC.
Если вы настраиваете параметры ядра с использованием systemControls для контейнеров в задаче, это повлияет на ваше пространство имен IPC. Дополнительную информацию см. в разделе Управление системой в Руководстве разработчика Amazon Elastic Container Service.
- Для задач, использующих режим IPC
host, связанные с пространством имен IPCsystemControlsне поддерживаются. - Для задач, использующих режим IPC
task, связанные с пространством имен IPCsystemControlsбудут применяться ко всем контейнерам в задаче.
Примечание
Этот параметр не поддерживается для Windows-контейнеров или задач, выполняемых на Fargate.proxyConfiguration -> (структура)
Подробные сведения о конфигурации прокси-сервера App Mesh.
Для использования конфигурации прокси-сервера ваши экземпляры контейнеров Amazon ECS требуют не менее версии 1.26.0 агента контейнеров и не менее версии 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запускаются из оптимизированной для Amazon ECS версии AMI 20190301 или более поздней, они содержат необходимые версии агента контейнеров и ecs-init. Дополнительную информацию см. в разделе Amazon ECS-оптимизированный Linux AMI в руководстве разработчика Amazon Elastic Container Service.
type -> (string)
APPMESH.containerName -> (string)
properties -> (list)
Набор параметров конфигурации сети для предоставления плагина Container Network Interface (CNI), указанные в виде пар ключ-значение.
-
IgnoredUID- (Обязательно) Идентификатор пользователя (UID) контейнера прокси-сервера, определённый параметромuserв определении контейнера. Это используется для того, чтобы прокси-сервер игнорировал свой собственный трафик. Если указаноIgnoredGID, это поле может быть пустым. -
IgnoredGID- (Обязательно) Идентификатор группы (GID) контейнера прокси-сервера, определённый параметромuserв определении контейнера. Это используется для того, чтобы прокси-сервер игнорировал свой собственный трафик. Если указаноIgnoredUID, это поле может быть пустым. -
AppPorts- (Обязательно) Список портов, используемых приложением. Сети трафик на эти порты перенаправляется наProxyIngressPortиProxyEgressPort. -
ProxyIngressPort- (Обязательно) Указывает порт, на который направляется входящий трафик наAppPorts. -
ProxyEgressPort- (Обязательно) Указывает порт, на который направляется исходящий трафик отAppPorts. -
EgressIgnoredPorts- (Обязательно) Исходящий трафик, направляемый на указанные порты, игнорируется и не перенаправляется наProxyEgressPort. Он может быть пустым списком. -
EgressIgnoredIPs- (Обязательно) Исходящий трафик, направляемый на указанные IP-адреса, игнорируется и не перенаправляется наProxyEgressPort. Он может быть пустым списком.
(structure)
Объект пары ключ-значение.
name -> (string)
value -> (string)
registeredAt -> (timestamp)
deregisteredAt -> (timestamp)
registeredBy -> (string)
ephemeralStorage -> (structure)
Настройки временного хранилища для задач, выполняемых с определением задачи.
sizeInGiB -> (integer)
21 ГБ, а максимальное - 200 ГБ.enableFaultInjection -> (boolean)
false.failures -> (list)
Любые ошибки, связанные с вызовом.
(structure)
Неудачный ресурс. Список распространённых причин см. в разделе «Причины ошибок API» в руководстве разработчика Amazon Elastic Container Service.
arn -> (string)
reason -> (string)
detail -> (string)
© Copyright 2025, Amazon Web Services. Created using Sphinx.