Spec-Zone.ru › AWS CLI v2

[ aws . ecs ]

register-task-definition

Description

Регистрирует новое определение задачи из предоставленных family и containerDefinitions . При необходимости вы можете добавить тома данных в свои контейнеры с помощью параметра volumes. Для получения дополнительной информации о параметрах и значениях по умолчанию определения задач см. раздел Определения задач Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.

Вы можете указать роль для своей задачи с помощью параметра taskRoleArn. Когда вы указываете роль для задачи, ее контейнеры могут использовать последние версии CLI или SDK для отправки запросов API в службы Amazon Web Services, указанные в политике, связанной с ролью. Для получения дополнительной информации см. раздел Роли IAM для задач в Руководстве разработчика Amazon Elastic Container Service.

Вы можете указать режим сети Docker для контейнеров в определении своей задачи с помощью параметра networkMode. Если вы укажете режим сети awsvpc, задаче будет выделен эластичный сетевой интерфейс, и вы должны указать NetworkConfiguration при создании службы или запуске задачи с определением задачи. Для получения дополнительной информации см. раздел Сеть задач в Руководстве разработчика Amazon Elastic Container Service.

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

Synopsis

  register-task-definition
--family <value>
[--task-role-arn <value>]
[--execution-role-arn <value>]
[--network-mode <value>]
--container-definitions <value>
[--volumes <value>]
[--placement-constraints <value>]
[--requires-compatibilities <value>]
[--cpu <value>]
[--memory <value>]
[--tags <value>]
[--pid-mode <value>]
[--ipc-mode <value>]
[--proxy-configuration <value>]
[--inference-accelerators <value>]
[--ephemeral-storage <value>]
[--runtime-platform <value>]
[--enable-fault-injection | --no-enable-fault-injection]
[--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]

Options

--family (string)

Вы должны указать family для определения задачи. Вы можете использовать его для отслеживания нескольких версий одного и того же определения задачи. family используется в качестве имени для определения вашей задачи. Разрешено до 255 букв (прописных и строчных), цифр, символов подчеркивания и дефисов.

--task-role-arn (string)

Краткое имя или полный ARN (Amazon Resource Name) роли IAM, которую могут принять контейнеры в этой задаче. Всем контейнерам в этой задаче предоставляются разрешения, указанные в этой роли. Для получения дополнительной информации см. раздел Роли IAM для задач в Руководстве разработчика Amazon Elastic Container Service.

--execution-role-arn (string)

ARN (Amazon Resource Name) роли выполнения задачи, которая предоставляет агенту контейнера Amazon ECS разрешение на вызов API Amazon Web Services от вашего имени. Сведения о необходимых ролях IAM для Amazon ECS см. в разделе Роли IAM для Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.

--network-mode (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, вы не можете запускать несколько экземпляров одной и той же задачи на одном экземпляре контейнера при использовании сопоставлений портов.

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

  • bridge
  • host
  • awsvpc
  • none

--container-definitions (list)

Список определений контейнеров в формате JSON, описывающих различные контейнеры, составляющие вашу задачу.

(структура)

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

name -> (string)

The name of a container. If you’re linking multiple containers together in a task definition, the name of one container can be entered in the links of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to name in the docker container create command and the --name option to docker run.

image -> (string)

Изображение, используемое для запуска контейнера. Эта строка передается непосредственно демону Docker. По умолчанию доступны изображения в реестре Docker Hub. Другие репозитории указываются с помощью `` repository-url /image :tag `` или `` repository-url /image @*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 -> (structure)

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

credentialsParameter -> (string)

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

Примечание

Когда вы используете API Amazon ECS, CLI или SDK Amazon Web Services, если секрет существует в том же регионе, что и задача, которую вы запускаете, вы можете использовать либо полный ARN, либо имя секрета. Когда вы используете консоль управления Amazon Web Services, вы должны указать полный ARN секрета.

cpu -> (integer)

Количество единиц 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, а максимальное допустимое значение доли ЦП, которое позволяет ядро Linux, равно 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 -> (integer)

Объем (в МиБ) памяти для предоставления контейнеру. Если ваш контейнер попытается превысить указанную здесь память, контейнер будет уничтожен. Общий объем памяти, зарезервированный для всех контейнеров в задаче, должен быть меньше значения 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 -> (integer)

Мягкое ограничение (в МиБ) памяти для резервирования для контейнера. Когда системная память находится в состоянии сильной конкуренции, 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 -> (list)

Параметр links позволяет контейнерам взаимодействовать друг с другом без необходимости сопоставления портов. Этот параметр поддерживается только в том случае, если сетевой режим определения задачи равен bridge . Конструкция name:internalName аналогична name:alias в ссылках Docker. Разрешено до 255 букв (прописных и строчных), цифр, подчеркиваний и дефисов. Этот параметр сопоставляется с Links в команде docker container create и параметром --link docker run.

Примечание

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

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

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

(string)

portMappings -> (list)

Список сопоставлений портов для контейнера. Сопоставления портов позволяют контейнерам получать доступ к портам на экземпляре хост-контейнера для отправки или получения трафика.

Для определений задач, использующих сетевой режим awsvpc, укажите только containerPort. hostPort можно оставить пустым или он должен совпадать со значением containerPort.

Сопоставления портов в Windows используют адрес шлюза NetNAT, а не localhost. В Windows нет обратной петли для сопоставлений портов, поэтому вы не можете получить доступ к сопоставленному порту контейнера с самого хоста.

Этот параметр сопоставляется с PortBindings в команде создания контейнера docker и с параметром --publish для docker run. Если для сетевого режима определения задачи установлено значение none, то вы не можете указывать сопоставления портов. Если для сетевого режима определения задачи установлено значение host, то порты хоста должны быть либо неопределенными, либо совпадать с портом контейнера в сопоставлении портов.

Примечание

После того как задача достигнет состояния RUNNING, ручные и автоматические назначения портов хоста и контейнера отображаются в разделе Network Bindings описания контейнера для выбранной задачи в консоли Amazon ECS. Назначения также отображаются в разделе networkBindings ответов DescribeTasks.

(структура)

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

Если вы используете контейнеры в задаче с сетевым режимом awsvpc или host, укажите открытые порты с помощью containerPort. hostPort можно оставить пустым или он должен совпадать со значением containerPort.

Большинство полей этого параметра (containerPort, hostPort, protocol) сопоставляются с PortBindings в команде docker container create и параметром --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. Обновление этого поля требует удаления и повторного развертывания сервиса.

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

containerPortRange -> (строка)

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

При указании containerPortRange применяются следующие правила:

  • Необходимо использовать либо сетевой режим bridge, либо сетевой режим awsvpc.
  • Этот параметр доступен как для типов запуска EC2, так и для Fargate.
  • Этот параметр доступен для операционных систем Linux и Windows.
  • В экземпляре контейнера должна быть версия агента контейнера не ниже 1.67.0 и версия пакета ecs-init не ниже 1.67.0-1.
  • Вы можете указать не более 100 диапазонов портов для каждого контейнера.
  • Вы не указываете hostPortRange. Значение hostPortRange устанавливается следующим образом:
    • Для контейнеров в задаче с сетевым режимом awsvpc, hostPortRange устанавливается в то же значение, что и containerPortRange. Это стратегия статического сопоставления.
    • Для контейнеров в задаче с сетевым режимом bridge агент Amazon ECS находит открытые порты хоста из диапазона временных портов по умолчанию и передает их в docker, чтобы привязать их к портам контейнера.
  • containerPortRange допустимые значения находятся в диапазоне от 1 до 65535.
  • Порт может быть включен только в одно сопоставление портов для каждого контейнера.
  • Вы не можете указать перекрывающиеся диапазоны портов.
  • Первый порт в диапазоне должен быть меньше последнего порта в диапазоне.
  • Docker рекомендует отключить docker-proxy в файле конфигурации демона Docker, когда у вас большое количество портов. Для получения дополнительной информации см. Issue #11185 на веб-сайте Github. Сведения о том, как отключить docker-proxy в файле конфигурации демона Docker, см. в разделе Docker daemon в Руководстве разработчика Amazon ECS .

Вы можете вызвать ` DescribeTasks https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html`__, чтобы просмотреть hostPortRange, которые представляют собой порты хоста, привязанные к портам контейнера.

essential -> (boolean)

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

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

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

Политика перезапуска для контейнера. Когда вы настраиваете политику перезапуска, Amazon ECS может перезапустить контейнер без необходимости заменять задачу. Для получения дополнительной информации см. Restart individual containers in Amazon ECS tasks with container restart policies в Руководстве разработчика 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 и опции --entrypoint для docker run.

(string)

command -> (list)

Команда, которая передается в контейнер. Этот параметр соответствует Cmd в команде создания контейнера docker и параметру COMMAND для docker run. Если есть несколько аргументов, каждый аргумент представляет собой отдельную строку в массиве.

(string)

environment -> (list)

Переменные среды, которые будут переданы в контейнер. Этот параметр соответствует Env в команде создания контейнера docker и опции --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 в определении контейнера, они имеют приоритет над переменными, содержащимися в файле среды. Если указано несколько файлов среды, содержащих одну и ту же переменную, они обрабатываются сверху вниз. Мы рекомендуем использовать уникальные имена переменных. Для получения дополнительной информации см. Use a file to pass environment variables to a container в Руководстве разработчика Amazon Elastic Container Service.

Файлы переменных среды являются объектами в Amazon S3, и ко всем соображениям безопасности Amazon S3 применяются.

Вы должны использовать следующие платформы для типа запуска Fargate:

  • Linux platform version 1.4.0 или более поздняя.
  • Windows platform version 1.0.0 или более поздняя.

Учитывайте следующее при использовании типа запуска Fargate:

  • Файл обрабатывается как собственный env-file Docker.
  • Нет поддержки обработки escape-символов оболочки.
  • Точка входа контейнера интерпретирует VARIABLE значения.

value -> (string)

Имя ресурса Amazon (ARN) объекта Amazon S3, содержащего файл переменной среды.

type -> (string)

Тип файла для использования. Файлы среды являются объектами в Amazon S3. Единственным поддерживаемым значением является s3.

mountPoints -> (list)

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

Этот параметр соответствует Volumes в команде создания контейнера docker и опции --volume для docker run.

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

(structure)

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

sourceVolume -> (string)

Имя тома для монтирования. Должно быть именем тома, на которое ссылается параметр name определения задачи volume.

containerPath -> (string)

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

readOnly -> (boolean)

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

volumesFrom -> (list)

Тома данных для монтирования из другого контейнера. Этот параметр соответствует VolumesFrom в команде создания контейнера docker и опции --volumes-from для docker run.

(structure)

Подробности о томе данных из другого контейнера в том же определении задачи.

sourceContainer -> (string)

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

readOnly -> (boolean)

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

linuxParameters -> (structure)

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

Примечание

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

capabilities -> (structure)

Возможности Linux для контейнера, которые добавляются или удаляются из конфигурации по умолчанию, предоставленной Docker.

Примечание

Для задач, использующих тип запуска Fargate, capabilities поддерживается для всех версий платформы, но параметр add поддерживается только при использовании версии платформы 1.4.0 или более поздней.

add -> (list)

Возможности Linux для контейнера, которые были добавлены к конфигурации по умолчанию, предоставленной Docker. Этот параметр отображается на CapAdd в команде create docker container и на опцию --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"

(string)

drop -> (list)

Возможности Linux для контейнера, которые были удалены из конфигурации по умолчанию, предоставленной Docker. Этот параметр отображается на CapDrop в команде create docker container и на опцию --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"

(string)

devices -> (list)

Любые устройства хоста, которые необходимо предоставить контейнеру. Этот параметр отображается на Devices в команде create docker container и на опцию --device для docker run.

Примечание

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

(structure)

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

hostPath -> (string)

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

containerPath -> (string)

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

permissions -> (list)

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

(string)

initProcessEnabled -> (boolean)

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

sharedMemorySize -> (integer)

Значение размера (в MiB) тома /dev/shm. Этот параметр отображается на опцию --shm-size для docker run.

Примечание

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

tmpfs -> (list)

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

Примечание

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

(structure)

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

containerPath -> (string)

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

size -> (integer)

Максимальный размер (в MiB) тома tmpfs.

mountOptions -> (list)

Список параметров монтирования тома 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"

(string)

maxSwap -> (integer)

Общий объем памяти подкачки (в MiB), который может использовать контейнер. Этот параметр будет преобразован в опцию --memory-swap для docker run, где значение будет равно сумме памяти контейнера плюс значение maxSwap.

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

Примечание

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

Если вы используете задачи в Amazon Linux 2023, параметр swappiness не поддерживается.

swappiness -> (integer)

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

Примечание

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

Если вы используете задачи в Amazon Linux 2023, параметр swappiness не поддерживается.

secrets -> (list)

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

(structure)

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

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

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

name -> (string)

Имя секрета.

valueFrom -> (string)

Секрет для предоставления контейнеру. Поддерживаемые значения: полный ARN секрета Secrets Manager или полный ARN параметра в SSM Parameter Store.

Информацию о необходимых разрешениях Identity and Access Management см. в разделе Требуемые разрешения IAM для секретов Amazon ECS (для Secrets Manager) или Требуемые разрешения IAM для секретов Amazon ECS (для хранилища параметров Systems Manager) в Руководстве разработчика Amazon Elastic Container Service .

Примечание

Если параметр SSM Parameter Store существует в том же регионе, что и запускаемая вами задача, вы можете использовать либо полный ARN, либо имя параметра. Если параметр существует в другом регионе, необходимо указать полный ARN.

dependsOn -> (list)

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

Для задач, использующих тип запуска EC2, экземпляры контейнеров требуют как минимум версию 1.26.0 агента контейнера, чтобы включить зависимости контейнеров. Однако мы рекомендуем использовать последнюю версию агента контейнера. Информацию о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента контейнера Amazon ECS в Руководстве разработчика 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 в Руководстве разработчика 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 -> (string)

Имя контейнера.

condition -> (string)

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

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

startTimeout -> (integer)

Продолжительность времени (в секундах) ожидания перед отказом от разрешения зависимостей для контейнера. Например, вы указываете два контейнера в определении задачи, где у 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 в Руководстве разработчика 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 -> (integer)

Продолжительность времени (в секундах) ожидания перед принудительным завершением работы контейнера, если он не выходит из строя самостоятельно.

Для задач, использующих тип запуска 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 в Руководстве разработчика 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 -> (string)

Указывает, будет ли Amazon ECS преобразовывать тег образа контейнера, указанный в определении контейнера, в дайджест образа. По умолчанию значение равно enabled . Если вы установите для контейнера значение disabled , Amazon ECS не будет преобразовывать предоставленный тег образа контейнера в дайджест и будет использовать исходный URI образа, указанный в определении контейнера, для развертывания. Дополнительные сведения о разрешении образа контейнера см. в разделе Разрешение образа контейнера в Руководстве разработчика Amazon ECS .

hostname -> (string)

Имя хоста для использования в вашем контейнере. Этот параметр сопоставляется с Hostname в команде создания контейнера docker и с опцией --hostname для docker run.

Примечание

Параметр hostname не поддерживается, если вы используете сетевой режим awsvpc .

user -> (string)

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

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

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

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

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

Примечание

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

workingDirectory -> (string)

Рабочий каталог для выполнения команд внутри контейнера. Этот параметр сопоставляется с WorkingDir в команде создания контейнера docker и с опцией --workdir для docker run.

disableNetworking -> (boolean)

Когда этот параметр имеет значение true, сеть отключена в контейнере. Этот параметр сопоставляется с NetworkDisabled в команде создания контейнера docker.

Примечание

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

privileged -> (boolean)

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

Примечание

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

readonlyRootFilesystem -> (boolean)

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

Примечание

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

dnsServers -> (list)

Список DNS-серверов, которые представлены контейнеру. Этот параметр сопоставляется с Dns в команде создания контейнера docker и опцией --dns для docker run.

Примечание

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

(string)

dnsSearchDomains -> (list)

Список доменов поиска DNS, которые представлены контейнеру. Этот параметр сопоставляется с DnsSearch в команде создания контейнера docker и опцией --dns-search для docker run.

Примечание

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

(string)

extraHosts -> (list)

Список сопоставлений имен хостов и IP-адресов для добавления в файл /etc/hosts в контейнере. Этот параметр сопоставляется с ExtraHosts в команде создания контейнера docker и опцией --add-host для docker run.

Примечание

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

(structure)

Записи имен хостов и IP-адресов, которые добавляются в файл /etc/hosts контейнера через параметр extraHosts его ContainerDefinition.

hostname -> (string)

Имя хоста для использования в записи /etc/hosts.

ipAddress -> (string)

IP-адрес для использования в записи /etc/hosts.

dockerSecurityOptions -> (list)

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

Для задач Linux в EC2 этот параметр можно использовать для ссылки на пользовательские метки для систем безопасности SELinux и AppArmor.

Для любых задач в EC2 этот параметр можно использовать для ссылки на файл спецификации учетных данных, который настраивает контейнер для аутентификации Active Directory. Дополнительные сведения см. в разделе Использование gMSA для контейнеров Windows и Использование gMSA для контейнеров Linux в Руководстве разработчика Amazon Elastic Container Service.

Этот параметр сопоставляется с SecurityOpt в команде создания контейнера docker и опцией --security-opt для docker run.

Примечание

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

Допустимые значения: “no-new-privileges” | “apparmor:PROFILE” | “label:value” | “credentialspec:CredentialSpecFilePath”

(string)

interactive -> (boolean)

Если этот параметр равен true, вы можете развернуть контейнерные приложения, которым требуется stdin или tty для выделения. Этот параметр сопоставляется с OpenStdin в команде создания контейнера docker и опцией --interactive для docker run.

pseudoTerminal -> (boolean)

Если этот параметр равен true, выделяется TTY. Этот параметр сопоставляется с Tty в команде создания контейнера docker и опцией --tty для docker run.

dockerLabels -> (map)

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

key -> (string)

value -> (string)

ulimits -> (list)

Список ulimits для установки в контейнере. Если значение ulimit указано в определении задачи, оно переопределяет значения по умолчанию, установленные Docker. Этот параметр сопоставляется с Ulimits в команде создания контейнера docker и опцией --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.

(structure)

Параметры ulimit для передачи контейнеру.

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

Вы можете указать параметры ulimit для контейнера в определении задачи.

name -> (string)

type ulimit.

softLimit -> (integer)

Мягкий лимит для типа ulimit. Значение может быть указано в байтах, секундах или в виде количества, в зависимости от type ulimit.

hardLimit -> (integer)

Жесткий лимит для типа ulimit. Значение может быть указано в байтах, секундах или в виде количества, в зависимости от type ulimit.

logConfiguration -> (structure)

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

Этот параметр отображается на LogConfig в команде создания контейнера Docker и на параметр --log-driver для docker run. По умолчанию контейнеры используют тот же драйвер ведения журнала, который использует демон Docker. Однако контейнер может использовать другой драйвер ведения журнала, чем демон Docker, указав драйвер журнала с этим параметром в определении контейнера. Чтобы использовать другой драйвер ведения журнала для контейнера, система ведения журнала должна быть настроена правильно на экземпляре контейнера (или на другом сервере журнала для параметров удаленного ведения журнала).

Примечание

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

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

Примечание

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

logDriver -> (string)

Драйвер журнала, который будет использоваться для контейнера.

Для задач в 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 или партнера Amazon Web Services.

Примечание

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

options -> (map)

Параметры конфигурации для отправки в драйвер журнала.

Параметры, которые можно указать, зависят от драйвера журнала. Некоторые из параметров, которые можно указать при использовании драйвера журнала awslogs для маршрутизации журналов в Amazon CloudWatch, включают следующие:

awslogs-create-group

Обязательно: Нет

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

Примечание

Ваша политика IAM должна включать разрешение logs:CreateLogGroup, прежде чем вы попытаетесь использовать awslogs-create-group.

awslogs-region

Обязательно: Да

Укажите регион Amazon Web Services, в который драйвер журнала awslogs должен отправлять ваши журналы Docker. Вы можете отправлять все свои журналы из кластеров в разных регионах в один регион в CloudWatch Logs. Это сделано для того, чтобы они были видны в одном месте. В противном случае вы можете разделить их по регионам для большей детализации. Убедитесь, что указанная группа журналов существует в регионе, который вы указываете с помощью этого параметра.

awslogs-group

Обязательно: Да

Убедитесь, что указана группа журналов, в которую драйвер журнала awslogs отправляет свои потоки журналов.

awslogs-stream-prefix

Обязательно: Да, при использовании Fargate. Необязательно при использовании EC2.

Используйте параметр awslogs-stream-prefix, чтобы связать поток журналов с указанным префиксом, именем контейнера и идентификатором задачи Amazon ECS, к которой принадлежит контейнер. Если вы укажете префикс с этим параметром, то поток журналов будет иметь формат prefix-name/container-name/ecs-task-id.

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

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

Вы должны указать префикс потока, чтобы ваши журналы отображались на панели «Журнал» при использовании консоли Amazon ECS.

awslogs-datetime-format

Обязательно: Нет

Этот параметр определяет шаблон начала многострочной записи в формате 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.

Примечание

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

Следующие параметры применимы ко всем поддерживаемым драйверам журналов.

mode

Обязательно: Нет

Допустимые значения: 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 .

max-buffer-size

Обязательно: Нет

Значение по умолчанию: 1m

При использовании режима non-blocking параметр журнала max-buffer-size управляет размером буфера, используемого для промежуточного хранения сообщений. Убедитесь, что указан достаточный размер буфера, в зависимости от вашего приложения. Когда буфер заполнится, дальнейшие журналы не могут быть сохранены. Журналы, которые не могут быть сохранены, теряются.

Чтобы маршрутизировать журналы с помощью маршрутизатора журналов splunk, необходимо указать splunk-token и splunk-url.

Когда вы используете маршрутизатор журналов awsfirelens для маршрутизации журналов в пункт назначения сети Amazon Web Services Service или Amazon Web Services Partner для хранения и анализа журналов, вы можете установить параметр 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 или выше на вашем экземпляре контейнера. Чтобы проверить версию API удаленного доступа Docker на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'

key -> (string)

value -> (string)

secretOptions -> (list)

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

(структура)

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

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

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

name -> (string)

Имя секрета.

valueFrom -> (string)

Секрет для предоставления контейнеру. Поддерживаемые значения — это либо полный ARN секрета Secrets Manager, либо полный ARN параметра в SSM Parameter Store.

Для получения информации о необходимых разрешениях Identity and Access Management см. раздел Требуемые разрешения IAM для секретов Amazon ECS (для Secrets Manager) или Требуемые разрешения IAM для секретов Amazon ECS (для Systems Manager Parameter store) в Руководстве разработчика Amazon Elastic Container Service .

Примечание

Если параметр SSM Parameter Store существует в том же регионе, что и запускаемая вами задача, вы можете использовать либо полный ARN, либо имя параметра. Если параметр существует в другом регионе, необходимо указать полный ARN.

healthCheck -> (structure)

Команда проверки работоспособности контейнера и связанные параметры конфигурации для контейнера. Этот параметр сопоставляется с HealthCheck в команде docker container create и параметром HEALTHCHECK команды docker run.

command -> (list)

Массив строк, представляющий команду, которую контейнер запускает, чтобы определить, является ли он работоспособным. Массив строк должен начинаться с CMD, чтобы непосредственно запускать аргументы команды, или CMD-SHELL, чтобы запускать команду с оболочкой по умолчанию для контейнера.

При использовании панели JSON консоли управления Amazon Web Services, интерфейса командной строки или API заключите список команд в двойные кавычки и скобки.

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

Не включайте двойные кавычки и скобки при использовании консоли управления Amazon Web Services.

CMD-SHELL, curl -f http://localhost/ || exit 1

Код выхода 0 указывает на успех, а ненулевой код выхода указывает на неудачу. Для получения дополнительной информации см. HealthCheck в команде docker container create.

(string)

interval -> (integer)

Временной интервал в секундах между каждым выполнением проверки работоспособности. Можно указать от 5 до 300 секунд. Значение по умолчанию — 30 секунд. Это значение применяется только в том случае, если указан command.

timeout -> (integer)

Время ожидания в секундах, чтобы проверка работоспособности завершилась успешно, прежде чем она будет считаться неудачной. Можно указать от 2 до 60 секунд. Значение по умолчанию — 5. Это значение применяется только в том случае, если указан command.

retries -> (integer)

Количество попыток повторной проверки неудачной проверки работоспособности, прежде чем контейнер будет считаться неработоспособным. Можно указать от 1 до 10 повторных попыток. Значение по умолчанию — 3. Это значение применяется только в том случае, если указан command.

startPeriod -> (integer)

Дополнительный льготный период для предоставления контейнерам времени для загрузки, прежде чем неудачные проверки работоспособности будут учитываться в максимальном количестве повторных попыток. Можно указать от 0 до 300 секунд. По умолчанию startPeriod выключен. Это значение применяется только в том случае, если указан command.

Примечание

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

systemControls -> (list)

Список именованных параметров ядра для установки в контейнере. Этот параметр сопоставляется с 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, пространство имен IPC systemControls не поддерживается.
  • Для задач, использующих режим IPC task, значения пространства имен IPC systemControls применяются ко всем контейнерам в задаче.

Примечание

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

Примечание

Этот параметр поддерживается только для задач, размещенных в Fargate, если задачи используют версию платформы 1.4.0 или более позднюю (Linux). Это не поддерживается для контейнеров Windows в Fargate.

namespace -> (string)

Параметр именованного ядра, чтобы установить value для.

value -> (string)

Параметр именованного ядра, чтобы установить 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 -> (list)

Тип и объем ресурса для назначения контейнеру. Единственным поддерживаемым ресурсом является GPU.

(структура)

Тип и объем ресурса для назначения контейнеру. Поддерживаемые типы ресурсов — это графические процессоры и ускорители Elastic Inference. Для получения дополнительной информации см. Работа с графическими процессорами в Amazon ECS или Работа с Amazon Elastic Inference в Amazon ECS в Руководстве разработчика Amazon Elastic Container Service

value -> (string)

Значение для указанного типа ресурса.

Когда тип — GPU, значение — это количество физических GPUs, которые агент контейнера Amazon ECS резервирует для контейнера. Количество графических процессоров, зарезервированных для всех контейнеров в задаче, не может превышать количество доступных графических процессоров в экземпляре контейнера, на котором запущена задача.

Когда тип — InferenceAccelerator, value соответствует deviceName для InferenceAccelerator, указанного в определении задачи.

type -> (string)

Тип ресурса для назначения контейнеру.

firelensConfiguration -> (structure)

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

type -> (string)

Маршрутизатор журналов для использования. Допустимые значения: fluentd или fluentbit.

options -> (map)

Параметры, которые необходимо использовать при настройке маршрутизатора журналов. Это поле является необязательным и может использоваться для указания пользовательского файла конфигурации или для добавления дополнительных метаданных, таких как задача, определение задачи, кластер и сведения об экземпляре контейнера в событие журнала. Если указано, необходимо использовать синтаксис "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 -> (string)

value -> (string)

credentialSpecs -> (list)

Список ARN в SSM или Amazon S3 для файла спецификации учетных данных (CredSpec), который настраивает контейнер для аутентификации Active Directory. Рекомендуется использовать этот параметр вместо параметра dockerSecurityOptions. Максимальное количество ARN — 1.

Для каждого ARN существует два формата.

credentialspecdomainless:MyARN

Вы используете credentialspecdomainless:MyARN, чтобы предоставить CredSpec с дополнительным разделом для секрета в Secrets Manager. Вы предоставляете учетные данные для входа в домен в секрете.

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

Этот формат можно использовать без присоединения экземпляра контейнера к домену.

credentialspec:MyARN

Вы используете credentialspec:MyARN, чтобы предоставить CredSpec для одного домена.

Необходимо присоединить экземпляр контейнера к домену, прежде чем запускать какие-либо задачи, использующие это определение задачи.

В обоих форматах замените MyARN на ARN в SSM или Amazon S3.

Если вы предоставите credentialspecdomainless:MyARN, credspec должен предоставить ARN в Secrets Manager для секрета, содержащего имя пользователя, пароль и домен для подключения. Для лучшей безопасности экземпляр не присоединяется к домену для аутентификации без домена. Другие приложения в экземпляре не могут использовать учетные данные без домена. Этот параметр можно использовать для запуска задач в одном и том же экземпляре, даже если задачам необходимо присоединиться к разным доменам. Для получения дополнительной информации см. Использование gMSA для контейнеров Windows и Использование gMSA для контейнеров Linux .

(string)

Синтаксис JSON:

[
  {
    "name": "string",
    "image": "string",
    "repositoryCredentials": {
      "credentialsParameter": "string"
    },
    "cpu": integer,
    "memory": integer,
    "memoryReservation": integer,
    "links": ["string", ...],
    "portMappings": [
      {
        "containerPort": integer,
        "hostPort": integer,
        "protocol": "tcp"|"udp",
        "name": "string",
        "appProtocol": "http"|"http2"|"grpc",
        "containerPortRange": "string"
      }
      ...
    ],
    "essential": true|false,
    "restartPolicy": {
      "enabled": true|false,
      "ignoredExitCodes": [integer, ...],
      "restartAttemptPeriod": integer
    },
    "entryPoint": ["string", ...],
    "command": ["string", ...],
    "environment": [
      {
        "name": "string",
        "value": "string"
      }
      ...
    ],
    "environmentFiles": [
      {
        "value": "string",
        "type": "s3"
      }
      ...
    ],
    "mountPoints": [
      {
        "sourceVolume": "string",
        "containerPath": "string",
        "readOnly": true|false
      }
      ...
    ],
    "volumesFrom": [
      {
        "sourceContainer": "string",
        "readOnly": true|false
      }
      ...
    ],
    "linuxParameters": {
      "capabilities": {
        "add": ["string", ...],
        "drop": ["string", ...]
      },
      "devices": [
        {
          "hostPath": "string",
          "containerPath": "string",
          "permissions": ["read"|"write"|"mknod", ...]
        }
        ...
      ],
      "initProcessEnabled": true|false,
      "sharedMemorySize": integer,
      "tmpfs": [
        {
          "containerPath": "string",
          "size": integer,
          "mountOptions": ["string", ...]
        }
        ...
      ],
      "maxSwap": integer,
      "swappiness": integer
    },
    "secrets": [
      {
        "name": "string",
        "valueFrom": "string"
      }
      ...
    ],
    "dependsOn": [
      {
        "containerName": "string",
        "condition": "START"|"COMPLETE"|"SUCCESS"|"HEALTHY"
      }
      ...
    ],
    "startTimeout": integer,
    "stopTimeout": integer,
    "versionConsistency": "enabled"|"disabled",
    "hostname": "string",
    "user": "string",
    "workingDirectory": "string",
    "disableNetworking": true|false,
    "privileged": true|false,
    "readonlyRootFilesystem": true|false,
    "dnsServers": ["string", ...],
    "dnsSearchDomains": ["string", ...],
    "extraHosts": [
      {
        "hostname": "string",
        "ipAddress": "string"
      }
      ...
    ],
    "dockerSecurityOptions": ["string", ...],
    "interactive": true|false,
    "pseudoTerminal": true|false,
    "dockerLabels": {"string": "string"
      ...},
    "ulimits": [
      {
        "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack",
        "softLimit": integer,
        "hardLimit": integer
      }
      ...
    ],
    "logConfiguration": {
      "logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|"awsfirelens",
      "options": {"string": "string"
        ...},
      "secretOptions": [
        {
          "name": "string",
          "valueFrom": "string"
        }
        ...
      ]
    },
    "healthCheck": {
      "command": ["string", ...],
      "interval": integer,
      "timeout": integer,
      "retries": integer,
      "startPeriod": integer
    },
    "systemControls": [
      {
        "namespace": "string",
        "value": "string"
      }
      ...
    ],
    "resourceRequirements": [
      {
        "value": "string",
        "type": "GPU"|"InferenceAccelerator"
      }
      ...
    ],
    "firelensConfiguration": {
      "type": "fluentd"|"fluentbit",
      "options": {"string": "string"
        ...}
    },
    "credentialSpecs": ["string", ...]
  }
  ...
]

--volumes (list)

Список определений томов в формате JSON, которые могут использовать контейнеры в вашей задаче.

(структура)

Конфигурация тома данных для задач, запущенных с использованием этого определения задачи. Указание конфигурации тома в определении задачи является необязательным. Конфигурация тома может содержать несколько томов, но при запуске поддерживается только один том, настроенный при запуске. Каждый том, определенный в конфигурации тома, может указывать только один name и одно из следующих значений: configuredAtLaunch, dockerVolumeConfiguration, efsVolumeConfiguration, fsxWindowsFileServerVolumeConfiguration или host. Если указана пустая конфигурация тома, Amazon ECS по умолчанию использует том хоста. Дополнительные сведения см. в разделе Использование томов данных в задачах.

name -> (string)

Имя тома. Разрешено до 255 букв (прописных и строчных), цифр, знаков подчеркивания и дефисов.

При использовании тома, настроенного при запуске, требуется name, который также должен быть указан в качестве имени тома в параметре ServiceVolumeConfiguration или TaskVolumeConfiguration при создании сервиса или автономной задачи.

Для всех остальных типов томов это имя указывается в параметре sourceVolume объекта mountPoints в определении контейнера.

Когда том использует efsVolumeConfiguration, имя является обязательным.

host -> (structure)

Этот параметр указывается при использовании томов хоста с привязкой. Содержимое параметра 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 -> (string)

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

Если вы используете тип запуска Fargate, параметр sourcePath не поддерживается.

dockerVolumeConfiguration -> (structure)

Этот параметр указывается при использовании томов Docker.

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

Примечание

Тома Docker не поддерживаются задачами, выполняемыми в Fargate.

scope -> (string)

Область действия для тома Docker, который определяет его жизненный цикл. Тома Docker, область действия которых ограничена task, автоматически предоставляются при запуске задачи и уничтожаются при остановке задачи. Тома Docker, область действия которых ограничена как shared, сохраняются после остановки задачи.

autoprovision -> (boolean)

Если это значение true, том Docker создается, если он еще не существует.

Примечание

Это поле используется только в том случае, если scope имеет значение shared.

driver -> (string)

Используемый драйвер тома Docker. Значение драйвера должно соответствовать имени драйвера, предоставленному Docker, поскольку оно используется для размещения задач. Если драйвер был установлен с помощью CLI плагина Docker, используйте docker plugin ls, чтобы получить имя драйвера из экземпляра контейнера. Если драйвер был установлен другим способом, используйте обнаружение плагина Docker для получения имени драйвера. Этот параметр соответствует Driver в команде docker container create и параметру xxdriver для docker volume create.

driverOpts -> (map)

Сопоставление параметров, зависящих от драйвера Docker, которые передаются. Этот параметр соответствует DriverOpts в команде docker create-volume и параметру xxopt для docker volume create.

key -> (string)

value -> (string)

labels -> (map)

Пользовательские метаданные для добавления в том Docker. Этот параметр соответствует Labels в команде docker container create и параметру xxlabel для docker volume create.

key -> (string)

value -> (string)

efsVolumeConfiguration -> (structure)

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

fileSystemId -> (string)

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

rootDirectory -> (string)

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

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

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

transitEncryption -> (string)

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

transitEncryptionPort -> (integer)

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

authorizationConfig -> (structure)

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

accessPointId -> (string)

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

iam -> (string)

Определяет, следует ли использовать роль задачи Amazon ECS, определенную в определении задачи, при монтировании файловой системы Amazon EFS. Если он включен, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию DISABLED. Дополнительные сведения см. в разделе Использование точек доступа Amazon EFS в Руководстве разработчика Amazon Elastic Container Service .

fsxWindowsFileServerVolumeConfiguration -> (structure)

Этот параметр указывается при использовании файловой системы Amazon FSx for Windows File Server для хранения задач.

fileSystemId -> (string)

Идентификатор файловой системы Amazon FSx for Windows File Server для использования.

rootDirectory -> (string)

Каталог в файловой системе Amazon FSx for Windows File Server, который необходимо смонтировать в качестве корневого каталога внутри хоста.

authorizationConfig -> (structure)

Сведения о конфигурации авторизации для файловой системы Amazon FSx for Windows File Server.

credentialsParameter -> (string)

Параметр учетных данных авторизации для использования. Параметры учетных данных авторизации могут быть предоставлены с использованием либо Amazon Resource Name (ARN) секрета Secrets Manager, либо параметра SSM Parameter Store. ARN относится к сохраненным учетным данным.

domain -> (string)

Полностью определенное имя домена, размещенное в Managed Microsoft AD (Active Directory) Directory Service или самостоятельно размещенном AD в Amazon EC2.

configuredAtLaunch -> (boolean)

Указывает, следует ли настраивать том во время запуска. Это используется для создания томов Amazon EBS для автономных задач или задач, созданных в рамках сервиса.

Чтобы настроить том во время запуска, используйте эту редакцию определения задачи и укажите объект volumeConfigurations при вызове API CreateService, UpdateService, RunTask или StartTask.

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

name=string,host={sourcePath=string},dockerVolumeConfiguration={scope=string,autoprovision=boolean,driver=string,driverOpts={KeyName1=string,KeyName2=string},labels={KeyName1=string,KeyName2=string}},efsVolumeConfiguration={fileSystemId=string,rootDirectory=string,transitEncryption=string,transitEncryptionPort=integer,authorizationConfig={accessPointId=string,iam=string}},fsxWindowsFileServerVolumeConfiguration={fileSystemId=string,rootDirectory=string,authorizationConfig={credentialsParameter=string,domain=string}},configuredAtLaunch=boolean ...

Синтаксис JSON:

[
  {
    "name": "string",
    "host": {
      "sourcePath": "string"
    },
    "dockerVolumeConfiguration": {
      "scope": "task"|"shared",
      "autoprovision": true|false,
      "driver": "string",
      "driverOpts": {"string": "string"
        ...},
      "labels": {"string": "string"
        ...}
    },
    "efsVolumeConfiguration": {
      "fileSystemId": "string",
      "rootDirectory": "string",
      "transitEncryption": "ENABLED"|"DISABLED",
      "transitEncryptionPort": integer,
      "authorizationConfig": {
        "accessPointId": "string",
        "iam": "ENABLED"|"DISABLED"
      }
    },
    "fsxWindowsFileServerVolumeConfiguration": {
      "fileSystemId": "string",
      "rootDirectory": "string",
      "authorizationConfig": {
        "credentialsParameter": "string",
        "domain": "string"
      }
    },
    "configuredAtLaunch": true|false
  }
  ...
]

--placement-constraints (list)

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

(структура)

Ограничение размещения задач в определении задачи. Дополнительные сведения см. в разделе Ограничения размещения задач в Руководстве разработчика Amazon Elastic Container Service .

Примечание

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

type -> (string)

Тип ограничения. Ограничение MemberOf ограничивает выбор группой допустимых кандидатов.

expression -> (string)

Выражение языка запросов кластера для применения к ограничению. Дополнительные сведения см. в разделе Язык запросов кластера в Руководстве разработчика Amazon Elastic Container Service .

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

type=string,expression=string ...

Синтаксис JSON:

[
  {
    "type": "memberOf",
    "expression": "string"
  }
  ...
]

--requires-compatibilities (list)

Тип запуска задачи, по которому Amazon ECS проверяет определение задачи. Исключение клиента возвращается, если определение задачи не проходит проверку на соответствие указанным совместимостям. Если значение не указано, параметр опускается из ответа.

(string)

Синтаксис:

"string" "string" ...

Where valid values are:
  EC2
  FARGATE
  EXTERNAL

--cpu (string)

Количество единиц процессора, используемых задачей. Его можно выразить целым числом, используя единицы процессора (например, 1024) или строкой, используя vCPU (например, 1 vCPU или 1 vcpu) в определении задачи. Строковые значения преобразуются в целое число, указывающее единицы процессора, при регистрации определения задачи.

Примечание

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

Если вы используете тип запуска EC2 или внешний тип запуска, это поле необязательно. Поддерживаемые значения находятся между 128 единиц процессора (0.125 vCPU) и 196608 единиц процессора (192 vCPU). Если вы не укажете значение, параметр будет проигнорирован.

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

--memory (строка)

Объем памяти (в МиБ), используемой задачей. Он может быть выражен целым числом, используя МиБ (например,``1024``) или строкой, используя ГБ (например, 1GB или 1 GB) в определении задачи. Строковые значения преобразуются в целое число, указывающее МиБ, при регистрации определения задачи.

Примечание

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

При использовании типа запуска EC2 это поле необязательно.

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

Единицы процессора не могут быть меньше 1 vCPU, если вы используете контейнеры Windows в Fargate.

  • 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Доступные cpu значения: 256 (.25 vCPU)
  • 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Доступные cpu значения: 512 (.5 vCPU)
  • 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Доступные cpu значения: 1024 (1 vCPU)
  • От 4096 (4 GB) до 16384 (16 GB) с шагом 1024 (1 GB) - Доступные cpu значения: 2048 (2 vCPU)
  • От 8192 (8 GB) до 30720 (30 GB) с шагом 1024 (1 GB) - Доступные cpu значения: 4096 (4 vCPU)
  • От 16 ГБ до 60 ГБ с шагом 4 ГБ - Доступные cpu значения: 8192 (8 vCPU) Этот параметр требует Linux platform 1.4.0 или более поздней версии.
  • От 32 ГБ до 120 ГБ с шагом 8 ГБ - Доступные cpu значения: 16384 (16 vCPU) Этот параметр требует Linux platform 1.4.0 или более поздней версии.

--tags (список)

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

К тегам применяются следующие основные ограничения:

  • Максимальное количество тегов на ресурс — 50
  • Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
  • Максимальная длина ключа — 128 символов Юникода в UTF-8
  • Максимальная длина значения — 256 символов Юникода в UTF-8
  • Если ваша схема тегирования используется в нескольких сервисах и ресурсах, помните, что другие сервисы могут иметь ограничения на разрешенные символы. Обычно разрешенные символы: буквы, цифры и пробелы, представляемые в UTF-8, а также следующие символы: + - = . _ : / @.
  • Ключи и значения тегов чувствительны к регистру.
  • Не используйте aws:, AWS: или любую комбинацию этих символов в верхнем или нижнем регистре в качестве префикса для ключей или значений, так как это зарезервировано для использования Amazon Web Services. Вы не можете редактировать или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при ограничении тегов на ресурс.

(структура)

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

К тегам применяются следующие основные ограничения:

  • Максимальное количество тегов на ресурс — 50
  • Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
  • Максимальная длина ключа — 128 символов Юникода в UTF-8
  • Максимальная длина значения — 256 символов Юникода в UTF-8
  • Если ваша схема тегирования используется в нескольких сервисах и ресурсах, помните, что другие сервисы могут иметь ограничения на разрешенные символы. Обычно разрешенные символы: буквы, цифры и пробелы, представляемые в UTF-8, а также следующие символы: + - = . _ : / @.
  • Ключи и значения тегов чувствительны к регистру.
  • Не используйте aws:, AWS: или любую комбинацию этих символов в верхнем или нижнем регистре в качестве префикса для ключей или значений, так как это зарезервировано для использования Amazon Web Services. Вы не можете редактировать или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при ограничении тегов на ресурс.

key -> (string)

Одна часть пары ключ-значение, составляющей тег. key — это общая метка, которая действует как категория для более конкретных значений тегов.

value -> (string)

Необязательная часть пары ключ-значение, составляющей тег. value действует как дескриптор в категории тегов (ключе).

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

key=string,value=string ...

Синтаксис JSON:

[
  {
    "key": "string",
    "value": "string"
  }
  ...
]

--pid-mode (строка)

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

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

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

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

При использовании режима host PID существует повышенный риск нежелательного раскрытия пространства имен процесса.

Примечание

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

Примечание

Этот параметр поддерживается только для задач, размещенных в Fargate, если задачи используют версию платформы 1.4.0 или более позднюю (Linux). Это не поддерживается для контейнеров Windows в Fargate.

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

  • host
  • task

--ipc-mode (строка)

Пространство имен ресурса IPC, которое будет использоваться для контейнеров в задаче. Допустимые значения: host, task или none. Если указано host, то все контейнеры в задачах, которые указали режим host IPC в одном экземпляре контейнера, совместно используют одни и те же ресурсы IPC с экземпляром хоста Amazon EC2. Если указано task, все контейнеры в указанной задаче совместно используют одни и те же ресурсы IPC. Если указано none, то ресурсы IPC в контейнерах задачи являются частными и не используются совместно с другими контейнерами в задаче или в экземпляре контейнера. Если значение не указано, совместное использование пространства имен ресурсов IPC зависит от настройки демона Docker в экземпляре контейнера.

При использовании режима host IPC помните, что существует повышенный риск нежелательного раскрытия пространства имен IPC.

Если вы настраиваете именованные параметры ядра, используя systemControls для контейнеров в задаче, следующее будет применено к вашему пространству имен ресурсов IPC. Для получения дополнительной информации см. System Controls в Руководстве разработчика Amazon Elastic Container Service.

  • Для задач, использующих режим host IPC, связанные с пространством имен IPC systemControls не поддерживаются.
  • Для задач, использующих режим task IPC, связанные с пространством имен IPC systemControls будут применяться ко всем контейнерам в задаче.

Примечание

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

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

  • host
  • task
  • none

--proxy-configuration (структура)

Параметры конфигурации для прокси App Mesh.

Для задач, размещенных на экземплярах Amazon EC2, экземпляры контейнеров требуют как минимум версию 1.26.0 агента контейнера и как минимум версию 1.26.0-1 пакета ecs-init для использования конфигурации прокси. Если ваши экземпляры контейнеров запущены из оптимизированного для Amazon ECS AMI версии 20190301 или более поздней, то они содержат требуемые версии агента контейнера и ecs-init. Дополнительную информацию см. в разделе Версии AMI, оптимизированные для Amazon ECS, в Руководстве разработчика Amazon Elastic Container Service .

type -> (string)

Тип прокси. Единственным поддерживаемым значением является APPMESH .

containerName -> (string)

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

properties -> (list)

Набор параметров конфигурации сети для предоставления подключаемого модуля интерфейса сетевого контейнера (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)

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

Краткий синтаксис:

type=string,containerName=string,properties=[{name=string,value=string},{name=string,value=string}]

Синтаксис JSON:

{
  "type": "APPMESH",
  "containerName": "string",
  "properties": [
    {
      "name": "string",
      "value": "string"
    }
    ...
  ]
}

--inference-accelerators (list)

Ускорители Elastic Inference для использования контейнерами в задаче.

(structure)

Сведения об ускорителе Elastic Inference. Дополнительные сведения см. в разделе Работа с Amazon Elastic Inference в Amazon ECS в Руководстве разработчика Amazon Elastic Container Service .

deviceName -> (string)

Имя устройства ускорителя Elastic Inference. deviceName также необходимо указать в определении контейнера как ResourceRequirement .

deviceType -> (string)

Тип ускорителя Elastic Inference для использования.

Краткий синтаксис:

deviceName=string,deviceType=string ...

Синтаксис JSON:

[
  {
    "deviceName": "string",
    "deviceType": "string"
  }
  ...
]

--ephemeral-storage (structure)

Объем временного хранилища для выделения задаче. Этот параметр используется для расширения общего объема доступного временного хранилища, помимо объема по умолчанию, для задач, размещенных в Fargate. Дополнительную информацию см. в разделе Использование томов данных в задачах в Руководстве разработчика Amazon ECS .

Примечание

Для задач, использующих тип запуска Fargate, задача требует следующих платформ:

  • Версия платформы Linux 1.4.0 или более поздняя.
  • Версия платформы Windows 1.0.0 или более поздняя.

sizeInGiB -> (integer)

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

Краткий синтаксис:

sizeInGiB=integer

Синтаксис JSON:

{
  "sizeInGiB": integer
}

--runtime-platform (structure)

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

cpuArchitecture -> (string)

Архитектура ЦП.

Вы можете запускать свои задачи Linux на платформе на основе ARM, установив для значения значение ARM64 . Этот параметр доступен для задач, которые выполняются на экземпляре Linux Amazon EC2 или контейнерах Linux в Fargate.

operatingSystemFamily -> (string)

Операционная система.

Краткий синтаксис:

cpuArchitecture=string,operatingSystemFamily=string

Синтаксис JSON:

{
  "cpuArchitecture": "X86_64"|"ARM64",
  "operatingSystemFamily": "WINDOWS_SERVER_2019_FULL"|"WINDOWS_SERVER_2019_CORE"|"WINDOWS_SERVER_2016_FULL"|"WINDOWS_SERVER_2004_CORE"|"WINDOWS_SERVER_2022_CORE"|"WINDOWS_SERVER_2022_FULL"|"WINDOWS_SERVER_20H2_CORE"|"LINUX"
}

--enable-fault-injection | --no-enable-fault-injection (boolean)

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

--cli-input-json | --cli-input-yaml (string) Считывает аргументы из предоставленной строки JSON. Строка JSON соответствует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения с использованием значения, предоставленного в JSON, поскольку строка будет воспринята буквально. Это может быть не указано вместе с --cli-input-yaml.

--generate-cli-skeleton (string) Выводит скелет JSON в стандартный вывод без отправки запроса API. Если предоставлено без значения или со значением input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогичным образом, если предоставлено yaml-input , он выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, он проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный скелет JSON не является стабильным между версиями AWS CLI, и гарантии обратной совместимости в сгенерированном скелете JSON отсутствуют.

Глобальные параметры

--debug (boolean)

Включить ведение журнала отладки.

--endpoint-url (string)

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

--no-verify-ssl (boolean)

По умолчанию AWS CLI использует SSL при взаимодействии со службами AWS. Для каждого SSL-подключения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение по умолчанию для проверки SSL-сертификатов.

--no-paginate (boolean)

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

--output (string)

Стиль форматирования выходных данных команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (string)

Запрос JMESPath для использования при фильтрации данных ответа.

--profile (string)

Использовать определенный профиль из файла учетных данных.

--region (string)

Регион для использования. Переопределяет настройки config/env.

--version (string)

Отобразить версию этого инструмента.

--color (string)

Включение/выключение цветного вывода.

  • on
  • off
  • auto

--no-sign-request (boolean)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.

--ca-bundle (string)

Пакет сертификатов CA для использования при проверке SSL-сертификатов. Переопределяет настройки config/env.

--cli-read-timeout (int)

Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокироваться и не завершится по таймауту. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (int)

Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокироваться и не завершится по таймауту. Значение по умолчанию — 60 секунд.

--cli-binary-format (string)

Стиль форматирования, который будет использоваться для двоичных больших двоичных объектов. Формат по умолчанию — 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 (boolean)

Отключить пейджер cli для вывода.

--cli-auto-prompt (boolean)

Автоматически запрашивать параметры ввода CLI.

--no-cli-auto-prompt (boolean)

Отключить автоматический запрос параметров ввода CLI.

Примеры

Примечание

Чтобы использовать следующие примеры, необходимо установить и настроить AWS CLI. См. Руководство по началу работы в Руководстве пользователя AWS CLI для получения дополнительной информации.

Если не указано иное, все примеры имеют правила цитирования, аналогичные unix. Эти примеры необходимо будет адаптировать к правилам цитирования вашего терминала. См. Использование кавычек со строками в Руководстве пользователя AWS CLI .

Пример 1: Для регистрации определения задачи с файлом JSON

Следующий register-task-definition пример регистрирует определение задачи в указанном семействе. Определения контейнеров сохраняются в формате JSON в указанном месте файла.

aws ecs register-task-definition \
    --cli-input-json file://<path_to_json_file>/sleep360.json

Содержимое sleep360.json:

{
    "containerDefinitions": [
        {
            "name": "sleep",
            "image": "busybox",
            "cpu": 10,
            "command": [
                "sleep",
                "360"
            ],
            "memory": 10,
            "essential": true
        }
    ],
    "family": "sleep360"
}

Вывод:

{
    "taskDefinition": {
        "status": "ACTIVE",
        "family": "sleep360",
        "placementConstraints": [],
        "compatibilities": [
                "EXTERNAL",
                "EC2"
        ],
        "volumes": [],
        "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/sleep360:1",
        "containerDefinitions": [
            {
                "environment": [],
                "name": "sleep",
                "mountPoints": [],
                "image": "busybox",
                "cpu": 10,
                "portMappings": [],
                "command": [
                    "sleep",
                    "360"
                ],
        "memory": 10,
        "essential": true,
        "volumesFrom": []
        }
    ],
        "revision": 1
    }
}

Для получения дополнительной информации см. Пример определений задач в Руководстве разработчика Amazon ECS.

Пример 2: Для регистрации определения задачи с параметром строки JSON

Следующий register-task-definition пример регистрирует определение задачи, используя определения контейнера, предоставленные в качестве параметра строки JSON с экранированными двойными кавычками.

aws ecs register-task-definition \
    --family sleep360 \
    --container-definitions "[{\"name\":\"sleep\",\"image\":\"busybox\",\"cpu\":10,\"command\":[\"sleep\",\"360\"],\"memory\":10,\"essential\":true}]"

Вывод идентичен предыдущему примеру.

Для получения дополнительной информации см. Создание определения задачи в Руководстве разработчика Amazon ECS.

Вывод

taskDefinition -> (structure)

Полное описание зарегистрированного определения задачи.

taskDefinitionArn -> (string)

Полное имя ресурса Amazon (ARN) определения задачи.

containerDefinitions -> (list)

Список определений контейнеров в формате JSON, описывающих различные контейнеры, составляющие вашу задачу. Дополнительные сведения о параметрах и значениях по умолчанию определений контейнеров см. в разделе Определения задач Amazon ECS в Руководстве разработчика Amazon Elastic Container Service .

(structure)

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

name -> (string)

Имя контейнера. Если вы связываете несколько контейнеров вместе в определении задачи, name одного контейнера можно ввести в links другого контейнера для соединения контейнеров. Допускается до 255 букв (прописных и строчных), цифр, символов подчеркивания и дефисов. Этот параметр сопоставляется с name в команде создания контейнера docker и с параметром --name для docker run.

image -> (string)

Изображение, используемое для запуска контейнера. Эта строка передается непосредственно демону Docker. По умолчанию доступны изображения в реестре Docker Hub. Другие репозитории указываются либо с помощью `` repository-url /image :tag `` , либо с помощью `` repository-url /image @*digest* `` . Допускается до 255 букв (прописных и строчных), цифр, дефисов, символов подчеркивания, двоеточий, точек, косых черт и знаков номера. Этот параметр сопоставляется с Image в команде создания контейнера docker и с параметром 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 -> (structure)

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

credentialsParameter -> (string)

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

Примечание

При использовании API, CLI или пакета SDK Amazon Web Services Amazon ECS, если секрет существует в том же регионе, что и задача, которую вы запускаете, вы можете использовать либо полный ARN, либо имя секрета. При использовании Консоли управления Amazon Web Services необходимо указать полный ARN секрета.

cpu -> (integer)

Количество единиц cpu , зарезервированных для контейнера. Этот параметр сопоставляется с CpuShares в команде создания контейнера docker и с параметром --cpu-shares для docker run.

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

Примечание

Количество доступных единиц ЦП на тип экземпляра EC2 можно определить, умножив количество vCPU, указанное для этого типа экземпляра на странице сведений об экземплярах Amazon EC2, на 1024.

Контейнеры Linux совместно используют незарезервированные единицы ЦП с другими контейнерами в экземпляре контейнера с тем же соотношением, что и выделенное количество. Например, если вы запускаете одноконтейнерную задачу на одноядерном типе экземпляра с указанными 512 единицами ЦП для этого контейнера, и это единственная задача, выполняемая в экземпляре контейнера, этот контейнер может использовать полный общий ресурс ЦП в размере 1024 единицы в любой момент времени. Однако, если вы запустили другую копию той же задачи в этом экземпляре контейнера, каждой задаче гарантируется минимум 512 единиц ЦП при необходимости. Более того, каждый контейнер может перейти к более высокому использованию ЦП, если другой контейнер не использует его. Если обе задачи были активны на 100% все время, они будут ограничены 512 единицами ЦП.

В экземплярах контейнеров Linux демон Docker в экземпляре контейнера использует значение ЦП для расчета относительных коэффициентов совместного использования ЦП для работающих контейнеров. Минимальное допустимое значение совместного использования ЦП, разрешенное ядром Linux, равно 2, а максимальное допустимое значение совместного использования ЦП, разрешенное ядром Linux, равно 262144. Однако параметр ЦП не является обязательным, и вы можете использовать значения ЦП ниже 2 или выше 262144 в определениях контейнеров. Для значений ЦП ниже 2 (включая null) или выше 262144 поведение варьируется в зависимости от версии агента контейнера Amazon ECS:

  • Версии агентов, не превышающие 1.1.0: Нулевые и нулевые значения ЦП передаются Docker как 0, которое Docker затем преобразует в 1024 доли ЦП. Значения ЦП, равные 1, передаются Docker как 1, которое ядро Linux преобразует в две доли ЦП.
  • Версии агентов, превышающие 1.2.0: Нулевые, нулевые и значения ЦП, равные 1, передаются Docker как 2.
  • Версии агентов, превышающие 1.84.0: Значения ЦП, превышающие 256 vCPU, передаются Docker как 256, что эквивалентно 262144 долям ЦП.

В экземплярах контейнеров Windows ограничение ЦП применяется как абсолютный предел или квота. Контейнеры Windows имеют доступ только к указанному объему ЦП, описанному в определении задачи. Нулевое или нулевое значение ЦП передается Docker как 0 , который Windows интерпретирует как 1% от одного ЦП.

memory -> (integer)

Объем (в МиБ) памяти, который необходимо предоставить контейнеру. Если ваш контейнер пытается превысить указанную здесь память, контейнер уничтожается. Общий объем памяти, зарезервированной для всех контейнеров в задаче, должен быть меньше значения memory задачи, если оно указано. Этот параметр сопоставляется с Memory в команде создания контейнера docker и с параметром --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 -> (integer)

Мягкое ограничение (в МиБ) памяти, которую необходимо зарезервировать для контейнера. Когда системная память сильно оспаривается, Docker пытается поддерживать память контейнера на этом мягком ограничении. Однако ваш контейнер может потреблять больше памяти, когда это необходимо, вплоть до жесткого ограничения, указанного с помощью параметра memory (если применимо), или всей доступной памяти в экземпляре контейнера, в зависимости от того, что произойдет раньше. Этот параметр сопоставляется с MemoryReservation в команде создания контейнера docker и с параметром --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 -> (list)

Параметр links позволяет контейнерам обмениваться данными друг с другом без необходимости сопоставления портов. Этот параметр поддерживается, только если сетевой режим определения задачи — bridge . Конструкция name:internalName аналогична name:alias в ссылках Docker. Допускается до 255 букв (прописных и строчных), цифр, символов подчеркивания и дефисов. Этот параметр сопоставляется с Links в команде создания контейнера docker и с параметром --link для docker run.

Примечание

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

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

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

(string)

portMappings -> (list)

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

Для определений задач, использующих сетевой режим awsvpc, укажите только containerPort. hostPort можно оставить пустым или оно должно быть таким же значением, как и containerPort.

Отображения портов в Windows используют адрес шлюза NetNAT, а не localhost. Нет петли для отображений портов в Windows, поэтому вы не можете получить доступ к сопоставленному порту контейнера из самого хоста.

Этот параметр сопоставляется с PortBindings в команде создания контейнера docker и опцией --publish для запуска docker. Если для сетевого режима определения задачи установлено значение none, то вы не можете указать отображения портов. Если для сетевого режима определения задачи установлено значение host, то порты хоста должны быть либо неопределены, либо они должны соответствовать порту контейнера в отображении порта.

Примечание

После того, как задача достигает статуса RUNNING, ручные и автоматические назначения портов хоста и контейнера отображаются в разделе Network Bindings (Связи с сетью) описания контейнера для выбранной задачи в консоли 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 -> (string)

Протокол, используемый для отображения портов. Допустимые значения — tcp и udp. Значение по умолчанию — tcp. protocol неизменяем в службе Service Connect. Обновление этого поля требует удаления и повторного развертывания службы.

name -> (string)

Имя, используемое для отображения портов. Этот параметр — имя, которое вы используете в serviceConnectConfiguration и vpcLatticeConfigurations службы. Имя может содержать до 64 символов. Символы могут включать строчные буквы, цифры, символы подчеркивания (_) и дефисы (-). Имя не может начинаться с дефиса.

appProtocol -> (string)

Протокол приложения, используемый для отображения портов. Этот параметр применяется только к Service Connect. Мы рекомендуем вам установить этот параметр в соответствии с протоколом, который использует ваше приложение. Если вы установите этот параметр, Amazon ECS добавит обработку соединений, зависящую от протокола, к прокси Service Connect. Если вы установите этот параметр, Amazon ECS добавит телеметрию, зависящую от протокола, в консоль Amazon ECS и CloudWatch.

Если вы не установите значение для этого параметра, то будет использоваться TCP. Однако Amazon ECS не добавляет телеметрию, зависящую от протокола, для TCP.

appProtocol неизменяем в службе Service Connect. Обновление этого поля требует удаления и повторного развертывания службы.

Задачи, которые запускаются в пространстве имен, могут использовать короткие имена для подключения к службам в пространстве имен. Задачи могут подключаться к службам во всех кластерах в пространстве имен. Задачи подключаются через управляемый прокси-контейнер, который собирает журналы и метрики для повышения наглядности. С Service Connect поддерживаются только задачи, которые создают службы Amazon ECS. Для получения дополнительной информации см. Service Connect в Руководстве разработчика Amazon Elastic Container Service.

containerPortRange -> (string)

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

Следующие правила применяются при указании 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, если у вас большое количество портов. Для получения дополнительной информации см. Issue #11185 на веб-сайте Github. Для получения информации о том, как отключить docker-proxy в файле конфигурации демона Docker, см. Docker daemon в Руководстве разработчика Amazon ECS.

Вы можете вызвать ` DescribeTasks https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html`__, чтобы просмотреть hostPortRange, которые являются портами хоста, привязанными к портам контейнера.

essential -> (boolean)

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

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

restartPolicy -> (structure)

Политика перезапуска для контейнера. При настройке политики перезапуска Amazon ECS может перезапустить контейнер без необходимости замены задачи. Дополнительные сведения см. в разделе Restart individual containers in Amazon ECS tasks with container restart policies в Руководстве разработчика Amazon Elastic Container Service.

enabled -> (boolean)

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

ignoredExitCodes -> (list)

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

(integer)

restartAttemptPeriod -> (integer)

Период времени (в секундах), в течение которого контейнер должен работать, прежде чем можно будет предпринять попытку перезапуска. Контейнер можно перезапустить только один раз каждые restartAttemptPeriod секунд. Если контейнер не может работать в течение этого периода времени и завершает работу раньше времени, он не будет перезапущен. Можно установить минимум restartAttemptPeriod секунд и максимум restartAttemptPeriod секунд. По умолчанию контейнер должен работать в течение 300 секунд, прежде чем его можно будет перезапустить.

entryPoint -> (list)

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

Более ранние версии агента контейнера Amazon ECS не обрабатывают должным образом параметры entryPoint . Если у вас возникли проблемы с использованием entryPoint , обновите свой агент контейнера или введите команды и аргументы в виде элементов массива command .

Точка входа, которая передается в контейнер. Этот параметр соответствует Entrypoint в команде создания контейнера docker и параметру --entrypoint в docker run.

(string)

command -> (list)

Команда, которая передается в контейнер. Этот параметр соответствует Cmd в команде создания контейнера docker и параметру COMMAND в docker run. Если имеется несколько аргументов, каждый аргумент представляет собой отдельную строку в массиве.

(string)

environment -> (list)

Переменные среды, которые нужно передать контейнеру. Этот параметр соответствует Env в команде создания контейнера docker и параметру --env в docker run.

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

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

(structure)

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

name -> (string)

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

value -> (string)

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

environmentFiles -> (list)

Список файлов, содержащих переменные среды, которые нужно передать контейнеру. Этот параметр соответствует параметру --env-file в docker run.

Можно указать до десяти файлов среды. Файл должен иметь расширение .env . Каждая строка в файле среды содержит переменную среды в формате VARIABLE=VALUE . Строки, начинающиеся с # , рассматриваются как комментарии и игнорируются.

Если переменные среды указаны с использованием параметра environment в определении контейнера, они имеют приоритет над переменными, содержащимися в файле среды. Если указано несколько файлов среды, которые содержат одну и ту же переменную, они обрабатываются сверху вниз. Мы рекомендуем использовать уникальные имена переменных. Дополнительные сведения см. в разделе Specifying Environment Variables в Руководстве разработчика Amazon Elastic Container Service.

(structure)

Список файлов, содержащих переменные среды, которые нужно передать контейнеру. Можно указать до десяти файлов среды. Файл должен иметь расширение .env . Каждая строка в файле среды должна содержать переменную среды в формате VARIABLE=VALUE . Строки, начинающиеся с # , рассматриваются как комментарии и игнорируются.

Если переменные среды указаны с использованием параметра environment в определении контейнера, они имеют приоритет над переменными, содержащимися в файле среды. Если указано несколько файлов среды, которые содержат одну и ту же переменную, они обрабатываются сверху вниз. Мы рекомендуем использовать уникальные имена переменных. Дополнительные сведения см. в разделе Use a file to pass environment variables to a container в Руководстве разработчика Amazon Elastic Container Service.

Файлы переменных среды являются объектами в Amazon S3, и ко всем соображениям безопасности Amazon S3 применяются.

Для типа запуска Fargate необходимо использовать следующие платформы:

  • Linux, версия платформы 1.4.0 или более поздняя.
  • Windows, версия платформы 1.0.0 или более поздняя.

При использовании типа запуска Fargate учитывайте следующее:

  • Файл обрабатывается как собственный файл Docker env-file.
  • Нет поддержки обработки экранирования оболочки.
  • Точка входа контейнера интерпретирует значения VARIABLE .

value -> (string)

Имя ресурса Amazon (ARN) объекта Amazon S3, содержащего файл переменной среды.

type -> (string)

Тип файла для использования. Файлы среды являются объектами в Amazon S3. Единственное поддерживаемое значение — s3 .

mountPoints -> (list)

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

Этот параметр соответствует Volumes в команде создания контейнера docker и параметру --volume в docker run.

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

(structure)

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

sourceVolume -> (string)

Имя тома для монтирования. Должно быть именем тома, на которое ссылается параметр name определения задачи volume .

containerPath -> (string)

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

readOnly -> (boolean)

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

volumesFrom -> (list)

Тома данных для монтирования из другого контейнера. Этот параметр соответствует VolumesFrom в команде создания контейнера docker и параметру --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 -> (list)

Возможности Linux для контейнера, которые были добавлены к конфигурации по умолчанию, предоставляемой Docker. Этот параметр соответствует CapAdd в команде создания контейнера Docker и опции --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"

(string)

drop -> (list)

Возможности Linux для контейнера, которые были удалены из конфигурации по умолчанию, предоставляемой Docker. Этот параметр соответствует CapDrop в команде создания контейнера Docker и опции --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"

(string)

devices -> (list)

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

Примечание

Если вы используете задачи, которые используют тип запуска Fargate, параметр devices не поддерживается.

(структура)

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

hostPath -> (string)

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

containerPath -> (string)

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

permissions -> (list)

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

(string)

initProcessEnabled -> (boolean)

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

sharedMemorySize -> (integer)

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

Примечание

Если вы используете задачи, которые используют тип запуска Fargate, параметр sharedMemorySize не поддерживается.

tmpfs -> (list)

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

Примечание

Если вы используете задачи, которые используют тип запуска Fargate, параметр tmpfs не поддерживается.

(структура)

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

containerPath -> (string)

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

size -> (integer)

Максимальный размер (в МиБ) тома tmpfs.

mountOptions -> (list)

Список параметров монтирования тома 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"

(string)

maxSwap -> (integer)

Общий объем памяти подкачки (в МиБ), который может использовать контейнер. Этот параметр будет преобразован в опцию --memory-swap для docker run, где значение будет суммой памяти контейнера плюс значение maxSwap.

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

Примечание

Если вы используете задачи, которые используют тип запуска Fargate, параметр maxSwap не поддерживается.

Если вы используете задачи в Amazon Linux 2023, параметр swappiness не поддерживается.

swappiness -> (integer)

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

Примечание

Если вы используете задачи, которые используют тип запуска Fargate, параметр swappiness не поддерживается.

Если вы используете задачи в Amazon Linux 2023, параметр swappiness не поддерживается.

secrets -> (list)

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

(структура)

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

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

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

name -> (string)

Имя секрета.

valueFrom -> (string)

Секрет для предоставления контейнеру. Поддерживаемыми значениями являются либо полный ARN секрета Secrets Manager, либо полный ARN параметра в SSM Parameter Store.

Для получения информации о необходимых разрешениях Identity and Access Management см. раздел «Необходимые разрешения IAM для секретов Amazon ECS (для Secrets Manager)» или «Необходимые разрешения IAM для секретов Amazon ECS (для Parameter Store Systems Manager)» в Руководстве разработчика Amazon Elastic Container Service.

Примечание

Если параметр SSM Parameter Store существует в том же регионе, что и задача, которую вы запускаете, вы можете использовать либо полный ARN, либо имя параметра. Если параметр существует в другом регионе, необходимо указать полный ARN.

dependsOn -> (list)

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

Для задач, использующих тип запуска EC2, экземпляры контейнеров требуют как минимум версию 1.26.0 агента контейнера, чтобы включить зависимости контейнеров. Однако мы рекомендуем использовать последнюю версию агента контейнера. Информацию о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента контейнера Amazon ECS в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS дистрибутив Linux AMI, вашему экземпляру потребуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запускаются с версии 20190301 или более поздней, то они содержат необходимые версии агента контейнера и ecs-init . Для получения дополнительной информации см. раздел Amazon ECS-optimized Linux AMI в Руководстве разработчика Amazon Elastic Container Service.

Для задач, использующих тип запуска Fargate, задача или сервис требует следующих платформ:

  • Версия платформы Linux 1.3.0 или более поздняя.
  • Версия платформы Windows 1.0.0 или более поздняя.

(структура)

Зависимости, определенные для запуска и завершения работы контейнера. Контейнер может содержать несколько зависимостей. Когда зависимость определяется для запуска контейнера, для завершения работы контейнера она обращается.

Вашим экземплярам контейнеров Amazon ECS требуется как минимум версия 1.26.0 агента контейнера для использования зависимостей контейнеров. Однако мы рекомендуем использовать последнюю версию агента контейнера. Информацию о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента контейнера Amazon ECS в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS дистрибутив Linux AMI, вашему экземпляру потребуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запускаются с версии 20190301 или более поздней, то они содержат необходимые версии агента контейнера и ecs-init . Для получения дополнительной информации см. раздел Amazon ECS-optimized Linux AMI в Руководстве разработчика Amazon Elastic Container Service.

Примечание

Для задач, использующих тип запуска Fargate, задача или сервис требуют следующих платформ:

  • Версия платформы Linux 1.3.0 или более поздняя.
  • Версия платформы Windows 1.0.0 или более поздняя.

Для получения дополнительной информации о том, как создать зависимость контейнера, см. раздел Зависимость контейнера в Руководстве разработчика Amazon Elastic Container Service.

containerName -> (string)

Имя контейнера.

condition -> (string)

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

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

startTimeout -> (integer)

Продолжительность времени (в секундах) ожидания, прежде чем отказаться от разрешения зависимостей для контейнера. Например, вы указываете два контейнера в определении задачи, где containerA зависит от containerB, достигнув статуса COMPLETE , SUCCESS или HEALTHY . Если указано значение startTimeout для containerB, и он не достигает желаемого статуса в течение этого времени, containerA отказывается и не запускается. Это приводит к переходу задачи в состояние STOPPED .

Примечание

При использовании переменной конфигурации контейнерного агента ECS_CONTAINER_START_TIMEOUT она применяется независимо от этого значения времени ожидания запуска.

Для задач, использующих тип запуска Fargate, задача или сервис требует следующих платформ:

  • Версия платформы Linux 1.3.0 или более поздняя.
  • Версия платформы Windows 1.0.0 или более поздняя.

Для задач, использующих тип запуска EC2, ваши экземпляры контейнеров требуют как минимум версию 1.26.0 агента контейнера для использования значения времени ожидания запуска контейнера. Однако мы рекомендуем использовать последнюю версию агента контейнера. Информацию о проверке версии агента и обновлении до последней версии см. в разделе Обновление агента контейнера Amazon ECS в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS дистрибутив Linux AMI, вашему экземпляру потребуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запускаются с версии 20190301 или более поздней, то они содержат необходимые версии агента контейнера и ecs-init . Для получения дополнительной информации см. раздел Amazon ECS-optimized Linux AMI в Руководстве разработчика Amazon Elastic Container Service.

Допустимые значения для Fargate составляют 2–120 секунд.

stopTimeout -> (integer)

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

Для задач, использующих тип запуска 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 в Руководстве разработчика Amazon Elastic Container Service. Если вы используете оптимизированный для Amazon ECS дистрибутив Linux AMI, вашему экземпляру потребуется как минимум версия 1.26.0-1 пакета ecs-init. Если ваши экземпляры контейнеров запускаются с версии 20190301 или более поздней, то они содержат необходимые версии агента контейнера и ecs-init . Для получения дополнительной информации см. раздел Amazon ECS-optimized Linux AMI в Руководстве разработчика Amazon Elastic Container Service.

Допустимые значения для Fargate составляют 2–120 секунд.

versionConsistency -> (string)

Указывает, будет ли Amazon ECS разрешать тег образа контейнера, предоставленный в определении контейнера, в дайджест образа. По умолчанию значение enabled . Если вы установите значение для контейнера как disabled , Amazon ECS не будет разрешать предоставленный тег образа контейнера в дайджест и будет использовать исходный URI образа, указанный в определении контейнера, для развертывания. Для получения дополнительной информации о разрешении образов контейнеров см. раздел Разрешение образов контейнеров в Руководстве разработчика Amazon ECS.

hostname -> (string)

Имя хоста, используемое для вашего контейнера. Этот параметр соответствует Hostname в команде создания контейнера docker и опции --hostname для docker run.

Примечание

Параметр hostname не поддерживается, если вы используете сетевой режим awsvpc .

user -> (string)

Пользователь, который будет использоваться внутри контейнера. Этот параметр соответствует User в команде создания контейнера docker и опции --user для docker run.

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

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

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

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

Примечание

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

workingDirectory -> (string)

Рабочий каталог для запуска команд внутри контейнера. Этот параметр соответствует WorkingDir в команде создания контейнера docker и опции --workdir для docker run.

disableNetworking -> (boolean)

Когда этот параметр имеет значение true, сеть выключена внутри контейнера. Этот параметр соответствует NetworkDisabled в команде создания контейнера docker.

Примечание

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

privileged -> (boolean)

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

Примечание

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

readonlyRootFilesystem -> (boolean)

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

Примечание

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

dnsServers -> (list)

Список DNS-серверов, представленных контейнеру. Этот параметр сопоставляется с Dns в команде создания контейнера docker и опцией --dns для docker run.

Примечание

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

(string)

dnsSearchDomains -> (list)

Список доменов поиска DNS, представленных контейнеру. Этот параметр сопоставляется с DnsSearch в команде создания контейнера docker и опцией --dns-search для docker run.

Примечание

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

(string)

extraHosts -> (list)

Список имен хостов и сопоставлений IP-адресов для добавления в файл /etc/hosts в контейнере. Этот параметр сопоставляется с ExtraHosts в команде создания контейнера docker и опцией --add-host для docker run.

Примечание

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

(structure)

Имена хостов и записи IP-адресов, которые добавляются в файл /etc/hosts контейнера через параметр extraHosts его ContainerDefinition.

hostname -> (string)

Имя хоста для использования в записи /etc/hosts.

ipAddress -> (string)

IP-адрес для использования в записи /etc/hosts.

dockerSecurityOptions -> (list)

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

Для задач Linux в EC2 этот параметр можно использовать для ссылки на пользовательские метки для систем безопасности SELinux и AppArmor multi-level.

Для любых задач в EC2 этот параметр можно использовать для ссылки на файл спецификации учетных данных, который настраивает контейнер для аутентификации Active Directory. Для получения дополнительной информации см. раздел Using gMSAs for Windows Containers and Using gMSAs for Linux Containers в Руководстве разработчика Amazon Elastic Container Service .

Этот параметр сопоставляется с SecurityOpt в команде создания контейнера docker и опцией --security-opt для docker run.

Примечание

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

Допустимые значения: “no-new-privileges” | “apparmor:PROFILE” | “label:value” | “credentialspec:CredentialSpecFilePath”

(string)

interactive -> (boolean)

Когда этот параметр равен true, можно развертывать контейнерные приложения, которым требуется stdin или tty для выделения. Этот параметр сопоставляется с OpenStdin в команде создания контейнера docker и опцией --interactive для docker run.

pseudoTerminal -> (boolean)

Когда этот параметр равен true, выделяется TTY. Этот параметр сопоставляется с Tty в команде создания контейнера docker и опцией --tty для docker run.

dockerLabels -> (map)

Сопоставление пар «ключ-значение» меток для добавления в контейнер. Этот параметр сопоставляется с Labels в команде создания контейнера docker и опцией --label для docker run. Этот параметр требует версию 1.18 Docker Remote API или выше в экземпляре контейнера. Чтобы проверить версию Docker Remote API в экземпляре контейнера, войдите в экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'

key -> (string)

value -> (string)

ulimits -> (list)

Список ulimits для установки в контейнере. Если значение ulimit указано в определении задачи, оно переопределяет значения по умолчанию, установленные Docker. Этот параметр сопоставляется с Ulimits в команде создания контейнера docker и опцией --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.

(structure)

Настройки ulimit для передачи в контейнер.

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

Можно указать настройки ulimit для контейнера в определении задачи.

name -> (string)

type ulimit.

softLimit -> (integer)

Мягкий лимит для типа ulimit. Значение может быть указано в байтах, секундах или как количество, в зависимости от type ulimit.

hardLimit -> (integer)

Жесткий лимит для типа ulimit. Значение может быть указано в байтах, секундах или как количество, в зависимости от type ulimit.

logConfiguration -> (structure)

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

Этот параметр отображается на LogConfig в команде создания контейнера Docker и опции --log-driver для docker run. По умолчанию контейнеры используют тот же драйвер ведения журнала, который использует демон Docker. Однако контейнер может использовать другой драйвер ведения журнала, чем демон Docker, указав драйвер журнала с этим параметром в определении контейнера. Чтобы использовать другой драйвер ведения журнала для контейнера, система ведения журнала должна быть правильно настроена в экземпляре контейнера (или на другом сервере журналов для параметров удаленного ведения журнала).

Примечание

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

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

Примечание

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

logDriver -> (string)

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

Для задач в 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 или партнера Amazon Web Services.

Примечание

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

options -> (map)

Параметры конфигурации для отправки в драйвер журнала.

Параметры, которые вы можете указать, зависят от драйвера журнала. Некоторые из параметров, которые можно указать при использовании драйвера журнала awslogs для маршрутизации журналов в Amazon CloudWatch, включают следующие:

awslogs-create-group

Требуется: Нет

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

Примечание

Ваша политика IAM должна включать разрешение logs:CreateLogGroup, прежде чем вы попытаетесь использовать awslogs-create-group.

awslogs-region

Требуется: Да

Укажите регион Amazon Web Services, в который драйвер журнала awslogs должен отправлять ваши журналы Docker. Вы можете выбрать отправку всех своих журналов из кластеров в разных регионах в один регион в CloudWatch Logs. Это делается для того, чтобы они все были видны в одном месте. В противном случае вы можете разделить их по регионам для большей детализации. Убедитесь, что указанная группа журналов существует в регионе, который вы указываете с помощью этого параметра.

awslogs-group

Требуется: Да

Убедитесь, что указали группу журналов, в которую драйвер журнала awslogs отправляет свои потоки журналов.

awslogs-stream-prefix

Требуется: Да, при использовании Fargate. Необязательно при использовании EC2.

Используйте параметр awslogs-stream-prefix, чтобы связать поток журналов с указанным префиксом, именем контейнера и идентификатором задачи Amazon ECS, к которой принадлежит контейнер. Если вы укажете префикс с этим параметром, поток журналов будет иметь формат prefix-name/container-name/ecs-task-id.

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

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

Вы должны указать префикс потока для своих журналов, чтобы ваши журналы отображались на панели Журнал при использовании консоли Amazon ECS.

awslogs-datetime-format

Требуется: Нет

Этот параметр определяет шаблон начала нескольких строк в формате 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 одновременно.

Примечание

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

Следующие параметры применяются ко всем поддерживаемым драйверам журналов.

mode

Требуется: Нет

Допустимые значения: 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 .

max-buffer-size

Требуется: Нет

Значение по умолчанию: 1m

Когда используется режим non-blocking, параметр журнала max-buffer-size управляет размером буфера, который используется для промежуточного хранения сообщений. Убедитесь, что вы указали адекватный размер буфера в зависимости от вашего приложения. Когда буфер заполняется, дальнейшие журналы не могут быть сохранены. Журналы, которые не могут быть сохранены, теряются.

Чтобы маршрутизировать журналы с помощью маршрутизатора журналов splunk, необходимо указать splunk-token и splunk-url.

Когда вы используете маршрутизатор журналов awsfirelens для маршрутизации журналов в службу Amazon Web Services или пункт назначения партнерской сети Amazon Web Services для хранения и анализа журналов, вы можете установить параметр 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. Для получения дополнительной информации см. Under the hood: FireLens for Amazon ECS Tasks.

При экспорте журналов в Amazon S3 вы можете указать сегмент, используя параметр bucket. Вы также можете указать region, total_file_size, upload_timeout и use_put_object в качестве параметров.

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

key -> (string)

value -> (string)

secretOptions -> (list)

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

(структура)

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

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

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

name -> (string)

Имя секрета.

valueFrom -> (string)

Секрет для предоставления контейнеру. Поддерживаемые значения — либо полный ARN секрета Secrets Manager, либо полный ARN параметра в SSM Parameter Store.

Информацию о необходимых разрешениях Identity and Access Management см. в разделе Необходимые разрешения IAM для секретов Amazon ECS (для Secrets Manager) или Необходимые разрешения IAM для секретов Amazon ECS (для хранилища параметров Systems Manager) в Руководстве разработчика Amazon Elastic Container Service .

Примечание

Если параметр SSM Parameter Store существует в том же регионе, что и запускаемая задача, можно использовать либо полный ARN, либо имя параметра. Если параметр существует в другом регионе, необходимо указать полный ARN.

healthCheck -> (structure)

Команда проверки работоспособности контейнера и связанные параметры конфигурации для контейнера. Этот параметр соответствует HealthCheck в команде создания контейнера docker и параметру HEALTHCHECK docker run.

command -> (list)

Строковый массив, представляющий команду, которую контейнер выполняет для определения его работоспособности. Строковый массив должен начинаться с CMD , чтобы выполнить аргументы команды напрямую, или CMD-SHELL , чтобы выполнить команду с оболочкой по умолчанию контейнера.

При использовании панели JSON консоли управления Amazon Web Services, интерфейса командной строки или API заключите список команд в двойные кавычки и скобки.

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

Вы не включаете двойные кавычки и скобки при использовании консоли управления Amazon Web Services.

CMD-SHELL, curl -f http://localhost/ || exit 1

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

(string)

interval -> (integer)

Временной период в секундах между каждым выполнением проверки работоспособности. Можно указать от 5 до 300 секунд. Значение по умолчанию — 30 секунд. Это значение применяется только при указании command .

timeout -> (integer)

Временной период в секундах для ожидания успешного завершения проверки работоспособности, прежде чем она будет считаться неудачной. Можно указать от 2 до 60 секунд. Значение по умолчанию — 5. Это значение применяется только при указании command .

retries -> (integer)

Количество попыток повторить неудачную проверку работоспособности, прежде чем контейнер будет считаться неработоспособным. Можно указать от 1 до 10 повторных попыток. Значение по умолчанию — 3. Это значение применяется только при указании command .

startPeriod -> (integer)

Необязательный льготный период, чтобы предоставить контейнерам время для загрузки перед тем, как неудачные проверки работоспособности будут учитываться в максимальном количестве повторных попыток. Можно указать от 0 до 300 секунд. По умолчанию startPeriod выключен. Это значение применяется только при указании command .

Примечание

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

systemControls -> (list)

Список имен параметров ядра для настройки в контейнере. Этот параметр соответствует Sysctls в команде создания контейнера docker и параметру --sysctl docker run. Например, можно настроить настройку net.ipv4.tcp_keepalive_time для поддержания более длительных соединений.

(structure)

Список имен параметров ядра для настройки в контейнере. Этот параметр соответствует Sysctls в команде создания контейнера docker и параметру --sysctl docker run. Например, можно настроить настройку net.ipv4.tcp_keepalive_time для поддержания более длительных соединений.

Мы не рекомендуем указывать параметры systemControls, связанные с сетью, для нескольких контейнеров в одной задаче, которая также использует сетевой режим awsvpc или host. Это имеет следующие недостатки:

  • Для задач, использующих сетевой режим awsvpc, включая Fargate, если вы установите systemControls для любого контейнера, он применяется ко всем контейнерам в задаче. Если вы установите разные systemControls для нескольких контейнеров в одной задаче, контейнер, который запускается последним, определяет, какие systemControls вступают в силу.
  • Для задач, использующих сетевой режим host, не поддерживаются пространства имен сети systemControls.

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

  • Для задач, использующих режим IPC host, не поддерживаются пространства имен IPC systemControls.
  • Для задач, использующих режим IPC task, значения пространств имен IPC systemControls применяются ко всем контейнерам в задаче.

Примечание

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

Примечание

Этот параметр поддерживается только для задач, размещенных в Fargate, если задачи используют версию платформы 1.4.0 или более позднюю (Linux). Это не поддерживается для контейнеров Windows в Fargate.

namespace -> (string)

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

value -> (string)

Параметр ядра с пространством имен для установки 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 -> (list)

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

(structure)

Тип и количество ресурса, назначаемого контейнеру. Поддерживаемые типы ресурсов — GPU и ускорители Elastic Inference. Дополнительные сведения см. в разделе Работа с GPU в Amazon ECS или Работа с Amazon Elastic Inference в Amazon ECS в Руководстве разработчика Amazon Elastic Container Service

value -> (string)

Значение для указанного типа ресурса.

Когда тип GPU , значение — это количество физических GPUs , которые агент контейнера Amazon ECS резервирует для контейнера. Количество GPU, зарезервированных для всех контейнеров в задаче, не может превышать количество доступных GPU на экземпляре контейнера, на котором запущена задача.

Когда тип InferenceAccelerator , value соответствует deviceName для InferenceAccelerator, указанного в определении задачи.

type -> (string)

Тип ресурса, назначаемого контейнеру.

firelensConfiguration -> (structure)

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

type -> (string)

Маршрутизатор журналов для использования. Допустимые значения: fluentd или fluentbit .

options -> (map)

Параметры, которые следует использовать при настройке маршрутизатора журналов. Это поле является необязательным и может использоваться для указания пользовательского файла конфигурации или для добавления дополнительных метаданных, таких как задача, определение задачи, кластер и сведения об экземпляре контейнера в событие журнала. При указании используйте синтаксис "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 -> (string)

value -> (string)

credentialSpecs -> (list)

Список ARN в SSM или Amazon S3 для файла спецификации учетных данных (CredSpec ), который настраивает контейнер для аутентификации Active Directory. Мы рекомендуем использовать этот параметр вместо dockerSecurityOptions. Максимальное количество ARN — 1.

Существует два формата для каждого ARN.

credentialspecdomainless:MyARN

Вы используете credentialspecdomainless:MyARN для предоставления CredSpec с дополнительным разделом для секрета в Secrets Manager. Вы предоставляете учетные данные для входа в домен в секрете.

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

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

credentialspec:MyARN

Вы используете credentialspec:MyARN для предоставления CredSpec для одного домена.

Вы должны присоединить экземпляр контейнера к домену, прежде чем запускать какие-либо задачи, использующие это определение задачи.

В обоих форматах замените MyARN на ARN в SSM или Amazon S3.

Если вы предоставляете credentialspecdomainless:MyARN , credspec должен предоставить ARN в Secrets Manager для секрета, содержащего имя пользователя, пароль и домен для подключения. Для большей безопасности экземпляр не присоединен к домену для аутентификации без домена. Другие приложения на экземпляре не могут использовать учетные данные без домена. Вы можете использовать этот параметр для запуска задач на том же экземпляре, даже если задачам необходимо присоединиться к разным доменам. Дополнительные сведения см. в разделе Использование gMSA для контейнеров Windows и Использование gMSA для контейнеров Linux .

(string)

family -> (string)

Название семейства, к которому зарегистрировано это определение задачи. Разрешено до 255 символов. Разрешены буквы (как строчные, так и прописные), цифры, дефисы (-) и подчеркивания (_).

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

taskRoleArn -> (string)

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

executionRoleArn -> (string)

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

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 -> (string)

Имя тома. Допускается до 255 букв (прописных и строчных), цифр, подчеркиваний и дефисов.

При использовании тома, настроенного при запуске, name является обязательным и также должно быть указано в качестве имени тома в параметре ServiceVolumeConfiguration или TaskVolumeConfiguration при создании сервиса или отдельной задачи.

Для всех других типов томов это имя указывается в параметре sourceVolume объекта mountPoints в определении контейнера.

Когда том использует efsVolumeConfiguration, имя является обязательным.

host -> (structure)

Этот параметр указывается при использовании томов хоста с привязкой к точке монтирования. Содержимое параметра 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 -> (string)

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

Если вы используете тип запуска Fargate, параметр sourcePath не поддерживается.

dockerVolumeConfiguration -> (structure)

Этот параметр указывается при использовании томов Docker.

Контейнеры Windows поддерживают только использование драйвера local. Чтобы использовать точки монтирования, укажите вместо этого параметр host.

Примечание

Тома Docker не поддерживаются задачами, выполняемыми в Fargate.

scope -> (string)

Область действия для тома Docker, определяющая его жизненный цикл. Тома Docker, область действия которых ограничена task, автоматически подготавливаются при запуске задачи и уничтожаются при ее остановке. Тома Docker, область действия которых определена как shared, сохраняются после остановки задачи.

autoprovision -> (boolean)

Если это значение равно true, том Docker создается, если он еще не существует.

Примечание

Это поле используется только в том случае, если scope равно shared.

driver -> (string)

Используемый драйвер тома Docker. Значение драйвера должно соответствовать имени драйвера, предоставленному Docker, поскольку оно используется для размещения задач. Если драйвер был установлен с помощью CLI плагина Docker, используйте docker plugin ls, чтобы получить имя драйвера из экземпляра контейнера. Если драйвер был установлен другим способом, используйте обнаружение плагина Docker, чтобы получить имя драйвера. Этот параметр отображается на Driver в команде docker container create и на параметре xxdriver для docker volume create.

driverOpts -> (map)

Сопоставление зависящих от драйвера Docker параметров, переданных. Этот параметр отображается на DriverOpts в команде docker create-volume и на параметре xxopt для docker volume create.

key -> (string)

value -> (string)

labels -> (map)

Пользовательские метаданные, которые необходимо добавить в том Docker. Этот параметр отображается на Labels в команде docker container create и на параметре xxlabel для docker volume create.

key -> (string)

value -> (string)

efsVolumeConfiguration -> (structure)

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

fileSystemId -> (string)

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

rootDirectory -> (string)

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

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

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

transitEncryption -> (string)

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

transitEncryptionPort -> (integer)

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

authorizationConfig -> (structure)

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

accessPointId -> (string)

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

iam -> (string)

Определяет, следует ли использовать роль задачи Amazon ECS, определенную в определении задачи, при монтировании файловой системы Amazon EFS. Если он включен, шифрование при передаче должно быть включено в EFSVolumeConfiguration. Если этот параметр опущен, используется значение по умолчанию DISABLED. Дополнительные сведения см. в разделе Использование точек доступа Amazon EFS в Руководстве разработчика Amazon Elastic Container Service.

fsxWindowsFileServerVolumeConfiguration -> (structure)

Этот параметр указывается при использовании файловой системы Amazon FSx for Windows File Server для хранения задач.

fileSystemId -> (string)

Идентификатор файловой системы Amazon FSx for Windows File Server для использования.

rootDirectory -> (string)

Каталог в файловой системе Amazon FSx for Windows File Server, который необходимо смонтировать в качестве корневого каталога внутри хоста.

authorizationConfig -> (structure)

Сведения о конфигурации авторизации для файловой системы Amazon FSx for Windows File Server.

credentialsParameter -> (string)

Параметр учетных данных авторизации для использования. Параметры учетных данных авторизации можно предоставить с помощью либо Amazon Resource Name (ARN) секрета Secrets Manager, либо параметра SSM Parameter Store. ARN относится к сохраненным учетным данным.

domain -> (string)

Полное доменное имя, размещенное службой Directory Service Managed Microsoft AD (Active Directory) или самостоятельно размещенное AD в Amazon EC2.

configuredAtLaunch -> (boolean)

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

Чтобы настроить том во время запуска, используйте эту редакцию определения задачи и укажите объект volumeConfigurations при вызове API CreateService, UpdateService, RunTask или StartTask.

status -> (string)

Статус определения задачи.

requiresAttributes -> (list)

Атрибуты экземпляра контейнера, необходимые для вашей задачи. Когда экземпляр Amazon EC2 зарегистрирован в вашем кластере, агент контейнера Amazon ECS назначает экземпляру некоторые стандартные атрибуты. Можно применить пользовательские атрибуты. Они указываются в виде пар "ключ-значение" с помощью консоли Amazon ECS или API PutAttributes. Эти атрибуты используются при определении размещения задач для задач, размещенных на экземплярах Amazon EC2. Дополнительные сведения см. в разделе Attributes в Руководстве разработчика Amazon Elastic Container Service .

Примечание

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

(структура)

Атрибут — это пара "имя-значение", связанная с объектом Amazon ECS. Используйте атрибуты для расширения модели данных Amazon ECS, добавляя настраиваемые метаданные в ваши ресурсы. Дополнительные сведения см. в разделе Attributes в Руководстве разработчика Amazon Elastic Container Service .

name -> (string)

Имя атрибута. name должен содержать от 1 до 128 символов. Имя может содержать буквы (прописные и строчные), цифры, дефисы (-), подчеркивания (_), косые черты (/), обратные косые черты () или точки (.).

value -> (string)

Значение атрибута. value должен содержать от 1 до 128 символов. Он может содержать буквы (прописные и строчные), цифры, дефисы (-), подчеркивания (_), точки (.), знаки @, косые черты (/), обратные косые черты (), двоеточия (:) или пробелы. Значение не может начинаться или заканчиваться пробелом.

targetType -> (string)

Тип цели, к которой нужно привязать атрибут. Этот параметр обязателен, если вы используете сокращенный идентификатор для ресурса вместо полного ARN.

targetId -> (string)

Идентификатор цели. Можно указать сокращенный идентификатор для ресурса или полный ARN Amazon Resource Name (ARN).

placementConstraints -> (list)

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

Примечание

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

(структура)

Ограничение размещения задачи в определении задачи. Дополнительные сведения см. в разделе Task placement constraints в Руководстве разработчика Amazon Elastic Container Service .

Примечание

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

type -> (string)

Тип ограничения. Ограничение MemberOf ограничивает выбор группой допустимых кандидатов.

expression -> (string)

Выражение языка запросов кластера для применения к ограничению. Дополнительные сведения см. в разделе Cluster query language в Руководстве разработчика Amazon Elastic Container Service .

compatibilities -> (list)

Amazon ECS проверяет параметры определения задачи с параметрами, поддерживаемыми типом запуска. Дополнительные сведения см. в разделе Amazon ECS launch types в Руководстве разработчика Amazon Elastic Container Service .

(string)

runtimePlatform -> (structure)

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

При указании задачи в сервисе это значение должно соответствовать значению runtimePlatform сервиса.

cpuArchitecture -> (string)

Архитектура ЦП.

Вы можете запускать свои задачи Linux на платформе на базе ARM, установив для значения ARM64 . Эта опция доступна для задач, которые выполняются на экземплярах Linux Amazon EC2 или контейнерах Linux в Fargate.

operatingSystemFamily -> (string)

Операционная система.

requiresCompatibilities -> (list)

Типы запуска задач, для которых было проверено определение задачи. Допустимые значения: EC2 , FARGATE и EXTERNAL . Дополнительные сведения см. в разделе Amazon ECS launch types в Руководстве разработчика Amazon Elastic Container Service .

(string)

cpu -> (string)

Количество cpu единиц, используемых задачей. Если вы используете тип запуска EC2, это поле является необязательным. Можно использовать любое значение. Если вы используете тип запуска Fargate, это поле является обязательным. Необходимо использовать одно из следующих значений. Выбранное значение определяет диапазон допустимых значений для параметра memory .

Если вы используете тип запуска EC2 или внешний тип запуска, это поле является необязательным. Поддерживаются значения от 128 единиц ЦП (0.125 vCPU) до 196608 единиц ЦП (192 vCPU).

Это поле обязательно для Fargate. Сведения о допустимых значениях см. в разделе Task size в Руководстве разработчика Amazon Elastic Container Service .

memory -> (string)

Объем (в МиБ) памяти, используемый задачей.

Если ваши задачи выполняются на экземплярах 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) This option requires Linux platform 1.4.0 or later.
  • От 32 ГБ до 120 ГБ с шагом 8 ГБ - Доступные значения cpu : 16384 (16 vCPU) This option requires Linux platform 1.4.0 or later.

inferenceAccelerators -> (list)

Ускоритель Elastic Inference, связанный с задачей.

(структура)

Сведения об ускорителе Elastic Inference. Дополнительные сведения см. в разделе Working with Amazon Elastic Inference on Amazon ECS в Руководстве разработчика Amazon Elastic Container Service .

deviceName -> (string)

Имя устройства ускорителя Elastic Inference. deviceName также должно быть указано в определении контейнера как ResourceRequirement .

deviceType -> (string)

Тип ускорителя Elastic Inference для использования.

pidMode -> (string)

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

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

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

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

Если используется режим PID host , существует повышенный риск нежелательного раскрытия пространства имен процесса.

Примечание

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

Примечание

Этот параметр поддерживается только для задач, размещенных в Fargate, если задачи используют версию платформы 1.4.0 или более позднюю (Linux). Это не поддерживается для контейнеров Windows в Fargate.

ipcMode -> (string)

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

При использовании режима IPC host имейте в виду, что существует повышенный риск нежелательного раскрытия пространства имен IPC.

Если вы настраиваете параметры ядра с использованием systemControls для контейнеров в задаче, следующее будет применяться к вашему пространству имен ресурсов IPC. Дополнительные сведения см. в разделе System Controls в Руководстве разработчика Amazon Elastic Container Service .

  • Для задач, использующих режим IPC host , systemControls , связанные с пространством имен IPC, не поддерживаются.
  • Для задач, использующих режим IPC task , systemControls , связанные с пространством имен IPC, будут применяться ко всем контейнерам в задаче.

Примечание

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

proxyConfiguration -> (structure)

Сведения о конфигурации для прокси App Mesh.

Для использования конфигурации прокси экземплярам контейнеров Amazon ECS требуется агент контейнера версии 1.26.0 или более поздней и пакет ecs-init версии 1.26.0-1 или более поздней. Если экземпляры контейнеров запущены из Amazon ECS-оптимизированного AMI версии 20190301 или более поздней, они содержат требуемые версии агента контейнера и ecs-init . Дополнительные сведения см. в разделе Amazon ECS-optimized Linux AMI в Руководстве разработчика Amazon Elastic Container Service .

type -> (string)

Тип прокси. Единственное поддерживаемое значение — APPMESH .

containerName -> (string)

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

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)

Метка времени Unix для времени, когда определение задачи было зарегистрировано.

deregisteredAt -> (timestamp)

Метка времени Unix для времени, когда определение задачи было снято с регистрации.

registeredBy -> (string)

Принципал, зарегистрировавший определение задачи.

ephemeralStorage -> (structure)

Параметры временного хранилища для задач, выполняемых с определением задачи.

sizeInGiB -> (integer)

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

enableFaultInjection -> (boolean)

Включает внедрение сбоев и разрешает прием запросов внедрения сбоев от контейнеров задачи. Значение по умолчанию — false .

tags -> (list)

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

(structure)

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

К тегам применяются следующие базовые ограничения:

  • Максимальное количество тегов на ресурс — 50
  • Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
  • Максимальная длина ключа — 128 символов Юникода в UTF-8
  • Максимальная длина значения — 256 символов Юникода в UTF-8
  • Если ваша схема тегирования используется в нескольких сервисах и ресурсах, помните, что другие сервисы могут иметь ограничения на допустимые символы. Обычно разрешены следующие символы: буквы, цифры и пробелы, представленные в UTF-8, а также следующие символы: + - = . _ : / @.
  • Ключи и значения тегов чувствительны к регистру.
  • Не используйте aws: , AWS: или любую комбинацию этих символов в верхнем или нижнем регистре в качестве префикса для ключей или значений, так как она зарезервирована для использования в Amazon Web Services. Вы не можете редактировать или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при ограничении тегов на ресурс.

key -> (string)

Одна часть пары "ключ-значение", составляющей тег. key — это общая метка, которая действует как категория для более конкретных значений тегов.

value -> (string)

Необязательная часть пары "ключ-значение", составляющей тег. value действует как дескриптор в категории тегов (ключ).

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API