create-service
Описание
Запускает и поддерживает необходимое количество задач из указанного определения задачи. Если количество работающих задач в службе опустится ниже значения desiredCount, Amazon ECS запустит еще одну копию задачи в указанном кластере. Для обновления существующей службы используйте UpdateService.
Примечание
21 марта 2024 года были внесены изменения для разрешения ревизии определения задачи перед авторизацией. Если ревизия определения задачи не указана, авторизация будет выполнена с использованием последней ревизии определения задачи.Примечание
Услуга Amazon Elastic Inference (EI) больше недоступна клиентам.Помимо поддержания желаемого количества задач в вашей службе, вы можете дополнительно запустить службу за одним или несколькими балансировщиками нагрузки. Балансировщики нагрузки распределяют трафик между задачами, связанными со службой. Дополнительную информацию см. в разделе «Балансировка нагрузки службы» в руководстве разработчика Amazon Elastic Container Service.
Вы можете подключить тома Amazon EBS к задачам Amazon ECS, настроив том при создании или обновлении службы. volumeConfigurations поддерживается только для служб типа REPLICA, а не DAEMON. Дополнительную информацию см. в разделе «Тома Amazon EBS» в руководстве разработчика Amazon Elastic Container Service.
Задачи для служб, не использующих балансировщик нагрузки, считаются работоспособными, если они находятся в состоянии RUNNING. Задачи для служб, использующих балансировщик нагрузки, считаются работоспособными, если они находятся в состоянии RUNNING и считаются работоспособными балансировщиком нагрузки.
Доступны две стратегии планировщика служб:
-
REPLICA— стратегия планирования реплик размещает и поддерживает необходимое количество задач по всему кластеру. По умолчанию планировщик служб распределяет задачи по зонам доступности. Вы можете использовать стратегии и ограничения размещения задач для настройки решений о размещении задач. Дополнительную информацию см. в разделе «Концепции планировщика служб» в руководстве разработчика Amazon Elastic Container Service. -
DAEMON— стратегия планирования демонов развертывает ровно одну задачу на каждом активном контейнерном экземпляре, который соответствует всем ограничениям размещения задач, указанным в вашем кластере. Планировщик служб также оценивает ограничения размещения задач для работающих задач. Он также останавливает задачи, которые не соответствуют ограничениям размещения. При использовании этой стратегии вам не нужно указывать необходимое количество задач, стратегию размещения задач или использовать политики автоматического масштабирования служб. Дополнительную информацию см. в разделе «Концепции планировщика служб» в руководстве разработчика Amazon Elastic Container Service.
Вы можете дополнительно указать конфигурацию развертывания для вашей службы. Развертывание инициируется при изменении свойств. Например, развертывание может быть инициировано определением задачи или желаемым количеством задач службы. Вы можете использовать UpdateService. Значение по умолчанию для службы реплик для minimumHealthyPercent составляет 100%. Значение по умолчанию для службы демонов для minimumHealthyPercent составляет 0%.
Если служба использует ECS контроллер развертывания, минимальный процент работоспособности представляет собой нижний предел количества задач в службе, которые должны оставаться в состоянии RUNNING во время развертывания. В частности, это выражается в процентах от желаемого количества задач (округленное до ближайшего целого числа). Это происходит, когда любой из ваших контейнерных экземпляров находится в состоянии DRAINING, если служба содержит задачи, использующие тип запуска EC2. Используя этот параметр, вы можете развертывать без использования дополнительных ресурсов кластера. Например, если вы настроили свою службу на четыре задачи, а минимальный процент работоспособности составляет 50%, планировщик может остановить две существующие задачи, чтобы освободить ресурсы кластера перед запуском двух новых задач. Если они находятся в состоянии RUNNING, задачи для служб, не использующих балансировщик нагрузки, считаются работоспособными. Если они находятся в состоянии RUNNING и считаются работоспособными балансировщиком нагрузки, задачи для служб, использующих балансировщик нагрузки, считаются работоспособными. Значение по умолчанию для минимального процента работоспособности составляет 100%.
Если служба использует ECS контроллер развертывания, параметр максимальный процент представляет собой верхний предел количества задач в службе, которые разрешены в состоянии RUNNING или PENDING во время развертывания. В частности, это выражается в процентах от желаемого количества задач (округленное до ближайшего меньшего целого числа). Это происходит, когда любой из ваших контейнерных экземпляров находится в состоянии DRAINING, если служба содержит задачи, использующие тип запуска EC2. Используя этот параметр, вы можете определить размер партии развертывания. Например, если ваша служба имеет четыре задачи, а значение максимального процента составляет 200%, планировщик может запустить четыре новые задачи перед остановкой четырех старых задач (при условии, что необходимые для этого ресурсы кластера доступны). Значение по умолчанию для максимального процента составляет 200%.
Если служба использует контроллеры развертывания CODE_DEPLOY или EXTERNAL и задачи используют тип запуска EC2, значения минимального процента работоспособности и максимального процента используются только для определения нижнего и верхнего предела количества задач в службе, которые остаются в состоянии RUNNING. Это происходит, когда контейнерные экземпляры находятся в состоянии DRAINING. Если задачи в службе используют тип запуска Fargate, значения минимального процента работоспособности и максимального процента не используются. Это верно, даже если они в настоящее время видны при описании вашей службы.
При создании службы, использующей EXTERNAL контроллер развертывания, вы можете указать только параметры, которые не контролируются на уровне набора задач. Единственный обязательный параметр — имя службы. Вы управляете своими службами с помощью CreateTaskSet. Дополнительную информацию см. в разделе «Типы развертывания Amazon ECS» в руководстве разработчика Amazon Elastic Container Service.
Когда планировщик служб запускает новые задачи, он определяет размещение задач. Дополнительную информацию о размещении задач и стратегиях размещения задач см. в разделе «Размещение задач Amazon ECS» в руководстве разработчика Amazon Elastic Container Service.
См. также: Документация API AWS
Синтаксис
create-service
[--cluster <value>]
--service-name <value>
[--task-definition <value>]
[--availability-zone-rebalancing <value>]
[--load-balancers <value>]
[--service-registries <value>]
[--desired-count <value>]
[--client-token <value>]
[--launch-type <value>]
[--capacity-provider-strategy <value>]
[--platform-version <value>]
[--role <value>]
[--deployment-configuration <value>]
[--placement-constraints <value>]
[--placement-strategy <value>]
[--network-configuration <value>]
[--health-check-grace-period-seconds <value>]
[--scheduling-strategy <value>]
[--deployment-controller <value>]
[--tags <value>]
[--enable-ecs-managed-tags | --no-enable-ecs-managed-tags]
[--propagate-tags <value>]
[--enable-execute-command | --disable-execute-command]
[--service-connect-configuration <value>]
[--volume-configurations <value>]
[--vpc-lattice-configurations <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--cluster (строка)
--service-name (строка)
--task-definition (строка)
family и revision (family:revision ) или полное ARN определения задачи для запуска в вашей службе. Если определение задачи не указано, используется последняя ACTIVE ревизия.
Определение задачи должно быть указано, если служба использует контроллеры развертывания ECS или CODE_DEPLOY.
Дополнительную информацию о типах развертывания см. в разделе Типы развертывания Amazon ECS.
--availability-zone-rebalancing (строка)
Указывает, следует ли использовать балансировку зон доступности для службы.
Дополнительную информацию см. в разделе Балансировка службы Amazon ECS по зонам доступности в * Руководстве разработчика Amazon Elastic Container Service *.
Возможные значения:
ENABLEDDISABLED
--load-balancers (список)
Объект балансировщика нагрузки, представляющий балансировщики нагрузки, которые следует использовать со службой. Дополнительную информацию см. в разделе Балансировка нагрузки службы в Руководстве разработчика Amazon Elastic Container Service.
Если служба использует контроллер развертывания с постепенным обновлением (ECS ) и использует балансировщик приложений или балансировщик сети, вы должны указать один или несколько ARNs групп целевых серверов для присоединения к службе. Роль связанная со службой необходима для служб, использующих несколько групп целевых серверов. Дополнительную информацию см. в разделе Использование ролей, связанных со службой, для Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.
Если служба использует контроллер развертывания CODE_DEPLOY, служба должна использовать либо балансировщик приложений, либо балансировщик сети. При создании группы развертывания CodeDeploy вы указываете две группы целевых серверов (называемые targetGroupPair). Во время развертывания CodeDeploy определяет, какой набор задач в вашей службе имеет состояние PRIMARY, и он связывает одну группу целевых серверов с ним. Затем он также связывает другую группу целевых серверов с замещающим набором задач. Балансировщик также может иметь до двух слушателей: обязательный слушатель для трафика производства и необязательный слушатель, который вы можете использовать для выполнения проверочных тестов с помощью функций Lambda перед маршрутизацией производственного трафика к нему.
Если вы используете контроллер развертывания CODE_DEPLOY, эти значения можно изменить при обновлении службы.
Для балансировщиков приложений и балансировщиков сети этот объект должен содержать ARN группы целевых серверов балансировщика, имя контейнера и порт контейнера для доступа к балансировщику. Имя контейнера должно быть таким, как оно отображается в определении контейнера. Параметр имени балансировщика следует опустить. Когда задача из этой службы размещается на экземпляре контейнера, комбинация экземпляра контейнера и порта регистрируется как цель в группе целевых серверов, указанной здесь.
Для классических балансировщиков этот объект должен содержать имя балансировщика, имя контейнера и порт контейнера для доступа к балансировщику. Имя контейнера должно быть таким, как оно отображается в определении контейнера. Параметр ARN группы целевых серверов следует опустить. Когда задача из этой службы размещается на экземпляре контейнера, экземпляр контейнера регистрируется в балансировщике, который указан здесь.
Службы с задачами, использующими режим сети awsvpc (например, те, у которых тип запуска Fargate), поддерживают только балансировщики приложений и балансировщики сети. Классические балансировщики не поддерживаются. Кроме того, при создании любых групп целевых серверов для этих служб вы должны выбрать ip в качестве типа целевого сервера, а не instance. Это связано с тем, что задачи, использующие режим сети awsvpc, связаны с интерфейсом эластичной сети, а не с экземпляром Amazon EC2.
(структура)
Настройка балансировщика нагрузки для использования со службой или набором задач.
Когда вы добавляете, обновляете или удаляете конфигурацию балансировщика нагрузки, Amazon ECS запускает новое развертывание с обновленной конфигурацией Elastic Load Balancing. Это приводит к регистрации задач и их отмене регистрации в балансировщиках нагрузки.
Рекомендуется проверить это в тестовой среде перед обновлением конфигурации Elastic Load Balancing.
Роль, связанная со службой, необходима для служб, использующих несколько групп целевых серверов. Дополнительную информацию см. в разделе Использование ролей, связанных со службой, в Руководстве разработчика Amazon Elastic Container Service.
targetGroupArn -> (строка)
Полное имя ресурса Amazon (ARN) группы целевых серверов Elastic Load Balancing или групп, связанных со службой или набором задач.
ARN группы целевых серверов указывается только при использовании балансировщика приложений или балансировщика сети.
Для служб, использующих контроллер развертывания ECS, вы можете указать одну или несколько групп целевых серверов. Дополнительную информацию см. в разделе Регистрация нескольких групп целевых серверов со службой в Руководстве разработчика Amazon Elastic Container Service.
Для служб, использующих контроллер развертывания CODE_DEPLOY, вам необходимо определить две группы целевых серверов для балансировщика. Дополнительную информацию см. в разделе Развертывание "синий/зеленый" с CodeDeploy в Руководстве разработчика Amazon Elastic Container Service.
Предупреждение
Если определение задачи вашей службы использует режим сетиawsvpc, вы должны выбрать ip в качестве типа целевого сервера, а не instance. Сделайте это при создании ваших групп целевых серверов, потому что задачи, использующие режим сети awsvpc, связаны с интерфейсом эластичной сети, а не с экземпляром Amazon EC2. Этот режим сети необходим для типа запуска Fargate.loadBalancerName -> (строка)
Имя балансировщика нагрузки для ассоциации с Amazon ECS службой или набором задач.
Если вы используете балансировщик приложений или балансировщик сети, параметр имени балансировщика следует опустить.
containerName -> (строка)
Имя контейнера (как оно отображается в определении контейнера) для ассоциации с балансировщиком нагрузки.
Вам нужно указать имя контейнера при настройке группы целевых серверов для балансировщика Amazon ECS.
containerPort -> (целое число)
containerPort в определении задачи, используемой задачами в службе. Для задач, использующих тип запуска EC2, экземпляр контейнера, на котором они запускаются, должен разрешать входящий трафик на hostPort порт сопоставления.Упрощенная синтаксическая запись:
targetGroupArn=string,loadBalancerName=string,containerName=string,containerPort=integer ...
Синтаксис JSON:
[
{
"targetGroupArn": "string",
"loadBalancerName": "string",
"containerName": "string",
"containerPort": integer
}
...
]
--service-registries (список)
Подробности реестра обнаружения служб для ассоциации с этой службой. Дополнительную информацию см. в разделе Обнаружение служб.
Примечание
Каждая служба может быть связана с одним реестром служб. Несколько реестров служб для каждой службы не поддерживаются.(структура)
Подробности реестра службы.
Каждая служба может быть связана с одним реестром служб. Несколько реестров служб для каждой службы не поддерживаются.
Когда вы добавляете, обновляете или удаляете конфигурацию реестров служб, Amazon ECS запускает новое развертывание. Новые задачи регистрируются и отменяются регистрации в обновленной конфигурации реестра служб.
registryArn -> (строка)
port -> (целое число)
awsvpc, так и записи SRV.containerName -> (строка)
bridge или host, вы должны указать комбинацию containerName и containerPort из определения задачи. Если определение задачи вашей задачи службы использует режим сети awsvpc и используется запись SRV DNS-записи типа, вы должны указать комбинацию containerName и containerPort или значение port. Однако вы не можете указать оба.containerPort -> (целое число)
bridge или host, вы должны указать комбинацию containerName и containerPort из определения задачи. Если определение задачи вашей задачи службы использует режим сети awsvpc и используется запись SRV DNS-записи типа, вы должны указать комбинацию containerName и containerPort или значение port. Однако вы не можете указать оба.Упрощенная синтаксическая запись:
registryArn=string,port=integer,containerName=string,containerPort=integer ...
Синтаксис JSON:
[
{
"registryArn": "string",
"port": integer,
"containerName": "string",
"containerPort": integer
}
...
]
--desired-count (целое число)
Количество экземпляров указанного определения задачи, которые следует разместить и удерживать в работе в вашей службе.
Это необходимо, если schedulingStrategy равно REPLICA или не указано. Если schedulingStrategy равно DAEMON, это не требуется.
--client-token (строка)
--launch-type (строка)
Инфраструктура, на которой вы запускаете свою службу. Для получения дополнительной информации см. типы запуска Amazon ECS в руководстве разработчика Amazon Elastic Container Service.
Тип запуска FARGATE запускает ваши задачи на инфраструктуре Fargate On-Demand.
Примечание
Инфраструктура Fargate Spot доступна для использования, но должна быть применена стратегия поставщиков емкости. Для получения дополнительной информации см. поставщиков емкости Fargate в руководстве разработчика Amazon ECS.Тип запуска EC2 запускает ваши задачи на экземплярах Amazon EC2, зарегистрированных в вашем кластере.
Тип запуска EXTERNAL запускает ваши задачи на вашей локальной серверной или виртуальной машине (ВМ) емкости, зарегистрированной в вашем кластере.
Служба может использовать либо тип запуска, либо стратегию поставщиков емкости. Если задан launchType, параметр capacityProviderStrategy должен быть опущен.
Возможные значения:
EC2FARGATEEXTERNAL
--capacity-provider-strategy (список)
Стратегия поставщика емкости для использования в службе.
Если задана capacityProviderStrategy, параметр launchType должен быть опущен. Если не задана capacityProviderStrategy или launchType, используется defaultCapacityProviderStrategy для кластера.
Стратегия поставщика емкости может содержать не более 20 поставщиков емкости.
(структура)
Подробности стратегии поставщика емкости. Стратегия поставщика емкости может быть установлена при использовании API RunTask или CreateCluster или в качестве стратегии поставщика емкости по умолчанию для кластера с помощью API CreateCluster.
Можно использовать только поставщиков емкости, которые уже ассоциированы с кластером и имеют статус ACTIVE или UPDATING. API PutClusterCapacityProviders используется для ассоциации поставщика емкости с кластером.
Если вы указываете поставщика емкости, использующего группу Auto Scaling, поставщик емкости должен быть уже создан. Новые поставщики емкости группы Auto Scaling могут быть созданы с помощью операции API CreateClusterCapacityProvider.
Для использования поставщика емкости Fargate укажите либо поставщиков емкости FARGATE или FARGATE_SPOT. Поставщики емкости Fargate доступны для всех учетных записей и должны быть связаны с кластером, чтобы использоваться в стратегии поставщиков емкости.
С помощью FARGATE_SPOT вы можете запускать задачи, устойчивые к прерываниям, со скидкой по сравнению с ценой FARGATE. FARGATE_SPOT запускает задачи на свободных вычислительных ресурсах. Когда Amazon Web Services нуждается в освобождении ресурсов, ваши задачи прерываются с двухминутным предупреждением. FARGATE_SPOT поддерживает задачи Linux с архитектурой X86_64 на версии платформы 1.3.0 или более поздней. FARGATE_SPOT поддерживает задачи Linux с архитектурой ARM64 на версии платформы 1.4.0 или более поздней.
Стратегия поставщика емкости может содержать не более 20 поставщиков емкости.
capacityProvider -> (строка)
weight -> (целое число)
Значение weight определяет процентное соотношение от общего числа запущенных задач, которые должны использовать указанного поставщика емкости. Значение weight учитывается после значения base, если оно определено.
Если значение weight не указано, используется значение по умолчанию 0. Если в стратегии поставщиков емкости указано несколько поставщиков емкости, по крайней мере один из поставщиков емкости должен иметь значение веса, большее нуля, и любые поставщики емкости с весом 0 не могут использоваться для размещения задач. Если вы укажете несколько поставщиков емкости в стратегии, которые все имеют вес 0, любые действия RunTask или CreateService, использующие стратегию поставщика емкости, завершатся ошибкой.
Пример сценария использования весов: определение стратегии, содержащей двух поставщиков емкости, у которых оба веса равны 1, затем, когда удовлетворяется условие base, задачи будут разделены равномерно между двумя поставщиками емкости. Используя тот же принцип, если вы зададите вес 1 для capacityProviderA и вес 4 для capacityProviderB, то для каждой задачи, запущенной с помощью capacityProviderA, четыре задачи будут использовать capacityProviderB.
base -> (целое число)
0.Сокращенная синтаксическая запись:
capacityProvider=string,weight=integer,base=integer ...
Синтаксис JSON:
[
{
"capacityProvider": "string",
"weight": integer,
"base": integer
}
...
]
--platform-version (строка)
LATEST. Для получения дополнительной информации см. версии платформы Fargate в руководстве разработчика Amazon Elastic Container Service.--role (строка)
Имя или полный Amazon Resource Name (ARN) роли IAM, которая разрешает Amazon ECS делать вызовы вашему балансировщику нагрузки от вашего имени. Этот параметр разрешен только при использовании балансировщика нагрузки с вашей службой и если определение вашей задачи не использует режим сети awsvpc. Если вы указываете параметр role, вы также должны указать объект балансировщика нагрузки с параметром loadBalancers.
Предупреждение
Если ваша учетная запись уже создала роль Amazon ECS для служб, эта роль используется для вашей службы, если вы не укажете другую роль здесь. Роль для служб необходима, если ваше определение задачи использует режим сетиawsvpc, или если служба настроена для использования обнаружения служб, внешнего контроллера развертывания, нескольких целевых групп или ускорителей Elastic Inference, в этом случае вы не указываете роль. Для получения дополнительной информации см. Использование ролей для служб Amazon ECS в руководстве разработчика Amazon Elastic Container Service.Если указанная роль имеет путь, отличный от /, тогда необходимо указать либо полный ARN роли (рекомендуется), либо префикс имени роли с путем. Например, если роль с именем bar имеет путь /foo/, тогда вы должны указать /foo/bar как имя роли. Для получения дополнительной информации см. Подробные имена и пути в руководстве пользователя IAM.
--deployment-configuration (структура)
Дополнительные параметры развертывания, которые управляют количеством задач, выполняемых во время развертывания, и порядком останова и запуска задач.
deploymentCircuitBreaker -> (структура)
Примечание
Разрыв цепи развертывания может использоваться только для служб, использующих тип развертывания поэтапного обновления (ECS).Разрыв цепи развертывания определяет, произойдет ли сбой развертывания службы, если служба не может достичь стабильного состояния. Если вы используете разрыв цепи развертывания, развертывание службы перейдет в состояние ошибки и прекратит запуск новых задач. Если вы используете опцию отката, при сбое развертывания службы служба откатывается до последнего успешно завершенного развертывания. Дополнительную информацию см. в разделе Поэтапное обновление в руководстве разработчика Amazon Elastic Container Service.
enable -> (булево)
rollback -> (булево)
maximumPercent -> (целое число)
Если служба использует тип развертывания поэтапного обновления (ECS), параметр maximumPercent представляет собой верхний предел количества задач вашей службы, которые разрешены в состоянии RUNNING или PENDING во время развертывания, в процентах от desiredCount (округленное вниз до ближайшего целого числа). Этот параметр позволяет определить размер пакета развертывания. Например, если ваша служба использует планировщик служб REPLICA и имеет desiredCount из четырех задач и значение maximumPercent равное 200%, планировщик может запустить четыре новые задачи перед остановкой четырех более старых задач (при условии, что ресурсы кластера, необходимые для этого, доступны). Значение по умолчанию maximumPercent для службы, использующей планировщик служб REPLICA, составляет 200%.
Планировщик Amazon ECS использует этот параметр для замены неисправных задач, сначала запустив задачи-замены, а затем остановив неисправные задачи, если ресурсы кластера для запуска задач-замен доступны. Дополнительную информацию о том, как планировщик заменяет неисправные задачи, см. в разделе Amazon ECS services.
Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL, а задачи в службе используют тип запуска EC2, значение maximum percent устанавливается по умолчанию. Значение maximum percent используется для определения верхнего предела количества задач в службе, которые остаются в состоянии RUNNING, в то время как экземпляры контейнеров находятся в состоянии DRAINING.
Примечание
Вы не можете указать пользовательское значениеmaximumPercent для службы, использующей типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL, и имеющей задачи, использующие тип запуска EC2.Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL, а задачи в службе используют тип запуска Fargate, значение maximum percent не используется. Значение по-прежнему возвращается при описании вашей службы.
minimumHealthyPercent -> (целое число)
Если служба использует тип развертывания поэтапного обновления (ECS), minimumHealthyPercent представляет собой нижний предел количества задач вашей службы, которые должны оставаться в состоянии RUNNING во время развертывания, в процентах от desiredCount (округленное вверх до ближайшего целого числа). Этот параметр позволяет развертывать, не используя дополнительную емкость кластера. Например, если ваша служба имеет desiredCount из четырех задач и minimumHealthyPercent из 50%, планировщик служб может остановить две существующие задачи, чтобы освободить емкость кластера перед запуском двух новых задач.
Если какие-либо задачи являются неисправными, и maximumPercent не позволяет планировщику Amazon ECS запускать задачи-замены, планировщик останавливает неисправные задачи по одной — используя minimumHealthyPercent в качестве ограничения — для освобождения ресурсов для запуска задач-замен. Дополнительную информацию о том, как планировщик заменяет неисправные задачи, см. в разделе Amazon ECS services.
Для служб, не использующих балансировщик нагрузки, следует отметить следующее:
- Служба считается работоспособной, если все необходимые контейнеры в задачах в службе успешно проходят проверки работоспособности.
- Если у задачи нет необходимых контейнеров с определенной проверкой работоспособности, планировщик служб подождет 40 секунд после того, как задача достигнет состояния
RUNNING, прежде чем задача будет учтена в общем количестве минимального процента работоспособных задач. - Если у задачи есть один или несколько необходимых контейнеров с определенной проверкой работоспособности, планировщик служб подождет, пока задача не достигнет состояния работоспособности, прежде чем учитывать ее в общем количестве минимального процента работоспособных задач. Задача считается работоспособной, когда все необходимые контейнеры внутри задачи успешно прошли проверки работоспособности. Время, которое может ждать планировщик служб, определяется настройками проверки работоспособности контейнера.
Для служб, использующих балансировщик нагрузки, следует отметить следующее:
- Если у задачи нет необходимых контейнеров с определенной проверкой работоспособности, планировщик служб подождет, пока проверка работоспособности целевой группы балансировщика нагрузки не вернет состояние работоспособности, прежде чем учитывать задачу в общем количестве минимального процента работоспособных задач.
- Если у задачи есть необходимый контейнер с определенной проверкой работоспособности, планировщик служб подождет, пока задача не достигнет состояния работоспособности и проверка работоспособности целевой группы балансировщика нагрузки не вернет состояние работоспособности, прежде чем учитывать задачу в общем количестве минимального процента работоспособных задач.
Значение по умолчанию для службы-реплики для minimumHealthyPercent составляет 100%. Значение по умолчанию minimumHealthyPercent для службы, использующей планировщик служб DAEMON, составляет 0% для CLI, Amazon Web Services SDK и API и 50% для Amazon Web Services Management Console.
Минимальное количество работоспособных задач во время развертывания равно desiredCount, умноженному на minimumHealthyPercent /100, округленному вверх до ближайшего целого значения.
Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL и выполняет задачи, использующие тип запуска EC2, значение минимальный процент работоспособности устанавливается по умолчанию. Значение минимальный процент работоспособности используется для определения нижнего предела количества задач в службе, которые остаются в состоянии RUNNING, в то время как экземпляры контейнеров находятся в состоянии DRAINING.
Примечание
Вы не можете указать пользовательское значениеminimumHealthyPercent для службы, использующей типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL, и имеющей задачи, использующие тип запуска EC2.Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL и выполняет задачи, использующие тип запуска Fargate, значение минимального процента работоспособности не используется, хотя оно возвращается при описании вашей службы.
alarms -> (структура)
Информация о CloudWatch сигналах.
alarmNames -> (список)
Одно или несколько имен сигналов CloudWatch. Используйте «,» для разделения сигналов.
(строка)
rollback -> (булево)
enable -> (булево)
Сокращенная синтаксическая запись:
deploymentCircuitBreaker={enable=boolean,rollback=boolean},maximumPercent=integer,minimumHealthyPercent=integer,alarms={alarmNames=[string,string],rollback=boolean,enable=boolean}
Синтаксис JSON:
{
"deploymentCircuitBreaker": {
"enable": true|false,
"rollback": true|false
},
"maximumPercent": integer,
"minimumHealthyPercent": integer,
"alarms": {
"alarmNames": ["string", ...],
"rollback": true|false,
"enable": true|false
}
}
--placement-constraints (список)
Массив объектов ограничений размещения, используемых для задач в вашей службе. Вы можете указать не более 10 ограничений для каждой задачи. Это ограничение включает ограничения в определении задачи и те, которые указаны во время выполнения.
(структура)
Объект, представляющий ограничение размещения задачи. Дополнительную информацию см. в разделе Ограничения размещения задач в руководстве разработчика Amazon Elastic Container Service.
Примечание
Если вы используете тип запуска Fargate, ограничения размещения задач не поддерживаются.type -> (строка)
distinctInstance, чтобы убедиться, что каждая задача в определенной группе выполняется на разных экземплярах контейнера. Используйте memberOf, чтобы ограничить выбор группой допустимых кандидатов.expression -> (строка)
distinctInstance. Дополнительную информацию см. в разделе Язык запросов кластера в руководстве разработчика Amazon Elastic Container Service.Сокращенная синтаксическая запись:
type=string,expression=string ...
Синтаксис JSON:
[
{
"type": "distinctInstance"|"memberOf",
"expression": "string"
}
...
]
--placement-strategy (список)
Объекты стратегии размещения, используемые для задач в вашей службе. Вы можете указать не более 5 правил стратегии для каждой службы.
(структура)
Стратегия размещения задач для задачи или службы. Дополнительную информацию см. в разделе Стратегии размещения задач в руководстве разработчика Amazon Elastic Container Service.
type -> (строка)
random случайным образом размещает задачи на доступных кандидатах. Стратегия размещения spread равномерно распределяет размещение по доступным кандидатам на основе параметра field. Стратегия binpack размещает задачи на доступных кандидатах, у которых наименьшее количество указанного ресурса, определенного параметром field. Например, если вы используете binpack для памяти, задача размещается на экземпляре с наименьшим количеством свободной памяти, но достаточно для выполнения задачи.field -> (строка)
spread допустимые значения — instanceId (или host, что имеет тот же эффект), или любой платформенный или пользовательский атрибут, примененный к экземпляру контейнера, например attribute:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — cpu и memory. Для стратегии размещения random это поле не используется.Сокращенная синтаксическая запись:
type=string,field=string ...
Синтаксис JSON:
[
{
"type": "random"|"spread"|"binpack",
"field": "string"
}
...
]
--network-configuration (структура)
Конфигурация сети для сервиса. Этот параметр требуется для определений задач, использующих режим сети awsvpc для получения собственного интерфейса эластичной сети, и не поддерживается для других режимов сети. Дополнительные сведения см. в разделе Сети задач в Руководстве разработчика Amazon Elastic Container Service.
awsvpcConfiguration -> (структура)
Подсети VPC и группы безопасности, связанные с задачей.
Примечание
Все указанные подсети и группы безопасности должны принадлежать одной VPC.subnets -> (список)
Идентификаторы подсетей, связанных с задачей или сервисом. Можно указать до 16 подсетей.
Примечание
Все указанные подсети должны принадлежать одной VPC.(строка)
securityGroups -> (список)
Идентификаторы групп безопасности, связанных с задачей или сервисом. Если вы не укажете группу безопасности, используется группа безопасности по умолчанию для VPC. Можно указать до 5 групп безопасности.
Примечание
Все указанные группы безопасности должны принадлежать одной VPC.(строка)
assignPublicIp -> (строка)
Получает ли эластичный интерфейс сети задачи публичный IP-адрес.
Рассмотрите следующие моменты при установке этого значения:
- При использовании
create-serviceилиupdate-serviceзначение по умолчанию —DISABLED. - Если сервис
deploymentControllerнаходится в состоянииECS, значение должно бытьDISABLED.
Упрощённый синтаксис:
awsvpcConfiguration={subnets=[string,string],securityGroups=[string,string],assignPublicIp=string}
Синтаксис JSON:
{
"awsvpcConfiguration": {
"subnets": ["string", ...],
"securityGroups": ["string", ...],
"assignPublicIp": "ENABLED"|"DISABLED"
}
}
--health-check-grace-period-seconds (целое число)
Время в секундах, в течение которого планировщик Amazon ECS-сервиса игнорирует проверки состояния задач Elastic Load Balancing, VPC Lattice и контейнеров после первого запуска задачи. Если вы не укажете значение периода ожидания проверки состояния, используется значение по умолчанию — 0. Если вы не используете никакие проверки состояния, то healthCheckGracePeriodSeconds не используется.
Если задачи вашего сервиса долго запускаются и отвечают на проверки состояния, вы можете указать период ожидания проверки состояния до 2 147 483 647 секунд (примерно 69 лет). В течение этого периода планировщик Amazon ECS-сервиса игнорирует статус проверки состояния. Этот период ожидания может предотвратить маркировку задач как неисправных и их остановку до момента успешного запуска.
--scheduling-strategy (строка)
Стратегия планирования, используемая для сервиса. Дополнительные сведения см. в разделе Services.
Доступны две стратегии планирования сервисов:
-
REPLICA— Стратегия планирования реплик размещает и поддерживает необходимое количество задач в кластере. По умолчанию планировщик сервиса распределяет задачи по зонам доступности. Вы можете использовать стратегии размещения задач и ограничения для настройки решений по размещению задач. Эта стратегия планирования требуется, если сервис использует типы контроллеров развертыванияCODE_DEPLOYилиEXTERNAL. -
DAEMON— Стратегия планирования демонов развертывает ровно одну задачу на каждом активном экземпляре контейнера, который удовлетворяет всем ограничениям размещения задач, указанным в вашем кластере. Планировщик сервиса также оценивает ограничения размещения задач для работающих задач и остановит задачи, которые не соответствуют ограничениям размещения. Когда вы используете эту стратегию, вам не нужно указывать желаемое количество задач, стратегию размещения задач или использовать политики автоматического масштабирования сервиса.
Примечание
Задачи, использующие тип запуска Fargate или типы контроллеров развертыванияCODE_DEPLOY или EXTERNAL, не поддерживают стратегию планирования DAEMON.Возможные значения:
REPLICADAEMON
--deployment-controller (структура)
Контроллер развертывания, используемый для сервиса. Если контроллер развертывания не указан, используется значение по умолчанию — ECS.
type -> (строка)
Тип контроллера развертывания.
Доступны три типа контроллеров развертывания:
Тип развертывания с поэтапной заменой (ECS) подразумевает замену текущей работающей версии контейнера на последнюю версию. Количество контейнеров, добавляемых или удаляемых Amazon ECS из сервиса во время поэтапной замены, контролируется путем настройки минимального и максимального количества исправных задач, разрешенных во время развертывания сервиса, как указано в DeploymentConfiguration.
Дополнительные сведения о поэтапных развертываниях см. в разделе Развертывание Amazon ECS-сервисов заменой задач в Руководстве разработчика Amazon Elastic Container Service.
Тип развертывания синего/зелёного (CODE_DEPLOY) использует модель развертывания синего/зелёного, поддерживаемую CodeDeploy, что позволяет проверить новое развертывание сервиса перед отправкой производственного трафика к нему.
Дополнительные сведения о развертываниях синего/зелёного см. в разделе Проверка состояния Amazon ECS-сервиса перед развертыванием в Руководстве разработчика Amazon Elastic Container Service.
Тип развертывания внешнего (EXTERNAL) позволяет использовать любой сторонний контроллер развертывания для полного контроля над процессом развертывания Amazon ECS-сервиса.
Дополнительные сведения об внешних развертываниях см. в разделе Развертывание Amazon ECS-сервисов с помощью стороннего контроллера в Руководстве разработчика Amazon Elastic Container Service.
Упрощённый синтаксис:
type=string
Синтаксис JSON:
{
"type": "ECS"|"CODE_DEPLOY"|"EXTERNAL"
}
--tags (список)
Метаданные, которые вы применяете к сервису для помощи в категоризации и организации. Каждый тег состоит из ключа и необязательного значения, которые вы определяете. При удалении сервиса теги также удаляются.
Применяются следующие основные ограничения к тегам:
- Максимальное количество тегов на ресурс — 50
- Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
- Максимальная длина ключа — 128 символов Unicode в UTF-8
- Максимальная длина значения — 256 символов Unicode в UTF-8
- Если ваша схема тегирования используется в нескольких сервисах и ресурсах, помните, что другие сервисы могут иметь ограничения на допустимые символы. В целом разрешены: буквы, цифры и пробелы, отображаемые в UTF-8, а также следующие символы: + - = . _ : / @.
- Ключи и значения тегов чувствительны к регистру.
- Не используйте
aws:,AWS:или любые сочетания верхнего и нижнего регистра таких префиксов для ключей или значений, так как они зарезервированы для использования Amazon Web Services. Вы не можете редактировать или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при подсчете тегов на ресурс.
(структура)
Метаданные, которые вы применяете к ресурсу для помощи в категоризации и организации. Каждый тег состоит из ключа и необязательного значения. Вы определяете их.
Применяются следующие основные ограничения к тегам:
- Максимальное количество тегов на ресурс — 50
- Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
- Максимальная длина ключа — 128 символов Unicode в UTF-8
- Максимальная длина значения — 256 символов Unicode в UTF-8
- Если ваша схема тегирования используется в нескольких сервисах и ресурсах, помните, что другие сервисы могут иметь ограничения на допустимые символы. В целом разрешены: буквы, цифры и пробелы, отображаемые в UTF-8, а также следующие символы: + - = . _ : / @.
- Ключи и значения тегов чувствительны к регистру.
- Не используйте
aws:,AWS:или любые сочетания верхнего и нижнего регистра таких префиксов для ключей или значений, так как они зарезервированы для использования Amazon Web Services. Вы не можете редактировать или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при подсчете тегов на ресурс.
key -> (строка)
value -> (строка)
Упрощённый синтаксис:
key=string,value=string ...
Синтаксис JSON:
[
{
"key": "string",
"value": "string"
}
...
]
--enable-ecs-managed-tags | --no-enable-ecs-managed-tags (булево)
Указывает, нужно ли включить управляемые Amazon ECS теги для задач в сервисе. Дополнительные сведения см. в разделе Тегирование ваших ресурсов Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.
При использовании управляемых Amazon ECS тегов необходимо установить параметр запроса propagateTags.
--propagate-tags (строка)
Указывает, нужно ли распространять теги из определения задачи на задачу. Если значение не указано, теги не распространяются. Теги могут быть распространены только во время создания задачи. Чтобы добавить теги к задаче после создания задачи, используйте действие API TagResource.
При использовании Cost Explorer это значение должно отличаться от NONE. Дополнительные сведения см. в разделе Отчеты об использовании Amazon ECS в Руководстве разработчика Amazon Elastic Container Service.
Значение по умолчанию — NONE.
Возможные значения:
TASK_DEFINITIONSERVICENONE
--enable-execute-command | --disable-execute-command (булево)
true, это включает функциональность команды execute для всех контейнеров в задачах сервиса.--service-connect-configuration (структура)
Настройка данного сервиса для обнаружения и подключения к сервисам, а также для обнаружения и подключения к другим сервисам в рамках именованного пространства.
Задачи, выполняемые в именованном пространстве, могут использовать короткие имена для подключения к сервисам в этом пространстве. Задачи могут подключаться к сервисам во всех кластерах именованного пространства. Подключение задач осуществляется через управляемый контейнер-прокси, который собирает журналы и метрики для повышения видимости. Поддержка Service Connect предоставляется только для задач, созданных сервисами Amazon ECS. Дополнительную информацию можно найти в разделе Service Connect в Руководстве разработчика Amazon Elastic Container Service.
enabled -> (boolean)
namespace -> (string)
services -> (list)
Список объектов сервиса Service Connect. Это имена и псевдонимы (также известные как конечные точки), используемые другими сервисами Amazon ECS для подключения к данному сервису.
Это поле не требуется для сервиса Amazon ECS «клиента», который является членом именованного пространства только для подключения к другим сервисам в рамках этого пространства. Примером может служить фронтенд-приложение, которое принимает входящие запросы либо от балансировщика нагрузки, подключенного к сервису, либо другими способами.
Объект выбирает порт из определения задачи, назначает имя сервиса Cloud Map и список псевдонимов (конечных точек) и портов для ссылок на данный сервис клиентскими приложениями.
(structure)
Настройка объекта сервиса Service Connect. Дополнительную информацию можно найти в разделе Service Connect в Руководстве разработчика Amazon Elastic Container Service.
portName -> (string)
portName должно совпадать с именем одного из portMappings во всех контейнерах в определении задачи этого сервиса Amazon ECS.discoveryName -> (string)
Это discoveryName — имя нового сервиса Cloud Map, созданного Amazon ECS для этого сервиса Amazon ECS. Оно должно быть уникальным в рамках пространства Cloud Map. Имя может содержать до 64 символов. Оно может включать строчные буквы, цифры, символы подчеркивания (_) и дефисы (-). Имя не может начинаться с дефиса.
Если discoveryName не указано, используется имя сопоставления портов из определения задачи в portName.namespace.
clientAliases -> (list)
Список псевдонимов клиентов для данного сервиса Service Connect. Их используют для назначения имён, которые могут быть использованы клиентскими приложениями. Максимальное количество псевдонимов клиентов в этом списке — 1.
Каждый псевдоним («конечная точка») — это полное имя и номер порта, которые другие задачи Amazon ECS («клиенты») могут использовать для подключения к данному сервису.
Каждое сопоставление имени и порта должно быть уникальным в рамках именованного пространства.
Для каждого ServiceConnectService необходимо указать по крайней мере один clientAlias с одним port.
(structure)
Каждый псевдоним («конечная точка») — это полное имя и номер порта, которые другие задачи («клиенты») могут использовать для подключения к данному сервису.
Каждое сопоставление имени и порта должно быть уникальным в рамках именованного пространства.
Задачи, выполняемые в именованном пространстве, могут использовать короткие имена для подключения к сервисам в этом пространстве. Задачи могут подключаться к сервисам во всех кластерах именованного пространства. Подключение задач осуществляется через управляемый контейнер-прокси, который собирает журналы и метрики для повышения видимости. Поддержка Service Connect предоставляется только для задач, созданных сервисами Amazon ECS. Дополнительную информацию можно найти в разделе Service Connect в Руководстве разработчика Amazon Elastic Container Service.
port -> (integer)
Для избежания изменения приложений в клиентских сервисах Amazon ECS, установите это значение в тот же порт, что использует клиентское приложение по умолчанию. Дополнительную информацию можно найти в разделе Service Connect в Руководстве разработчика Amazon Elastic Container Service.
dnsName -> (string)
Это dnsName, которое вы используете в приложениях задач-клиентов для подключения к данному сервису. Имя должно быть допустимым именем DNS, но не обязательно полным. Имя может содержать до 127 символов. Оно может включать строчные буквы, цифры, символы подчеркивания (_), дефисы (-) и точки (.). Имя не может начинаться с дефиса.
Если этот параметр не указан, используется значение по умолчанию discoveryName.namespace. Если discoveryName не указано, имя сопоставления портов из определения задачи используется в portName.namespace.
Для избежания изменения приложений в клиентских сервисах Amazon ECS, установите это значение в то же имя, что использует клиентское приложение по умолчанию. Например, некоторые распространенные имена — database, db или строчное имя базы данных, такое как mysql или redis. Дополнительную информацию можно найти в разделе Service Connect в Руководстве разработчика Amazon Elastic Container Service.
ingressPortOverride -> (integer)
Номер порта, на котором будет прослушивать прокси-сервер Service Connect.
Используйте значение этого поля для обхода прокси для трафика на номер порта, указанного в именованном portMapping в определении задачи этого приложения, а затем используйте его в группах безопасности VPC для разрешения трафика в прокси для этого сервиса Amazon ECS.
В режиме awsvpc и Fargate значение по умолчанию — номер порта контейнера. Номер порта контейнера указан в portMapping в определении задачи. В режиме моста значение по умолчанию — временный порт прокси-сервера Service Connect.
timeout -> (structure)
Ссылка на объект, представляющий настроенные таймауты для Service Connect.
idleTimeoutSeconds -> (integer)
Время в секундах, в течение которого соединение будет оставаться активным при простоях. Значение 0 может быть установлено для отключения idleTimeout.
Значение по умолчанию для idleTimeout /HTTP /HTTP2 /GRPC — 5 минут.
Значение по умолчанию для idleTimeout /TCP — 1 час.
perRequestTimeoutSeconds -> (integer)
0 может быть установлено для отключения perRequestTimeout. perRequestTimeout может быть установлено только в том случае, если Service Connect appProtocol не TCP. Для TCP appProtocol разрешено только idleTimeout.tls -> (structure)
Ссылка на объект, представляющий конфигурацию Transport Layer Security (TLS).
issuerCertificateAuthority -> (structure)
Сертификат удостоверяющего центра.
awsPcaAuthorityArn -> (string)
kmsKey -> (string)
roleArn -> (string)
logConfiguration -> (structure)
Конфигурация журналов для контейнера. Этот параметр соответствует LogConfig в команде docker container create и параметру --log-driver к docker run.
По умолчанию контейнеры используют тот же драйвер журналов, что и Docker-демон. Однако контейнер может использовать другой драйвер журналов, чем Docker-демон, указав конфигурацию драйвера журналов в определении контейнера.
Учтите следующее при указании конфигурации журналов для контейнеров.
- Amazon ECS в настоящее время поддерживает подмножество драйверов журналов, доступных Docker-демону. Дополнительные драйверы журналов могут быть доступны в будущих версиях агента Amazon ECS контейнера. Для задач на Fargate поддерживаются драйверы журналов
awslogs,splunkиawsfirelens. Для задач, размещенных на экземплярах Amazon EC2, поддерживаются драйверы журналовawslogs,fluentd,gelf,json-file,journald, ``syslog``,splunkиawsfirelens. - Этот параметр требует версии 1.18 Docker Remote API или выше на вашем экземпляре контейнера.
- Для задач, размещенных на экземплярах Amazon EC2, агент Amazon ECS контейнера должен зарегистрировать доступные драйверы журналов в переменной среды
ECS_AVAILABLE_LOGGING_DRIVERS, прежде чем контейнеры на этом экземпляре смогут использовать эти параметры конфигурации журналов. Дополнительную информацию см. в разделе Конфигурация агента контейнеров Amazon ECS в Руководстве разработчика Amazon Elastic Container Service. - Для задач на Fargate, поскольку у вас нет доступа к базовой инфраструктуре, на которой размещаются ваши задачи, любое дополнительное необходимое программное обеспечение должно быть установлено вне задачи. Например, агрегаторы вывода Fluentd или удаленный хост, выполняющий Logstash, для отправки журналов Gelf.
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, включают следующие:
Обязательно: Нет
Укажите, хотите ли вы, чтобы группа журналов создавалась автоматически. Если этот параметр не указан, он по умолчанию равен false.
Примечание
Ваша политика IAM должна включать разрешение logs:CreateLogGroup перед попыткой использования awslogs-create-group.
awslogs-region
Обязательно: Да
Укажите регион Amazon Web Services, в который драйвер журнала awslogs должен отправлять журналы Docker. Вы можете направить все журналы из кластеров в разных регионах в один регион в CloudWatch Logs, чтобы они были видны в одном месте. В противном случае вы можете разделить их по регионам для большей детализации. Убедитесь, что указанная группа журналов существует в регионе, который вы указываете с помощью этого параметра.
Обязательно: Да
Убедитесь, что вы указали группу журналов, в которую драйвер журнала awslogs отправляет свои потоки журналов.
Обязательно: Да, при использовании Fargate. Необязательно при использовании EC2.
Используйте параметр awslogs-stream-prefix для связывания потока журнала с указанным префиксом, именем контейнера и идентификатором задачи Amazon ECS, к которой принадлежит контейнер. Если вы укажете префикс с помощью этого параметра, то поток журнала будет иметь формат prefix-name/container-name/ecs-task-id.
Если вы не укажете префикс с помощью этого параметра, поток журнала будет назван в соответствии с идентификатором контейнера, назначенным демоном Docker на экземпляре контейнера. Поскольку отслеживание журналов до контейнера, который их отправил, только по идентификатору контейнера Docker (который доступен только на экземпляре контейнера) затруднено, рекомендуется указать префикс с помощью этого параметра.
Для служб Amazon ECS вы можете использовать имя службы в качестве префикса. Таким образом, вы сможете отслеживать потоки журналов до службы, к которой принадлежит контейнер, имени контейнера, который их отправил, и идентификатору задачи, к которой принадлежит контейнер.
Вы должны указать префикс потока журнала, чтобы ваши журналы отображались в области «Журналы» при использовании консоли Amazon ECS.
Обязательно: Нет
Этот параметр определяет шаблон начала многострочного текста в формате Python strftime. Сообщение журнала состоит из строки, соответствующей шаблону, и любых следующих строк, которые этому шаблону не соответствуют. Соответствующая строка является разделителем между сообщениями журнала.
Одним из примеров использования этого формата является обработка вывода, такого как стек-трейс, который в противном случае может быть записан в несколько записей. Правильный шаблон позволяет захватить его в одной записи.
Дополнительную информацию см. в awslogs-datetime-format.
Вы не можете настроить одновременно параметры awslogs-datetime-format и awslogs-multiline-pattern.
Примечание
Многострочное ведение журнала выполняет анализ и сопоставление всех сообщений журнала с помощью регулярных выражений. Это может отрицательно сказаться на производительности ведения журнала.
awslogs-multiline-pattern
Обязательно: Нет
Этот параметр определяет многострочный начальный шаблон, использующий регулярное выражение. Сообщение журнала состоит из строки, соответствующей шаблону, и любых последующих строк, не соответствующих шаблону. Соответствующая строка является разделителем между сообщениями журнала.
Дополнительную информацию см. в awslogs-multiline-pattern.
Этот параметр игнорируется, если также настроен awslogs-datetime-format.
Вы не можете настроить одновременно параметры awslogs-datetime-format и awslogs-multiline-pattern.
Примечание
Многострочное ведение журнала выполняет анализ и сопоставление всех сообщений журнала с помощью регулярных выражений. Это может отрицательно сказаться на производительности ведения журнала.Следующие параметры применяются ко всем поддерживаемым драйверам журналов.
Обязательно: Нет
Допустимые значения: non-blocking | blocking
Этот параметр определяет режим доставки сообщений журнала из контейнера в указанный драйвер журнала, использующий logDriver. Выбранный режим доставки влияет на доступность приложения, когда поток журналов из контейнера прерывается.
Если вы используете режим blocking и поток журналов прерывается, вызовы из кода контейнера для записи в потоки stdout и stderr будут блокироваться. В результате будет заблокирован поток ведения журнала приложения. Это может привести к тому, что приложение станет неотзывчивым и приведет к отказу проверки работоспособности контейнера.
Если вы используете режим non-blocking, журналы контейнера вместо этого сохраняются в промежуточном буфере в памяти, настроенном с помощью параметра max-buffer-size. Это предотвращает зависание приложения при невозможности отправки журналов. Рекомендуется использовать этот режим, если вы хотите обеспечить доступность службы и готовы к некоторой потере журналов. Дополнительную информацию см. в Предотвращение потери журналов с помощью неблокирующего режима в драйвере журнала контейнеров ``awslogs`` <http://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`__.
Вы можете установить режим mode по умолчанию для всех контейнеров в конкретном регионе Amazon Web Services, используя параметр учетной записи defaultLogDriverMode. Если вы не укажете параметр mode или не настроили параметр учетной записи, Amazon ECS по умолчанию будет использовать режим blocking. Дополнительную информацию о параметре учетной записи см. в разделе «Режим драйвера журналов по умолчанию» в Руководстве разработчика Amazon Elastic Container Service.
Обязательно: Нет
Значение по умолчанию: 1m
При использовании режима non-blocking параметр журнала max-buffer-size управляет размером буфера, используемого для промежуточного хранения сообщений. Убедитесь, что вы указали достаточный размер буфера, исходя из ваших требований к приложению. При заполнении буфера дальнейшие журналы не могут быть сохранены. Журналы, которые не могут быть сохранены, теряются.
Для маршрутизации журналов с помощью маршрутизатора журналов splunk необходимо указать splunk-token и splunk-url.
При использовании маршрутизатора журналов awsfirelens для маршрутизации журналов в службу Amazon Web Services или в пункт назначения Amazon Web Services Partner Network для хранения и анализа журналов, вы можете установить параметр log-driver-buffer-limit, чтобы ограничить количество событий, буферизуемых в памяти, перед отправкой в контейнер маршрутизатора журналов. Это может помочь решить потенциальную проблему с потерей журналов, так как высокая пропускная способность может привести к исчерпанию памяти буфера внутри Docker.
Другие параметры, которые вы можете указать при использовании awsfirelens для маршрутизации журналов, зависят от пункта назначения. При экспорте журналов в Amazon Data Firehose вы можете указать регион Amazon Web Services с помощью region и имя потока журнала с помощью delivery_stream.
При экспорте журналов в Amazon Kinesis Data Streams вы можете указать регион Amazon Web Services с помощью region и имя потока данных с помощью stream.
При экспорте журналов в Amazon OpenSearch Service вы можете указать такие параметры, как Name, Host (точка входа OpenSearch Service без протокола), Port, Index, Type, Aws_auth, Aws_region, Suppress_Type_Name и tls. Дополнительную информацию см. в разделе «Внутреннее устройство: FireLens для задач Amazon ECS».
При экспорте журналов в Amazon S3 вы можете указать ведро с помощью параметра bucket. Вы также можете указать region, total_file_size, upload_timeout и use_put_object как параметры.
Для этого параметра требуется версия 1.19 или более поздняя Docker Remote API на экземпляре контейнера. Чтобы проверить версию Docker Remote API на экземпляре контейнера, войдите в экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
key -> (строка)
value -> (строка)
secretOptions -> (список)
Секреты, которые необходимо передать конфигурации журнала. Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в Руководстве разработчика Amazon Elastic Container Service.
(структура)
Объект, представляющий секрет, который нужно предоставить контейнеру. Секреты могут быть предоставлены контейнеру следующими способами:
- Для вставки конфиденциальных данных в контейнеры в виде переменных среды используйте параметр определения контейнера
secrets. - Для ссылки на конфиденциальную информацию в конфигурации журнала контейнера используйте параметр определения контейнера
secretOptions.
Дополнительную информацию см. в разделе «Указание конфиденциальных данных» в Руководстве разработчика Amazon Elastic Container Service.
name -> (строка)
valueFrom -> (строка)
Секрет, который необходимо предоставить контейнеру. Допустимые значения — это полный ARN секрета Secrets Manager или полный ARN параметра в SSM Parameter Store.
Сведения о требуемых разрешениях Identity and Access Management см. в разделах «Необходимые разрешения IAM для секретов Amazon ECS (для Secrets Manager)» или «Необходимые разрешения IAM для секретов Amazon ECS (для хранилища параметров Systems Manager)» в Руководстве разработчика Amazon Elastic Container Service.
Примечание
Если параметр хранилища параметров SSM существует в том же регионе, что и запускаемая вами задача, вы можете использовать либо полный ARN, либо имя параметра. Если параметр существует в другом регионе, необходимо указать полный ARN.Синтаксис JSON:
{
"enabled": true|false,
"namespace": "string",
"services": [
{
"portName": "string",
"discoveryName": "string",
"clientAliases": [
{
"port": integer,
"dnsName": "string"
}
...
],
"ingressPortOverride": integer,
"timeout": {
"idleTimeoutSeconds": integer,
"perRequestTimeoutSeconds": integer
},
"tls": {
"issuerCertificateAuthority": {
"awsPcaAuthorityArn": "string"
},
"kmsKey": "string",
"roleArn": "string"
}
}
...
],
"logConfiguration": {
"logDriver": "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|"awsfirelens",
"options": {"string": "string"
...},
"secretOptions": [
{
"name": "string",
"valueFrom": "string"
}
...
]
}
}
--volume-configurations (список)
Настройка тома, указанного в определении задачи как том, настраиваемый во время запуска. В настоящее время поддерживается только тип тома Amazon EBS.
(структура)
Настройка тома, указанного в определении задачи как том, настраиваемый во время запуска. В настоящее время поддерживается только тип тома Amazon EBS.
name -> (строка)
Volume в определении задачи.managedEBSVolume -> (структура)
Настройка тома Amazon EBS, который Amazon ECS создает и управляет от вашего имени. Эти настройки используются для создания каждого тома Amazon EBS, при этом для каждой задачи в службе создается один том. Тома Amazon EBS будут видны в вашей учетной записи в консоли Amazon EC2 после их создания.
encrypted -> (булево)
false , настройка будет переопределена, и том будет зашифрован с помощью ключа KMS, указанного для шифрования Amazon EBS по умолчанию. Этот параметр соответствует параметру Encrypted API CreateVolume в Справочнике по API Amazon EC2 .kmsKeyId -> (строка)
Идентификатор Amazon Resource Name (ARN) ключа службы управления ключами Amazon Web Services (AWS KMS), который следует использовать для шифрования Amazon EBS. При указании ключа с помощью этого параметра он переопределяет шифрование по умолчанию Amazon EBS или любой ключ KMS, который вы указали для шифрования управляемого хранилища на уровне кластера. Этот параметр соответствует параметру KmsKeyId API CreateVolume в Справочнике по API Amazon EC2 . Дополнительную информацию о шифровании томов Amazon EBS, подключенных к задачам, см. в разделе Encrypt data stored in Amazon EBS volumes attached to Amazon ECS tasks .
Предупреждение
AWS аутентифицирует ключ службы управления ключами AWS асинхронно. Поэтому, если вы укажете недействительный идентификатор, псевдоним или ARN, действие может показаться завершенным, но в конечном итоге завершится ошибкой.volumeType -> (строка)
Тип тома. Этот параметр соответствует параметру VolumeType API CreateVolume в Справочнике по API Amazon EC2 . Дополнительную информацию см. в разделе Amazon EBS volume types в Руководстве пользователя Amazon EC2 .
Ниже приведены поддерживаемые типы томов.
- SSD общего назначения:
gp2|gp3 - SSD с предварительно заданным количеством операций ввода-вывода (IOPS):
io1|io2 - Жесткий диск с оптимизированной пропускной способностью:
st1 - Жесткий диск холодного хранения:
sc1 - Магнитный:
standard
Примечание
Тип тома «Магнитный» не поддерживается для Fargate.sizeInGiB -> (целое число)
Размер тома в ГБ. Вы должны указать либо размер тома, либо идентификатор снимка. Если вы укажете идентификатор снимка, размер снимка используется в качестве размера тома по умолчанию. Вы можете дополнительно указать размер тома, равный или больший размера снимка. Этот параметр соответствует параметру Size API CreateVolume в Справочнике по API Amazon EC2 .
Ниже приведены поддерживаемые значения размера тома для каждого типа тома.
-
gp2иgp3: 1-16 384 -
io1иio2: 4-16 384 -
st1иsc1: 125-16 384 -
standard: 1-1024
snapshotId -> (строка)
snapshotId , либо sizeInGiB в вашей конфигурации тома. Этот параметр соответствует параметру SnapshotId API CreateVolume в Справочнике по API Amazon EC2 .volumeInitializationRate -> (целое число)
snapshotId . Дополнительную информацию см. в разделе Initialize Amazon EBS volumes в Руководстве пользователя Amazon EBS .iops -> (целое число)
Количество операций ввода-вывода в секунду (IOPS). Для томов gp3 , io1 и io2 это количество IOPS, выделенных для тома. Для томов gp2 это базовая производительность тома и скорость, с которой том накапливает кредиты I/O для увеличения производительности.
Ниже приведены поддерживаемые значения для каждого типа тома.
-
gp3: 3000 - 16 000 IOPS -
io1: 100 - 64 000 IOPS -
io2: 100 - 256 000 IOPS
Этот параметр требуется для типов томов io1 и io2. По умолчанию для томов gp3 это 3,000 IOPS. Этот параметр не поддерживается для типов томов st1 , sc1 или standard.
Этот параметр соответствует параметру Iops API CreateVolume в Справочнике по API Amazon EC2 .
throughput -> (целое число)
Пропускная способность для выделения тома в МБ/с, максимальное значение 1000 МБ/с. Этот параметр соответствует параметру Throughput API CreateVolume в Справочнике по API Amazon EC2 .
Предупреждение
Этот параметр поддерживается только для типа томаgp3.tagSpecifications -> (список)
Теги, которые необходимо применить к тому. Amazon ECS по умолчанию применяет управляемые службой теги. Этот параметр соответствует параметру TagSpecifications.N API CreateVolume в Справочнике по API Amazon EC2 .
(структура)
Настройки тегов тома Amazon EBS.
resourceType -> (строка)
tags -> (список)
Теги, примененные к этому тому Amazon EBS. AmazonECSCreated и AmazonECSManaged — это зарезервированные теги, которые нельзя использовать.
(структура)
Метаданные, которые вы применяете к ресурсу, чтобы помочь вам категоризировать и организовать их. Каждый тег состоит из ключа и необязательного значения. Вы определяете их.
Ниже приведены основные ограничения, относящиеся к тегам:
- Максимальное количество тегов на ресурс — 50
- Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
- Максимальная длина ключа — 128 символов Юникода в UTF-8
- Максимальная длина значения — 256 символов Юникода в UTF-8
- Если ваша схема тегирования используется в нескольких службах и ресурсах, помните, что другие службы могут накладывать ограничения на допустимые символы. В общем, допустимые символы — это буквы, цифры и пробелы, представленные в UTF-8, а также следующие символы: + - = . _ : / @.
- Ключи и значения тегов регистрозависимы.
- Не используйте
aws:,AWS:или любые комбинации верхнего и нижнего регистра таких, как префикс для ключей или значений, так как они зарезервированы для использования AWS. Вы не можете изменять или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при подсчете количества тегов на ресурс.
key -> (строка)
value -> (строка)
propagateTags -> (строка)
SERVICE , указанный в ServiceVolumeConfiguration. Если значение не указано, теги не распространяются.roleArn -> (строка)
AmazonECSInfrastructureRolePolicyForVolumes с этой ролью. Дополнительную информацию см. в разделе Amazon ECS инфраструктурная роль IAM в Руководстве разработчика Amazon ECS .filesystemType -> (строка)
Тип файловой системы для тома. Для томов, созданных из снимка, необходимо указать тот же тип файловой системы, что и у тома во время создания снимка. Если тип файловой системы не совпадает, задачи не будут запускаться.
Доступные типы файловых систем Linux — это ext3 , ext4 и xfs. Если значение не указано, используется тип файловой системы xfs по умолчанию.
Доступные типы файловых систем Windows — это NTFS.
Синтаксис JSON:
[
{
"name": "string",
"managedEBSVolume": {
"encrypted": true|false,
"kmsKeyId": "string",
"volumeType": "string",
"sizeInGiB": integer,
"snapshotId": "string",
"volumeInitializationRate": integer,
"iops": integer,
"throughput": integer,
"tagSpecifications": [
{
"resourceType": "volume",
"tags": [
{
"key": "string",
"value": "string"
}
...
],
"propagateTags": "TASK_DEFINITION"|"SERVICE"|"NONE"
}
...
],
"roleArn": "string",
"filesystemType": "ext3"|"ext4"|"xfs"|"ntfs"
}
}
...
]
--vpc-lattice-configurations (список)
Конфигурация VPC Lattice для создаваемой службы.
(структура)
Конфигурация VPC Lattice для вашей службы, которая содержит информацию о целевых группах, к которым будут регистрироваться задачи Amazon ECS.
roleArn -> (строка)
targetGroupArn -> (строка)
portName -> (строка)
portMapping, которое вы определили в своем определении задачи.Краткая форма синтаксиса:
roleArn=string,targetGroupArn=string,portName=string ...
Синтаксис JSON:
[
{
"roleArn": "string",
"targetGroupArn": "string",
"portName": "string"
}
...
]
--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если на командной строке указаны другие аргументы, эти значения переопределят значения из JSON-строки. Невозможно передавать произвольные двоичные данные с помощью JSON-строки, поскольку строка будет взята дословно. Это значение не может быть указано совместно с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если задано без значения или значение input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если задано yaml-input, выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если задано значение output, он проверит входные данные команды и вернёт пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Глобальные параметры
--debug (логическое значение)
Включить отладку логирования.
--endpoint-url (строка)
Переопределить URL по умолчанию команды заданным URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI проверяет SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.
--no-paginate (логическое значение)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования вывода команды.
- json
- text
- table
- yaml
- yaml-stream
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определённый профиль из файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки из конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- on
- off
- auto
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--ca-bundle (строка)
Файл с сертификатами CA для проверки SSL-сертификатов. Переопределяет настройки из конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию - 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию - 60 секунд.
--cli-binary-format (строка)
Стиль форматирования для двоичных блоков. Формат по умолчанию - base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как закодированная строка base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, отображающего двоичный блок, fileb:// всегда будет обрабатываться как двоичный и будет использовать содержимое файла напрямую, независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть правильно отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить кли пэйджер для вывода.
--cli-auto-prompt (логическое значение)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запросы параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Подробнее см. руководство по началу работы в руководстве пользователя AWS CLI.
За исключением случаев, когда указано иное, во всех примерах используются правила цитирования unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей терминальной программы. См. Использование кавычек со строками в руководстве пользователя AWS CLI.
Пример 1: Создание сервиса с задачей Fargate
Следующий create-service пример показывает, как создать сервис с использованием задачи Fargate.
aws ecs create-service \
--cluster MyCluster \
--service-name MyService \
--task-definition sample-fargate:1 \
--desired-count 2 \
--launch-type FARGATE \
--platform-version LATEST \
--network-configuration 'awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}' \
--tags key=key1,value=value1 key=key2,value=value2 key=key3,value=value3
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService",
"serviceName": "MyService",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 0,
"pendingCount": 0,
"launchType": "FARGATE",
"platformVersion": "LATEST",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1",
"deploymentConfiguration": {
"maximumPercent": 200,
"minimumHealthyPercent": 100
},
"deployments": [
{
"id": "ecs-svc/1234567890123456789",
"status": "PRIMARY",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sample-fargate:1",
"desiredCount": 2,
"pendingCount": 0,
"runningCount": 0,
"createdAt": 1557119253.821,
"updatedAt": 1557119253.821,
"launchType": "FARGATE",
"platformVersion": "1.3.0",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
}
}
],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [],
"createdAt": 1557119253.821,
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"schedulingStrategy": "REPLICA",
"tags": [
{
"key": "key1",
"value": "value1"
},
{
"key": "key2",
"value": "value2"
},
{
"key": "key3",
"value": "value3"
}
],
"enableECSManagedTags": false,
"propagateTags": "NONE"
}
}
Дополнительную информацию см. в разделе Создание сервиса в руководстве разработчика Amazon ECS.
Пример 2: Создание сервиса с использованием типа запуска EC2
Следующий create-service пример показывает, как создать сервис под названием ecs-simple-service с задачей, использующей тип запуска EC2. Сервис использует определение задачи sleep360 и поддерживает 1 экземпляр задачи.
aws ecs create-service \
--cluster MyCluster \
--service-name ecs-simple-service \
--task-definition sleep360:2 \
--desired-count 1
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/ecs-simple-service",
"serviceName": "ecs-simple-service",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 1,
"runningCount": 0,
"pendingCount": 0,
"launchType": "EC2",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2",
"deploymentConfiguration": {
"maximumPercent": 200,
"minimumHealthyPercent": 100
},
"deployments": [
{
"id": "ecs-svc/1234567890123456789",
"status": "PRIMARY",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/sleep360:2",
"desiredCount": 1,
"pendingCount": 0,
"runningCount": 0,
"createdAt": 1557206498.798,
"updatedAt": 1557206498.798,
"launchType": "EC2"
}
],
"events": [],
"createdAt": 1557206498.798,
"placementConstraints": [],
"placementStrategy": [],
"schedulingStrategy": "REPLICA",
"enableECSManagedTags": false,
"propagateTags": "NONE"
}
}
Дополнительную информацию см. в разделе Создание сервиса в руководстве разработчика Amazon ECS.
Пример 3: Создание сервиса, использующего внешний контроллер развертывания
Следующий create-service пример создает сервис, использующий внешний контроллер развертывания.
aws ecs create-service \
--cluster MyCluster \
--service-name MyService \
--deployment-controller type=EXTERNAL \
--desired-count 1
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/MyCluster/MyService",
"serviceName": "MyService",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 1,
"runningCount": 0,
"pendingCount": 0,
"launchType": "EC2",
"deploymentConfiguration": {
"maximumPercent": 200,
"minimumHealthyPercent": 100
},
"taskSets": [],
"deployments": [],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [],
"createdAt": 1557128207.101,
"placementConstraints": [],
"placementStrategy": [],
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "EXTERNAL"
},
"enableECSManagedTags": false,
"propagateTags": "NONE"
}
}
Дополнительную информацию см. в разделе Создание сервиса в руководстве разработчика Amazon ECS.
Пример 4: Создание нового сервиса за балансировщиком нагрузки
Следующий create-service пример демонстрирует, как создать сервис, который находится за балансировщиком нагрузки. Вам необходимо настроить балансировщик нагрузки в том же регионе, что и ваши экземпляры контейнеров. В этом примере используется параметр --cli-input-json и файл входных данных JSON под названием ecs-simple-service-elb.json со следующим содержимым.
aws ecs create-service \
--cluster MyCluster \
--service-name ecs-simple-service-elb \
--cli-input-json file://ecs-simple-service-elb.json
Содержимое ecs-simple-service-elb.json:
{
"serviceName": "ecs-simple-service-elb",
"taskDefinition": "ecs-demo",
"loadBalancers": [
{
"loadBalancerName": "EC2Contai-EcsElast-123456789012",
"containerName": "simple-demo",
"containerPort": 80
}
],
"desiredCount": 10,
"role": "ecsServiceRole"
}
Вывод:
{
"service": {
"status": "ACTIVE",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1",
"pendingCount": 0,
"loadBalancers": [
{
"containerName": "ecs-demo",
"containerPort": 80,
"loadBalancerName": "EC2Contai-EcsElast-123456789012"
}
],
"roleArn": "arn:aws:iam::123456789012:role/ecsServiceRole",
"desiredCount": 10,
"serviceName": "ecs-simple-service-elb",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/MyCluster",
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/ecs-simple-service-elb",
"deployments": [
{
"status": "PRIMARY",
"pendingCount": 0,
"createdAt": 1428100239.123,
"desiredCount": 10,
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/ecs-demo:1",
"updatedAt": 1428100239.123,
"id": "ecs-svc/1234567890123456789",
"runningCount": 0
}
],
"events": [],
"runningCount": 0
}
}
Дополнительную информацию см. в разделе Использование балансировки нагрузки для распределения трафика сервиса Amazon ECS в руководстве разработчика Amazon ECS.
Пример 5: Настройка томов Amazon EBS при создании сервиса
Следующий create-service пример демонстрирует, как настроить тома Amazon EBS для каждой задачи, управляемой сервисом. Вам необходимо настроить роль инфраструктуры Amazon ECS с прикреплённой управляющей политикой AmazonECSInfrastructureRolePolicyForVolumes. Вы должны указать определение задачи с тем же именем тома, что и в запросе create-service. В этом примере используется параметр --cli-input-json и файл входных данных JSON под названием ecs-simple-service-ebs.json со следующим содержимым.
aws ecs create-service \
--cli-input-json file://ecs-simple-service-ebs.json
Содержимое ecs-simple-service-ebs.json:
{
"cluster": "mycluster",
"taskDefinition": "mytaskdef",
"serviceName": "ecs-simple-service-ebs",
"desiredCount": 2,
"launchType": "FARGATE",
"networkConfiguration":{
"awsvpcConfiguration":{
"assignPublicIp": "ENABLED",
"securityGroups": ["sg-12344321"],
"subnets":["subnet-12344321"]
}
},
"volumeConfigurations": [
{
"name": "myEbsVolume",
"managedEBSVolume": {
"roleArn":"arn:aws:iam::123456789012:role/ecsInfrastructureRole",
"volumeType": "gp3",
"sizeInGiB": 100,
"iops": 3000,
"throughput": 125,
"filesystemType": "ext4"
}
}
]
}
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/ecs-simple-service-ebs",
"serviceName": "ecs-simple-service-ebs",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 0,
"pendingCount": 0,
"launchType": "EC2",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3",
"deploymentConfiguration": {
"deploymentCircuitBreaker": {
"enable": false,
"rollback": false
},
"maximumPercent": 200,
"minimumHealthyPercent": 100
},
"deployments": [
{
"id": "ecs-svc/7851020056849183687",
"status": "PRIMARY",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3",
"desiredCount": 0,
"pendingCount": 0,
"runningCount": 0,
"failedTasks": 0,
"createdAt": "2025-01-21T11:32:38.034000-06:00",
"updatedAt": "2025-01-21T11:32:38.034000-06:00",
"launchType": "EC2",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "DISABLED"
}
},
"rolloutState": "IN_PROGRESS",
"rolloutStateReason": "ECS deployment ecs-svc/7851020056849183687 in progress.",
"volumeConfigurations": [
{
"name": "myEBSVolume",
"managedEBSVolume": {
"volumeType": "gp3",
"sizeInGiB": 100,
"iops": 3000,
"throughput": 125,
"roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
"filesystemType": "ext4"
}
}
]
}
],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [],
"createdAt": "2025-01-21T11:32:38.034000-06:00",
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "DISABLED"
}
},
"healthCheckGracePeriodSeconds": 0,
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "ECS"
},
"createdBy": "arn:aws:iam::123456789012:user/AIDACKCEVSQ6C2EXAMPLE",
"enableECSManagedTags": false,
"propagateTags": "NONE",
"enableExecuteCommand": false,
"availabilityZoneRebalancing": "DISABLED"
}
}
Дополнительную информацию см. в разделе Использование томов Amazon EBS с Amazon ECS в руководстве разработчика Amazon ECS.
Вывод
service -> (структура)
Полное описание вашего сервиса после вызова create.
Сервис вернёт либо параметр capacityProviderStrategy, либо параметр launchType, но не оба, в зависимости от того, какой из них был указан при создании.
Если сервис использует контроллер развертывания ECS, параметры deploymentController и taskSets не будут возвращены.
Если сервис использует контроллер развертывания CODE_DEPLOY, параметры deploymentController, taskSets и deployments будут возвращены, однако параметр deployments будет пустым списком.
serviceArn -> (строка)
serviceName -> (строка)
clusterArn -> (строка)
loadBalancers -> (список)
Список объектов балансировщиков нагрузки Elastic Load Balancing. Он содержит имя балансировщика, имя контейнера и порт контейнера для доступа из балансировщика. Имя контейнера указано так, как оно отображается в определении контейнера.
(структура)
Настройка балансировщика нагрузки для использования с сервисом или набором задач.
При добавлении, обновлении или удалении конфигурации балансировщика нагрузки Amazon ECS запускает новую развертывание с обновлённой конфигурацией Elastic Load Balancing. Это приводит к регистрации и снятию задач с балансировщиков нагрузки.
Рекомендуется проверить это в тестовой среде перед обновлением конфигурации Elastic Load Balancing.
Для сервисов, использующих несколько целевых групп, требуется роль связанная с сервисом. Дополнительную информацию см. в разделе Использование ролей, связанных с сервисом, в руководстве Amazon Elastic Container Service Developer Guide.
targetGroupArn -> (строка)
Полный Amazon Resource Name (ARN) целевой группы или групп Elastic Load Balancing, связанных с сервисом или набором задач.
ARN целевой группы указывается только при использовании Application Load Balancer или Network Load Balancer.
Для сервисов, использующих контроллер развертывания ECS, можно указать одну или несколько целевых групп. Дополнительную информацию см. в разделе Регистрация нескольких целевых групп с сервисом в руководстве Amazon Elastic Container Service Developer Guide.
Для сервисов, использующих контроллер развертывания CODE_DEPLOY, необходимо определить две целевые группы для балансировщика нагрузки. Дополнительную информацию см. в разделе Развертывание «синий/зеленый» с помощью CodeDeploy в руководстве Amazon Elastic Container Service Developer Guide.
Предупреждение
Если определение задачи вашего сервиса использует сетевой режимawsvpc, необходимо выбрать ip в качестве типа целевой группы, а не instance. Сделайте это при создании целевых групп, поскольку задачи, использующие сетевой режим awsvpc, связаны с интерфейсом эластичной сети, а не с экземпляром Amazon EC2. Этот сетевой режим необходим для типа запуска Fargate.loadBalancerName -> (строка)
Имя балансировщика нагрузки, который нужно связать с Amazon ECS сервисом или набором задач.
Если вы используете Application Load Balancer или Network Load Balancer, параметр имени балансировщика следует опустить.
containerName -> (строка)
Имя контейнера (как оно указано в определении контейнера) для связи с балансировщиком нагрузки.
Необходимо указать имя контейнера при настройке целевой группы для балансировщика нагрузки Amazon ECS.
containerPort -> (целое число)
containerPort в определении задачи, используемом задачами сервиса. Для задач, использующих тип запуска EC2, экземпляр контейнера, на котором они запускаются, должен разрешать входящий трафик на hostPort сопоставления портов.serviceRegistries -> (список)
Подробности для реестров обнаружения сервисов, которые нужно назначить этому сервису. Дополнительную информацию см. в разделе Обнаружение сервисов.
(структура)
Подробности реестра сервиса.
Каждый сервис может быть связан с одним реестром сервисов. Несколько реестров сервисов для каждого сервиса не поддерживаются.
При добавлении, обновлении или удалении конфигурации реестров сервисов Amazon ECS запускает новую развертку. Новые задачи регистрируются и снимаются с обновлённой конфигурации реестра сервисов.
registryArn -> (строка)
port -> (целое число)
awsvpc и записи SRV.containerName -> (строка)
bridge или host, вы должны указать сочетание containerName и containerPort из определения задачи. Если определение задачи, которое задаёт ваша задача сервиса, использует сетевой режим awsvpc и используется запись DNS типа SRV, вы должны указать либо сочетание containerName и containerPort, либо значение port. Однако вы не можете указать оба.containerPort -> (целое число)
bridge или host, вы должны указать сочетание containerName и containerPort из определения задачи. Если определение задачи, которое задаёт ваша задача сервиса, использует сетевой режим awsvpc и используется запись DNS типа SRV, вы должны указать либо сочетание containerName и containerPort, либо значение port. Однако вы не можете указать оба.status -> (строка)
ACTIVE, DRAINING или INACTIVE.desiredCount -> (целое число)
runningCount -> (целое число)
RUNNING.pendingCount -> (целое число)
PENDING.launchType -> (строка)
capacityProviderStrategy -> (список)
Стратегия поставщика ресурсов, используемая сервисом. При использовании API DescribeServices это поле опускается, если сервис был создан с помощью типа запуска.
(структура)
Подробности стратегии поставщика ресурсов. Стратегия поставщика ресурсов может быть установлена при использовании API RunTask или CreateCluster или в качестве стратегии поставщика ресурсов по умолчанию для кластера с помощью API CreateCluster.
Для использования поставщика ресурсов, можно использовать только поставщики ресурсов, которые уже связаны с кластером и имеют статус ACTIVE или UPDATING. API PutClusterCapacityProviders используется для связи поставщика ресурсов с кластером.
Если используется поставщик ресурсов, использующий группу Auto Scaling, этот поставщик ресурсов должен быть уже создан. Новые поставщики ресурсов групп Auto Scaling могут быть созданы с помощью операции API CreateClusterCapacityProvider.
Для использования поставщика ресурсов Fargate, необходимо указать либо поставщиков ресурсов FARGATE или FARGATE_SPOT. Поставщики ресурсов Fargate доступны всем учётным записям и требуют только связи с кластером для использования в стратегии поставщика ресурсов.
С помощью FARGATE_SPOT можно запускать задачи, устойчивые к прерываниям, с коэффициентом скидки по сравнению с ценой FARGATE. FARGATE_SPOT запускает задачи на свободных вычислительных ресурсах. Когда Amazon Web Services нуждается в ресурсах обратно, ваши задачи прерываются с двухминутным предупреждением. FARGATE_SPOT поддерживает задачи Linux с архитектурой X86_64 на платформе версии 1.3.0 или выше. FARGATE_SPOT поддерживает задачи Linux с архитектурой ARM64 на платформе версии 1.4.0 или выше.
Стратегия поставщика ресурсов может содержать не более 20 поставщиков ресурсов.
capacityProvider -> (строка)
weight -> (целое число)
Значение weight определяет процент от общего количества запусков задач, которые должны использовать указанный поставщик ресурсов. Значение weight учитывается после удовлетворения значения base, если оно определено.
Если значение weight не указано, используется значение по умолчанию 0. Если в стратегии поставщика ресурсов указано несколько поставщиков ресурсов, по крайней мере один из поставщиков ресурсов должен иметь значение веса больше нуля, а любые поставщики ресурсов с весом 0 не могут быть использованы для размещения задач. Если вы указали в стратегии несколько поставщиков ресурсов, у которых все имеют вес 0, любые действия RunTask или CreateService, использующие стратегию поставщика ресурсов, завершатся неудачей.
Пример использования весов: определение стратегии, содержащей два поставщика ресурсов, у которых оба имеют вес 1, а затем, после выполнения base, задачи будут распределены равномерно между двумя поставщиками ресурсов. Используя ту же логику, если вы зададите вес 1 для capacityProviderA и вес 4 для capacityProviderB, то на каждую задачу, запущенную с использованием capacityProviderA, четыре задачи будут использовать capacityProviderB.
base -> (целое число)
0.platformVersion -> (строка)
LATEST. Дополнительную информацию см. в разделе «Версии платформы Fargate» в руководстве разработчика Amazon Elastic Container Service.platformFamily -> (строка)
Операционная система, на которой выполняются ваши задачи в службе. Семейство платформ указывается только для задач, использующих тип запуска Fargate.
Все задачи, выполняемые в рамках этой службы, должны использовать то же значение platformFamily, что и служба (например, LINUX).
taskDefinition -> (строка)
deploymentConfiguration -> (структура)
Необязательные параметры развертывания, которые контролируют количество выполняемых задач во время развертывания и порядок остановки и запуска задач.
deploymentCircuitBreaker -> (структура)
Примечание
Разрыв цепи развертывания можно использовать только для служб, использующих тип развертывания с постепенным обновлением (ECS).Разрыв цепи развертывания определяет, будет ли развертывание службы завершаться ошибкой, если служба не может достичь стабильного состояния. Если вы используете разрыв цепи развертывания, развертывание службы перейдет в состояние ошибки и прекратит запуск новых задач. Если вы используете возможность отката, при ошибке развертывания службы она откатывается до последнего успешно завершенного развертывания. Дополнительную информацию см. в разделе «Постепенное обновление» в руководстве разработчика Amazon Elastic Container Service.
enable -> (булево)
rollback -> (булево)
maximumPercent -> (целое число)
Если служба использует тип развертывания с постепенным обновлением (ECS), параметр maximumPercent представляет собой верхний предел количества задач вашей службы, которые разрешено находиться в состоянии RUNNING или PENDING во время развертывания, как процент от desiredCount (округляется вниз до ближайшего целого числа). Этот параметр позволяет определить размер пакета развертывания. Например, если ваша служба использует планировщик служб REPLICA и имеет desiredCount из четырех задач и значение maximumPercent равное 200%, планировщик может запустить четыре новые задачи перед остановкой четырех более старых задач (при условии, что необходимые ресурсы кластера для этого доступны). Значение по умолчанию maximumPercent для службы, использующей планировщик служб REPLICA, равно 200%.
Планировщик Amazon ECS использует этот параметр для замены неисправных задач, сначала запустив задачи-замены, а затем остановив неисправные задачи, если ресурсы кластера для запуска задач-замен доступны. Дополнительную информацию о том, как планировщик заменяет неисправные задачи, см. в разделе «Службы Amazon ECS».
Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL, а задачи в службе используют тип запуска EC2, значение maximum percent устанавливается по умолчанию. Значение maximum percent используется для определения верхнего предела количества задач в службе, которые остаются в состоянии RUNNING, в то время как экземпляры контейнеров находятся в состоянии DRAINING.
Примечание
Вы не можете указать пользовательское значениеmaximumPercent для службы, использующей типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL и имеющей задачи, использующие тип запуска EC2.Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL, а задачи в службе используют тип запуска Fargate, значение maximum percent не используется. Значение все равно возвращается при описании вашей службы.
minimumHealthyPercent -> (целое число)
Если служба использует тип развертывания с постепенным обновлением (ECS), minimumHealthyPercent представляет собой нижний предел количества задач вашей службы, которые должны оставаться в состоянии RUNNING во время развертывания, как процент от desiredCount (округляется вверх до ближайшего целого числа). Этот параметр позволяет развертывать без использования дополнительных ресурсов кластера. Например, если ваша служба имеет desiredCount из четырех задач и minimumHealthyPercent 50%, планировщик служб может остановить две существующие задачи, чтобы освободить ресурсы кластера, прежде чем запустить две новые задачи.
Если какие-либо задачи неисправны, и maximumPercent не позволяет планировщику Amazon ECS запускать задачи-замены, планировщик останавливает неисправные задачи по одной — используя minimumHealthyPercent как ограничение — чтобы освободить ресурсы для запуска задач-замен. Дополнительную информацию о том, как планировщик заменяет неисправные задачи, см. в разделе «Службы Amazon ECS».
Для служб, не использующих балансировщик нагрузки, следует учитывать следующее:
- Служба считается исправной, если все необходимые контейнеры в задачах в службе успешно проходят проверки работоспособности.
- Если у задачи нет необходимых контейнеров с определенной проверкой работоспособности, планировщик служб будет ждать 40 секунд после того, как задача достигнет состояния
RUNNING, прежде чем задача будет учтена в общем количестве минимального процента работоспособности. - Если у задачи есть один или несколько необходимых контейнеров с определенной проверкой работоспособности, планировщик служб будет ждать, пока задача достигнет исправного состояния, прежде чем учитывать ее в общем количестве минимального процента работоспособности. Задача считается исправной, когда все необходимые контейнеры внутри задачи успешно прошли проверки работоспособности. Время ожидания планировщика служб определяется настройками проверок работоспособности контейнера.
Для служб, использующих балансировщик нагрузки, следует учитывать следующее:
- Если у задачи нет необходимых контейнеров с определенной проверкой работоспособности, планировщик служб будет ждать, пока проверка работоспособности целевой группы балансировщика нагрузки не вернет состояние работоспособности, прежде чем учитывать задачу в общем количестве минимального процента работоспособности.
- Если у задачи есть необходимый контейнер с определенной проверкой работоспособности, планировщик служб будет ждать, пока задача достигнет исправного состояния и проверка работоспособности целевой группы балансировщика нагрузки не вернет состояние работоспособности, прежде чем учитывать задачу в общем количестве минимального процента работоспособности.
Значение по умолчанию для службы-реплики для minimumHealthyPercent равно 100%. Значение по умолчанию minimumHealthyPercent для службы, использующей планировщик служб DAEMON, составляет 0% для CLI, Amazon Web Services SDK и API и 50% для Amazon Web Services Management Console.
Минимальное количество исправных задач во время развертывания равно desiredCount, умноженному на minimumHealthyPercent /100, округленному до ближайшего целого значения.
Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL и выполняет задачи, использующие тип запуска EC2, значение minimum healthy percent устанавливается по умолчанию. Значение minimum healthy percent используется для определения нижнего предела количества задач в службе, которые остаются в состоянии RUNNING, в то время как экземпляры контейнеров находятся в состоянии DRAINING.
Примечание
Вы не можете указать пользовательское значениеminimumHealthyPercent для службы, использующей типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL и имеющей задачи, использующие тип запуска EC2.Если служба использует типы развертывания «синий/зеленый» (CODE_DEPLOY) или EXTERNAL и выполняет задачи, использующие тип запуска Fargate, значение минимального процента работоспособности не используется, хотя оно возвращается при описании вашей службы.
alarms -> (структура)
Информация о CloudWatch сигнализациях.
alarmNames -> (список)
Одно или несколько имен сигнализаций CloudWatch. Используйте «,» для разделения сигнализаций.
(строка)
rollback -> (булево)
enable -> (булево)
taskSets -> (список)
Информация о наборе задач Amazon ECS в развертывании CodeDeploy или EXTERNAL. Набор задач Amazon ECS включает такие данные, как желаемое количество задач, количество работающих задач и то, предоставляет ли набор задач трафик для производства.
(структура)
Информация о наборе задач Amazon ECS в развертывании CodeDeploy или EXTERNAL. Набор задач Amazon ECS включает такие данные, как желаемое количество задач, количество работающих задач и то, предоставляет ли набор задач трафик для производства.
id -> (строка)
taskSetArn -> (строка)
serviceArn -> (строка)
clusterArn -> (строка)
startedBy -> (строка)
startedBy имеет значение CODE_DEPLOY. Если набор задач создан внешним развертыванием, поле startedBy не используется.externalId -> (строка)
Внешний идентификатор, связанный с набором задач.
Если набор задач создан развертыванием CodeDeploy, параметр externalId содержит идентификатор развертывания CodeDeploy.
Если набор задач создан для внешнего развертывания и связан с реестром обнаружения сервисов, параметр externalId содержит атрибут ECS_TASK_SET_EXTERNAL_ID Cloud Map.
status -> (строка)
Состояние набора задач. Ниже описано каждое состояние.
Набор задач предоставляет трафик для производства.
Набор задач не предоставляет трафик для производства.
Задачи в наборе задач останавливаются, а соответствующие целевые объекты удаляются из группы целей.
taskDefinition -> (строка)
computedDesiredCount -> (целое число)
desiredCount на процент набора задач scale. Результат всегда округляется вверх. Например, если вычисленное желаемое количество задач равно 1,2, то оно округляется до 2 задач.pendingCount -> (целое число)
PENDING во время развертывания. Задача в состоянии PENDING готовится перейти в состояние RUNNING. Набор задач переходит в состояние PENDING, когда он запускается впервые или когда он перезапускается после состояния STOPPED.runningCount -> (целое число)
RUNNING во время развертывания. Задача в состоянии RUNNING работает и готова к использованию.createdAt -> (временная метка)
updatedAt -> (временная метка)
launchType -> (строка)
capacityProviderStrategy -> (список)
Стратегия поставщика ресурсов, связанная с набором задач.
(структура)
Подробности стратегии поставщика ресурсов. Стратегию поставщика ресурсов можно задать при использовании API RunTask или CreateCluster или как стратегию поставщика ресурсов по умолчанию для кластера с помощью API CreateCluster.
Можно использовать только поставщиков ресурсов, которые уже связаны с кластером и имеют состояние ACTIVE или UPDATING. Для привязки поставщика ресурсов к кластеру используется API PutClusterCapacityProviders.
Если указан поставщик ресурсов, использующий группу Auto Scaling, поставщик ресурсов должен быть уже создан. Новые поставщики ресурсов группы Auto Scaling могут быть созданы с помощью операции API CreateClusterCapacityProvider.
Для использования поставщика ресурсов Fargate, укажите либо поставщиков ресурсов FARGATE или FARGATE_SPOT. Поставщики ресурсов Fargate доступны для всех учетных записей и должны быть только связаны с кластером для использования в стратегии поставщика ресурсов.
С помощью FARGATE_SPOT вы можете запускать задачи, устойчивые к прерываниям, со скидкой по сравнению с ценой FARGATE. FARGATE_SPOT запускает задачи на свободных вычислительных мощностях. Когда Amazon Web Services потребует обратно эти мощности, ваши задачи прерываются с двухминутным предупреждением. FARGATE_SPOT поддерживает задачи Linux с архитектурой X86_64 на версии платформы 1.3.0 или более поздней. FARGATE_SPOT поддерживает задачи Linux с архитектурой ARM64 на версии платформы 1.4.0 или более поздней.
Стратегия поставщика ресурсов может содержать максимум 20 поставщиков ресурсов.
capacityProvider -> (строка)
weight -> (целое число)
Значение weight определяет процентное отношение общего количества запущенных задач, которые должны использовать указанного поставщика ресурсов. Значение weight учитывается после значения base, если оно определено.
Если значение weight не указано, используется значение по умолчанию 0. Если в стратегии поставщика ресурсов указано несколько поставщиков ресурсов, по крайней мере один из поставщиков ресурсов должен иметь значение weight больше нуля, а любые поставщики ресурсов с весом 0 не могут использоваться для размещения задач. Если вы указываете в стратегии несколько поставщиков ресурсов, у которых все имеют вес 0, любые действия RunTask или CreateService, использующие стратегию поставщика ресурсов, завершатся ошибкой.
Пример сценария использования весов - определение стратегии, которая содержит двух поставщиков ресурсов, и оба имеют вес 1, затем, когда base удовлетворено, задачи будут разделены поровну между двумя поставщиками ресурсов. Используя ту же логику, если вы указываете вес 1 для capacityProviderA и вес 4 для capacityProviderB, то для каждой задачи, выполняемой с помощью capacityProviderA, четыре задачи будут использовать capacityProviderB.
base -> (целое число)
0.platformVersion -> (строка)
platformFamily -> (строка)
Операционная система, на которой выполняются ваши задачи в наборе. Семейство платформы указывается только для задач, использующих тип запуска Fargate.
Все задачи в наборе должны иметь одинаковое значение.
networkConfiguration -> (структура)
Настройка сети для набора задач.
awsvpcConfiguration -> (структура)
Подсети VPC и группы безопасности, связанные с задачей.
Примечание
Все указанные подсети и группы безопасности должны быть из одной VPC.subnets -> (список)
Идентификаторы подсетей, связанные с задачей или сервисом. Можно указать до 16 подсетей.
Примечание
Все указанные подсети должны быть из одной VPC.(строка)
securityGroups -> (список)
Идентификаторы групп безопасности, связанные с задачей или сервисом. Если вы не указываете группу безопасности, используется группа безопасности по умолчанию для VPC. Можно указать до 5 групп безопасности.
Примечание
Все указанные группы безопасности должны быть из одной VPC.(строка)
assignPublicIp -> (строка)
Получает ли эластический интерфейс сети задачи публичный IP-адрес.
Рассмотрите следующие моменты при настройке этого значения:
- При использовании
create-serviceилиupdate-serviceзначение по умолчанию -DISABLED. - Когда сервис
deploymentControllerнаходится в состоянииECS, значение должно бытьDISABLED.
loadBalancers -> (список)
Подробности о балансировщике нагрузки, используемом с набором задач.
(структура)
Конфигурация балансировщика нагрузки для использования с сервисом или набором задач.
При добавлении, обновлении или удалении конфигурации балансировщика нагрузки Amazon ECS запускает новую развертывание с обновлённой конфигурацией Elastic Load Balancing. Это приводит к регистрации и дерегистрации задач в балансировщиках нагрузки.
Рекомендуется проверить это в тестовой среде перед обновлением конфигурации Elastic Load Balancing.
Для служб, использующих несколько групп целевых серверов, требуется роль, связанная со службой. Дополнительные сведения см. в разделе Использование ролей, связанных со службой, в руководстве разработчика Amazon Elastic Container Service.
targetGroupArn -> (строка)
Полное имя ресурса Amazon (ARN) группы целевых серверов Elastic Load Balancing или групп, связанных с сервисом или набором задач.
ARN группы целевых серверов указывается только при использовании Application Load Balancer или Network Load Balancer.
Для служб, использующих ECS контроллер развертывания, можно указать одну или несколько групп целевых серверов. Дополнительные сведения см. в разделе Регистрация нескольких групп целевых серверов со службой в руководстве разработчика Amazon Elastic Container Service.
Для служб, использующих CODE_DEPLOY контроллер развертывания, необходимо определить две группы целевых серверов для балансировщика нагрузки. Дополнительные сведения см. в разделе Развертывание «синий/зелёный» с CodeDeploy в руководстве разработчика Amazon Elastic Container Service.
Предупреждение
Если определение задачи вашего сервиса используетawsvpc режим сети, необходимо выбрать ip в качестве типа целевого сервера, а не instance . Сделайте это при создании групп целевых серверов, так как задачи, использующие awsvpc режим сети, связаны с интерфейсом эластичной сети, а не с экземпляром Amazon EC2. Этот режим сети требуется для типа запуска Fargate.loadBalancerName -> (строка)
Имя балансировщика нагрузки, который необходимо связать с сервисом Amazon ECS или набором задач.
Если используется Application Load Balancer или Network Load Balancer, параметр имени балансировщика нагрузки следует опустить.
containerName -> (строка)
Имя контейнера (как оно отображается в определении контейнера) для связи с балансировщиком нагрузки.
Имя контейнера необходимо указать при настройке группы целевых серверов для балансировщика нагрузки Amazon ECS.
containerPort -> (целое число)
containerPort в определении задачи, используемой задачами в службе. Для задач, использующих тип запуска EC2, экземпляр контейнера, на котором они запускаются, должен разрешать входящий трафик на hostPort отображения порта.serviceRegistries -> (список)
Подробности о реестрах обнаружения служб для назначения этому набору задач. Дополнительные сведения см. в разделе Обнаружение служб.
(структура)
Подробности реестра служб.
Каждая служба может быть связана с одним реестром служб. Несколько реестров служб для каждой службы не поддерживаются.
При добавлении, обновлении или удалении конфигурации реестров служб Amazon ECS запускает новую развертывание. Новые задачи регистрируются и дерегистрируются в обновлённой конфигурации реестра служб.
registryArn -> (строка)
port -> (целое число)
awsvpc режим сети, так и записи SRV.containerName -> (строка)
bridge или host режим сети, необходимо указать containerName и containerPort комбинацию из определения задачи. Если определение задачи, которое использует ваша задача службы, использует awsvpc режим сети и используется запись SRV DNS-записей, необходимо указать комбинацию containerName и containerPort или значение port. Однако оба значения нельзя указать одновременно.containerPort -> (целое число)
bridge или host режим сети, необходимо указать containerName и containerPort комбинацию из определения задачи. Если определение задачи, которое использует ваша задача службы, использует awsvpc режим сети и используется запись SRV DNS-записей, необходимо указать комбинацию containerName и containerPort или значение port. Однако оба значения нельзя указать одновременно.scale -> (структура)
Плавающая десятичная процентная часть желаемого числа задач, которые нужно разместить и поддерживать в наборе задач.
value -> (двойное значение)
desiredCount сервиса, для масштабирования набора задач. Допустимые значения — числа от 0 до 100.unit -> (строка)
stabilityStatus -> (строка)
Статус устойчивости. Это указывает, достиг ли набор задач стабильного состояния. Если выполняются следующие условия, набор задач находится в STEADY_STATE состоянии:
- Количество задач
runningCountравноcomputedDesiredCount. pendingCountнаходится в состоянии0.- Нет задач, выполняемых на экземплярах контейнеров в состоянии
DRAINING. - Все задачи сообщают о здоровом состоянии от балансировщиков нагрузки, обнаружения служб и проверок состояния контейнеров.
Если какое-либо из этих условий не выполняется, статус устойчивости возвращает STABILIZING.
stabilityStatusAt -> (метка времени)
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 -> (строка)
value -> (строка)
fargateEphemeralStorage -> (структура)
Параметры временного хранилища Fargate для набора задач.
kmsKeyId -> (строка)
deployments -> (список)
Текущее состояние развертывания для службы.
(структура)
Подробности развертывания службы Amazon ECS. Используется только при использовании службой типа контроллера развертывания ECS.
id -> (строка)
status -> (строка)
Состояние развертывания. Следующие значения описывают каждое состояние.
Самое последнее развертывание службы.
Развертывание службы, в котором все еще выполняются задачи, но они находятся в процессе замены на новое развертывание PRIMARY.
Развертывание, которое было полностью заменено.
taskDefinition -> (строка)
desiredCount -> (целое число)
pendingCount -> (целое число)
PENDING.runningCount -> (целое число)
RUNNING.failedTasks -> (целое число)
Количество последовательно завершившихся неудачно задач в развертывании. Задача считается неудачной, если планировщик службы не может запустить задачу, задача не переходит в состояние RUNNING, или если она не проходит ни одну из определенных проверок работоспособности и останавливается.
Примечание
После того, как развертывание службы имеет одну или несколько успешно работающих задач, счетчик неудачных задач сбрасывается до нуля и больше не оценивается.createdAt -> (временная метка)
updatedAt -> (временная метка)
capacityProviderStrategy -> (список)
Стратегия поставщика емкости, используемая развертыванием.
(структура)
Подробности стратегии поставщика емкости. Стратегия поставщика емкости может быть задана при использовании API RunTask или CreateCluster или как стратегия поставщика емкости по умолчанию для кластера с помощью API CreateCluster.
Можно использовать только поставщиков емкости, которые уже ассоциированы с кластером и имеют статус ACTIVE или UPDATING. API PutClusterCapacityProviders используется для ассоциации поставщика емкости с кластером.
Если указывается поставщик емкости, использующий группу Auto Scaling, то поставщик емкости должен быть уже создан. Новые поставщики емкости группы Auto Scaling могут быть созданы с помощью операции API CreateClusterCapacityProvider.
Для использования поставщика емкости Fargate укажите либо поставщиков емкости FARGATE или FARGATE_SPOT. Поставщики емкости Fargate доступны для всех учетных записей и должны быть связаны с кластером, чтобы быть использованными в стратегии поставщика емкости.
С помощью FARGATE_SPOT вы можете запускать задачи, устойчивые к прерываниям, со скоростью, которая имеет скидку по сравнению с ценой FARGATE. FARGATE_SPOT запускает задачи на свободных вычислительных ресурсах. Когда Amazon Web Services нуждается в освобождении этих ресурсов, ваши задачи прерываются с двухминутным предупреждением. FARGATE_SPOT поддерживает задачи Linux с архитектурой X86_64 на версии платформы 1.3.0 или более поздней. FARGATE_SPOT поддерживает задачи Linux с архитектурой ARM64 на версии платформы 1.4.0 или более поздней.
Стратегия поставщика емкости может содержать максимум 20 поставщиков емкости.
capacityProvider -> (строка)
weight -> (целое число)
Значение weight определяет процентное отношение от общего числа запушенных задач, которые должны использовать указанного поставщика емкости. Значение weight учитывается после значения base, если оно определено.
Если значение weight не указано, используется значение по умолчанию 0. При указании нескольких поставщиков емкости в стратегии поставщика емкости хотя бы один из поставщиков емкости должен иметь значение weight, большее нуля, и любые поставщики емкости с весом 0 не могут быть использованы для размещения задач. Если вы укажете в стратегии нескольких поставщиков емкости, у которых все имеют вес 0, любые действия RunTask или CreateService, использующие стратегию поставщика емкости, завершатся ошибкой.
Пример сценария использования весов — определение стратегии, содержащей двух поставщиков емкости, оба с весом 1, затем, когда base удовлетворено, задачи будут разделены равномерно между двумя поставщиками емкости. Используя ту же логику, если вы укажете вес 1 для capacityProviderA и вес 4 для capacityProviderB, тогда на каждую задачу, запущенную с использованием capacityProviderA, четыре задачи будут использовать capacityProviderB.
base -> (целое число)
0.launchType -> (строка)
platformVersion -> (строка)
LATEST. Для получения дополнительной информации см. Версии платформ Fargate в руководстве разработчика Amazon Elastic Container Service.platformFamily -> (строка)
Операционная система, на которой выполняются ваши задачи в службе или задачи. Семейство платформ указывается только для задач, использующих тип запуска Fargate.
Все задачи, выполняющиеся в рамках этой службы, должны использовать то же самое значение platformFamily, что и служба, например, LINUX..
networkConfiguration -> (структура)
Настройка подсети VPC и группы безопасности для задач, которые получают свой собственный эластичный сетевой интерфейс, используя режим сети awsvpc.
awsvpcConfiguration -> (структура)
Подсети VPC и группы безопасности, связанные с задачей.
Примечание
Все указанные подсети и группы безопасности должны быть из одной VPC.subnets -> (список)
Идентификаторы подсетей, связанные с задачей или службой. Можно указать до 16 подсетей.
Примечание
Все указанные подсети должны быть из одной VPC.(строка)
securityGroups -> (список)
Идентификаторы групп безопасности, связанные с задачей или службой. Если вы не укажете группу безопасности, используется группа безопасности по умолчанию для VPC. Можно указать до 5 групп безопасности.
Примечание
Все указанные группы безопасности должны быть из одной VPC.(строка)
assignPublicIp -> (строка)
Получает ли эластичный сетевой интерфейс задачи публичный IP-адрес.
Рассмотрите следующее, когда вы устанавливаете это значение:
- Когда вы используете
create-serviceилиupdate-service, значение по умолчанию —DISABLED. - Когда служба
deploymentControllerнаходится в состоянииECS, значение должно бытьDISABLED.
rolloutState -> (строка)
Примечание
Состояние развертывания службы возвращается только для служб, использующих тип развертывания с поэтапным обновлением (ECS), которые не находятся за классическим балансировщиком.Состояние развертывания. Когда начинается развертывание службы, оно находится в состоянии IN_PROGRESS. Когда служба достигает стабильного состояния, развертывание переходит в состояние COMPLETED. Если служба не достигает стабильного состояния, и выключатель цепи включен, развертывание переходит в состояние FAILED. Развертывание в состоянии FAILED не запускает новых задач. Для получения дополнительной информации см. DeploymentCircuitBreaker.
rolloutStateReason -> (строка)
serviceConnectConfiguration -> (структура)
Подробности конфигурации Service Connect, используемой в данном развертывании. Сравнивайте конфигурацию между несколькими развертываниями при устранении неполадок с новыми развертываниями.
Конфигурация для данного сервиса для обнаружения и подключения к сервисам, а также для обнаружения и подключения к другим сервисам в рамках пространства имён.
Задачи, выполняемые в пространстве имён, могут использовать короткие имена для подключения к сервисам в пространстве имён. Задачи могут подключаться к сервисам во всех кластерах в пространстве имён. Задачи подключаются через управляемый контейнер-прокси, который собирает журналы и метрики для повышения видимости. Поддержка Service Connect предоставляется только для задач, созданных сервисами Amazon ECS. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
enabled -> (boolean)
namespace -> (string)
services -> (list)
Список объектов сервисов Service Connect. Это имена и псевдонимы (также известные как конечные точки), которые используются другими сервисами Amazon ECS для подключения к данному сервису.
Это поле не требуется для сервиса Amazon ECS «клиента», который является членом пространства имён только для подключения к другим сервисам в рамках этого пространства имён. Примером этого является фронтенд-приложение, принимающее входящие запросы либо от балансировщика нагрузки, присоединённого к сервису, либо иными способами.
Объект выбирает порт из определения задачи, назначает имя сервису Cloud Map и список псевдонимов (конечных точек) и портов для ссылок на этот сервис клиентскими приложениями.
(structure)
Конфигурация объекта сервиса Service Connect. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
portName -> (string)
portName должно соответствовать имени одного из portMappings из всех контейнеров в определении задачи этого сервиса Amazon ECS.discoveryName -> (string)
Это discoveryName — имя нового сервиса Cloud Map, созданного Amazon ECS для данного сервиса Amazon ECS. Оно должно быть уникальным в пространстве имён Cloud Map. Имя может содержать до 64 символов. Имя может содержать строчные буквы, цифры, символы подчёркивания (_) и дефисы (-). Имя не может начинаться с дефиса.
Если discoveryName не указано, используется имя сопоставления портов из определения задачи в portName.namespace.
clientAliases -> (list)
Список псевдонимов клиентов для данного сервиса Service Connect. Их используют для назначения имён, которые могут использоваться клиентскими приложениями. Максимальное количество псевдонимов клиентов в этом списке — 1.
Каждый псевдоним («конечная точка») — это полное имя и номер порта, которые другие задачи Amazon ECS («клиенты») могут использовать для подключения к данному сервису.
Каждое имя и сопоставление портов должны быть уникальными в пространстве имён.
Для каждого ServiceConnectService вы должны указать по меньшей мере один clientAlias с одним port.
(structure)
Каждый псевдоним («конечная точка») — это полное имя и номер порта, которые другие задачи («клиенты») могут использовать для подключения к данному сервису.
Каждое имя и сопоставление портов должны быть уникальными в пространстве имён.
Задачи, выполняемые в пространстве имён, могут использовать короткие имена для подключения к сервисам в пространстве имён. Задачи могут подключаться к сервисам во всех кластерах в пространстве имён. Задачи подключаются через управляемый контейнер-прокси, который собирает журналы и метрики для повышения видимости. Поддержка Service Connect предоставляется только для задач, созданных сервисами Amazon ECS. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
port -> (integer)
Номер порта прослушивания для прокси Service Connect. Этот порт доступен внутри всех задач в том же пространстве имён.
Чтобы избежать изменения приложений в клиентских сервисах Amazon ECS, установите этот параметр в тот же порт, что и использует клиентское приложение по умолчанию. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
dnsName -> (string)
Это dnsName — имя, используемое в приложениях клиентских задач для подключения к этому сервису. Имя должно быть допустимым именем DNS, но не обязательно полным. Имя может содержать до 127 символов. Имя может содержать строчные буквы, цифры, символы подчёркивания (_), дефисы (-) и точки (.). Имя не может начинаться с дефиса.
Если этот параметр не указан, используется значение по умолчанию discoveryName.namespace. Если portName.namespace не указано, используется имя сопоставления портов из определения задачи в portName.namespace.
Чтобы избежать изменения приложений в клиентских сервисах Amazon ECS, установите это значение в то же имя, которое используется клиентским приложением по умолчанию. Например, некоторые распространённые имена — database, db или строчное имя базы данных, такое как mysql или redis. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
ingressPortOverride -> (integer)
Номер порта для прокси Service Connect для прослушивания.
Используйте значение этого поля, чтобы обойти прокси для трафика на указанном номере порта в имени portMapping в определении задачи этого приложения, а затем используйте его в группах безопасности VPC, чтобы разрешить трафик в прокси для данного сервиса Amazon ECS.
В режиме awsvpc и Fargate значение по умолчанию — номер порта контейнера. Номер порта контейнера указан в portMapping в определении задачи. В режиме bridge значение по умолчанию — временный порт прокси Service Connect.
timeout -> (structure)
Ссылка на объект, представляющий настроенные таймауты для Service Connect.
idleTimeoutSeconds -> (integer)
Время в секундах, в течение которого соединение остаётся активным в состоянии ожидания. Значение 0 может использоваться для отключения idleTimeout.
Значение по умолчанию для HTTP/HTTP2/GRPC — 5 минут.
Значение по умолчанию для TCP — 1 час.
perRequestTimeoutSeconds -> (integer)
0 может использоваться для отключения perRequestTimeout. perRequestTimeout может быть установлено только в том случае, если Service Connect appProtocol не TCP. Для TCP appProtocol разрешено только idleTimeout.tls -> (structure)
Ссылка на объект, представляющий конфигурацию Transport Layer Security (TLS).
issuerCertificateAuthority -> (structure)
Сертификат авторизации подписи.
awsPcaAuthorityArn -> (string)
kmsKey -> (string)
roleArn -> (string)
logConfiguration -> (structure)
Конфигурация логов для контейнера. Этот параметр соответствует LogConfig в команде создания контейнера Docker и параметру --log-driver в команде docker run.
По умолчанию контейнеры используют тот же драйвер регистрации журналов, что и демон Docker. Однако контейнер может использовать другой драйвер регистрации журналов, чем демон Docker, указав конфигурацию драйвера логов в определении контейнера.
Учитывайте следующее при указании конфигурации логов для контейнеров.
- В настоящее время Amazon ECS поддерживает подмножество драйверов регистрации журналов, доступных для демона Docker. Дополнительные драйверы логов могут быть доступны в будущих выпусках агента контейнеров Amazon ECS. Для задач на Fargate поддерживаются драйверы логов
awslogs,splunkиawsfirelens. Для задач, размещённых на экземплярах Amazon EC2, поддерживаются драйверы логовawslogs,fluentd,gelf,json-file,journald, ``syslog`` ,splunkиawsfirelens. - Для этого параметра требуется версия 1.18 API удалённого доступа Docker или более поздняя версия на вашем экземпляре контейнера.
- Для задач, размещённых на экземплярах Amazon EC2, агент контейнеров Amazon ECS должен зарегистрировать доступные драйверы логов с переменной окружения
ECS_AVAILABLE_LOGGING_DRIVERS, прежде чем контейнеры на этом экземпляре смогут использовать эти параметры конфигурации журналов. Дополнительную информацию см. в разделе Конфигурация агента контейнеров Amazon ECS в руководстве разработчика Amazon Elastic Container Service. - Для задач на Fargate, поскольку у вас нет доступа к базовой инфраструктуре, на которой размещаются ваши задачи, любое дополнительное необходимое программное обеспечение должно быть установлено за пределами задачи. Например, агрегаторы вывода Fluentd или удалённый хост, выполняющий Logstash, для отправки логов Gelf.
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, включают:
Требуется: Нет
Указывает, хотите ли вы, чтобы группа логов создавалась автоматически. Если этот параметр не указан, он по умолчанию равен false.
Примечание
Ваша политика IAM должна включать разрешение logs:CreateLogGroup перед попыткой использовать awslogs-create-group.
awslogs-region
Требуется: Да
Указывает регион Amazon Web Services, в который драйвер регистрации awslogs должен отправлять ваши логи Docker. Вы можете направить все ваши логи из кластеров в разных регионах в один регион CloudWatch Logs, чтобы они все были видны в одном месте. В противном случае вы можете разделить их по регионам для большей детализации. Убедитесь, что указанная группа логов существует в регионе, который вы указываете с этим параметром.
Требуется: Да
Убедитесь, что вы указали группу логов, в которую драйвер регистрации awslogs отправляет свои потоки логов.
Требуется: Да, при использовании Fargate. Необязательно при использовании EC2.
Используйте параметр awslogs-stream-prefix, чтобы связать поток логов с указанным префиксом, именем контейнера и идентификатором задачи Amazon ECS, к которой принадлежит контейнер. Если вы укажете префикс с этим параметром, то поток логов будет иметь формат prefix-name/container-name/ecs-task-id.
Если вы не укажете префикс с этим параметром, то поток логов будет назван в соответствии с идентификатором контейнера, назначенным демоном Docker на экземпляре контейнера. Поскольку отслеживание логов до контейнера, который их отправил, только по идентификатору контейнера Docker (который доступен только на экземпляре контейнера) затруднено, рекомендуется указывать префикс с этим параметром.
Для служб Amazon ECS вы можете использовать имя службы в качестве префикса. Это позволит проследить потоки логов до службы, к которой принадлежит контейнер, имени контейнера, который их отправил, и идентификатору задачи, к которой принадлежит контейнер.
Вы должны указать префикс потока логов для отображения логов в панели «Логи» при использовании консоли Amazon ECS.
Требуется: Нет
Этот параметр определяет шаблон начала многострочного лога в формате Python strftime. Сообщение лога состоит из строки, соответствующей шаблону, и всех последующих строк, которые ему не соответствуют. Соответствующая строка является разделителем между сообщениями логов.
Один пример использования этого формата - для разбора вывода, такого как дамп стека, который в противном случае может регистрироваться в нескольких записях. Правильный шаблон позволяет захватить его в одной записи.
Для получения дополнительной информации см. awslogs-datetime-format.
Вы не можете настроить оба параметра awslogs-datetime-format и awslogs-multiline-pattern.
Примечание
Многострочная регистрация выполняет разбор и сопоставление всех сообщений логов с помощью регулярных выражений. Это может негативно повлиять на производительность регистрации.
awslogs-multiline-pattern
Требуется: Нет
Этот параметр определяет шаблон начала многострочного лога, использующий регулярное выражение. Сообщение лога состоит из строки, соответствующей шаблону, и всех последующих строк, которые ему не соответствуют. Соответствующая строка является разделителем между сообщениями логов.
Для получения дополнительной информации см. awslogs-multiline-pattern.
Этот параметр игнорируется, если также настроен awslogs-datetime-format.
Вы не можете настроить оба параметра awslogs-datetime-format и awslogs-multiline-pattern.
Примечание
Многострочная регистрация выполняет разбор и сопоставление всех сообщений логов с помощью регулярных выражений. Это может негативно повлиять на производительность регистрации.Следующие параметры применимы ко всем поддерживаемым драйверам регистрации.
Требуется: Нет
Допустимые значения: non-blocking | blocking
Этот параметр определяет режим доставки сообщений логов из контейнера в указанный драйвер регистрации с помощью logDriver. Выбранный режим доставки влияет на доступность приложения при прерывании потока логов из контейнера.
Если вы используете режим blocking, и поток логов прерывается, вызовы из кода контейнера для записи в потоки stdout и stderr будут заблокированы. В результате заблокируется поток регистрации приложения. Это может привести к тому, что приложение станет неотзывчивым и к сбоям проверки работоспособности контейнера.
Если вы используете режим non-blocking, логи контейнера вместо этого хранятся в промежуточном буфере в оперативной памяти, настроенном с помощью параметра max-buffer-size. Это предотвращает неотзывчивость приложения, когда логи не могут быть отправлены. Мы рекомендуем использовать этот режим, если вы хотите обеспечить доступность службы и готовы к некоторой потере логов. Для получения дополнительной информации см. Предотвращение потери логов с помощью неблокирующего режима в драйвере логов контейнера ``awslogs`` <http://aws.amazon.com/blogs/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`__.
Вы можете установить значение по умолчанию для mode для всех контейнеров в определенном регионе Amazon Web Services, используя параметр учетной записи defaultLogDriverMode. Если вы не укажете параметр mode или не настроите параметр учетной записи, Amazon ECS по умолчанию будет использовать режим blocking. Дополнительные сведения об параметре учетной записи см. в разделе «Режим драйвера регистрации по умолчанию» в руководстве разработчика Amazon Elastic Container Service.
Требуется: Нет
Значение по умолчанию: 1m
Когда используется режим non-blocking, параметр лога max-buffer-size контролирует размер буфера, используемого для промежуточного хранения сообщений. Убедитесь, что вы указали достаточный размер буфера, исходя из ваших потребностей приложения. Когда буфер заполняется, дальнейшие логи не могут быть сохранены. Логи, которые не могут быть сохранены, теряются.
Для маршрутизации логов с помощью маршрутизатора логов splunk необходимо указать splunk-token и splunk-url.
При использовании маршрутизатора логов awsfirelens для маршрутизации логов в целевой ресурс Amazon Web Services или Amazon Web Services Partner Network для хранения и анализа логов, вы можете установить параметр log-driver-buffer-limit, чтобы ограничить количество событий, которые буферизуются в памяти, прежде чем будут отправлены в контейнер маршрутизатора логов. Это может помочь решить потенциальную проблему с потерей логов, потому что высокая пропускная способность может привести к исчерпанию памяти для буфера внутри Docker.
Другие параметры, которые можно указать при использовании awsfirelens для маршрутизации логов, зависят от целевого адреса. При экспорте логов в Amazon Data Firehose вы можете указать регион Amazon Web Services с помощью region и имя потока логов с помощью delivery_stream.
При экспорте логов в Amazon Kinesis Data Streams вы можете указать регион Amazon Web Services с помощью region и имя потока данных с помощью stream.
При экспорте логов в Amazon OpenSearch Service вы можете указать такие параметры, как Name, Host (конечная точка OpenSearch Service без протокола), Port, Index, Type, Aws_auth, Aws_region, Suppress_Type_Name и tls. Для получения более подробной информации см. Раздел "Под капотом: FireLens для задач Amazon ECS".
При экспорте логов в Amazon S3 вы можете указать ведро с помощью параметра bucket. Вы также можете указать параметры region, total_file_size, upload_timeout и use_put_object.
Для этого параметра требуется версия Docker Remote API 1.19 или более поздняя на вашем экземпляре контейнера. Чтобы проверить версию Docker Remote API на вашем экземпляре контейнера, войдите в свой экземпляр контейнера и выполните следующую команду: sudo docker version --format '{{.Server.APIVersion}}'
key -> (строка)
value -> (строка)
secretOptions -> (список)
Секреты для передачи в конфигурацию регистрации. Для получения дополнительной информации см. раздел «Указание конфиденциальных данных» в руководстве разработчика Amazon Elastic Container Service.
(структура)
Объект, представляющий секрет, который необходимо предоставить вашему контейнеру. Секреты могут быть предоставлены контейнеру следующим образом:
- Чтобы ввести конфиденциальные данные в контейнеры в качестве переменных среды, используйте параметр определения контейнера
secrets. - Чтобы сослаться на конфиденциальную информацию в конфигурации регистрации контейнера, используйте параметр определения контейнера
secretOptions.
Для получения дополнительной информации см. раздел «Указание конфиденциальных данных» в руководстве разработчика Amazon Elastic Container Service.
name -> (строка)
valueFrom -> (строка)
Секрет, который нужно предоставить контейнеру. Допустимые значения — это полный ARN секрета Secrets Manager или полный ARN параметра в SSM 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.serviceConnectResources -> (список)
Список ресурсов Service Connect, связанных с этим развертыванием. Каждый элемент списка сопоставляет имя обнаружения с именем службы Cloud Map.
(структура)
Ресурс Service Connect. Каждая конфигурация сопоставляет имя обнаружения с именем службы Cloud Map. Данные хранятся в Cloud Map как часть конфигурации Service Connect для каждого имени обнаружения этой службы Amazon ECS.
Задача может разрешить dnsName для каждого из clientAliases службы. Однако задача не может разрешить имена обнаружения. Если вы хотите подключиться к службе, обратитесь к ServiceConnectConfiguration этой службы для списка clientAliases, которые вы можете использовать.
discoveryName -> (строка)
Имя обнаружения этого ресурса Service Connect.
discoveryName — это имя новой службы Cloud Map, создаваемой Amazon ECS для этой службы Amazon ECS. Это имя должно быть уникальным в пространстве имен Cloud Map. Имя может содержать до 64 символов. Имя может включать строчные буквы, цифры, символы подчеркивания (_) и дефисы (-). Имя не может начинаться с дефиса.
Если discoveryName не указано, имя сопоставления портов из определения задачи используется в portName.namespace.
discoveryArn -> (строка)
volumeConfigurations -> (список)
Подробная информация о томе, который был configuredAtLaunch. Вы можете настроить различные параметры, такие как размер, пропускная способность, тип тома и шифрование в ServiceManagedEBSVolumeConfiguration. name тома должны соответствовать name из определения задачи.
(структура)
Конфигурация тома, указанного в определении задачи как том, который настраивается при запуске. В настоящее время единственный поддерживаемый тип тома — том Amazon EBS.
name -> (строка)
Volume в определении задачи.managedEBSVolume -> (структура)
Конфигурация тома Amazon EBS, который Amazon ECS создает и управляет за вас. Эти параметры используются для создания каждого тома Amazon EBS, при этом один том создается для каждой задачи в службе. Тома Amazon EBS будут видны в вашей учетной записи в консоли Amazon EC2 после их создания.
encrypted -> (булево)
false, настройка будет переопределена, и том будет зашифрован с использованием ключа KMS, указанного по умолчанию для шифрования Amazon EBS. Этот параметр сопоставляется 1:1 с параметром Encrypted API CreateVolume в Справочнике по API Amazon EC2.kmsKeyId -> (строка)
Идентификатор Amazon Resource Name (ARN) ключа управления ключами Amazon Web Services, используемого для шифрования Amazon EBS. Когда ключ указывается с помощью этого параметра, он переопределяет шифрование по умолчанию Amazon EBS или любой ключ KMS, который вы указали для шифрования управляемого хранения на уровне кластера. Этот параметр сопоставляется 1:1 с параметром KmsKeyId API CreateVolume в Справочнике по API Amazon EC2. Дополнительную информацию о шифровании томов Amazon EBS, подключенных к задачам, см. в разделе Защита данных, хранящихся в томах Amazon EBS, подключенных к задачам Amazon ECS.
Предупреждение
Amazon Web Services аутентифицирует ключ управления ключами Amazon Web Services асинхронно. Поэтому, если вы укажете неверный идентификатор, псевдоним или ARN, действие может показаться завершенным, но в конечном итоге завершится ошибкой.volumeType -> (строка)
Тип тома. Этот параметр сопоставляется 1:1 с параметром VolumeType API CreateVolume в Справочнике по API Amazon EC2. Дополнительную информацию см. в разделе Типы томов Amazon EBS в Руководстве пользователя Amazon EC2.
Поддерживаемые типы томов:
- SSD общего назначения:
gp2|gp3 - SSD с предварительно заданными IOPS:
io1|io2 - HDD с оптимизированной пропускной способностью:
st1 - HDD для холодного хранения:
sc1 - Магнитный:
standard
Примечание
Тип тома «Магнитный» не поддерживается на Fargate.sizeInGiB -> (целое число)
Размер тома в GiB. Вы должны указать либо размер тома, либо идентификатор моментального снимка. Если вы укажете идентификатор моментального снимка, размер моментального снимка будет использоваться по умолчанию для размера тома. Вы можете дополнительно указать размер тома, равный или больший размеру моментального снимка. Этот параметр сопоставляется 1:1 с параметром Size API CreateVolume в Справочнике по API Amazon EC2.
Поддерживаемые значения размеров томов для каждого типа тома:
-
gp2иgp3: 1-16 384 -
io1иio2: 4-16 384 -
st1иsc1: 125-16 384 -
standard: 1-1024
snapshotId -> (строка)
snapshotId, либо sizeInGiB в вашей конфигурации тома. Этот параметр сопоставляется 1:1 с параметром SnapshotId API CreateVolume в Справочнике по API Amazon EC2.volumeInitializationRate -> (целое число)
snapshotId. Дополнительную информацию см. в разделе Инициализация томов Amazon EBS в Руководстве пользователя Amazon EBS.iops -> (целое число)
Количество операций ввода-вывода в секунду (IOPS). Для томов gp3, io1 и io2 это число IOPS, которые выделены для тома. Для томов gp2 это базовая производительность тома и скорость накопления кредитов ввода-вывода для увеличения производительности.
Поддерживаемые значения для каждого типа тома:
-
gp3: 3 000 — 16 000 IOPS -
io1: 100 — 64 000 IOPS -
io2: 100 — 256 000 IOPS
Этот параметр требуется для томов типов io1 и io2. По умолчанию для томов gp3 является 3,000 IOPS. Этот параметр не поддерживается для томов st1, sc1 или standard.
Этот параметр сопоставляется 1:1 с параметром Iops API CreateVolume в Справочнике по API Amazon EC2.
throughput -> (целое число)
Пропускная способность, которая должна быть выделена для тома в МиБ/с, с максимальным значением 1000 МиБ/с. Этот параметр сопоставляется 1:1 с параметром Throughput API CreateVolume в Справочнике по API Amazon EC2.
Предупреждение
Этот параметр поддерживается только для типа томаgp3.tagSpecifications -> (список)
Теги, которые необходимо применить к тому. Amazon ECS по умолчанию применяет управляемые службой теги. Этот параметр сопоставляется 1:1 с параметром TagSpecifications.N API CreateVolume в Справочнике по API Amazon EC2.
(структура)
Параметры тегов тома Amazon EBS.
resourceType -> (строка)
tags -> (список)
Теги, примененные к этому тому Amazon EBS. AmazonECSCreated и AmazonECSManaged — это зарезервированные теги, которые нельзя использовать.
(структура)
Метаданные, которые вы применяете к ресурсу, чтобы помочь в его категоризации и организации. Каждый тег состоит из ключа и необязательного значения. Вы их определяете.
Применяются следующие основные ограничения к тегам:
- Максимальное количество тегов на ресурс — 50
- Для каждого ресурса каждый ключ тега должен быть уникальным, и каждый ключ тега может иметь только одно значение.
- Максимальная длина ключа — 128 символов Юникода в UTF-8
- Максимальная длина значения — 256 символов Юникода в UTF-8
- Если ваша схема тегов используется в нескольких службах и ресурсах, помните, что другие службы могут иметь ограничения на разрешенные символы. Обычно разрешенные символы: буквы, цифры и пробелы, представимые в UTF-8, а также следующие символы: + - = . _ : / @.
- Ключи и значения тегов чувствительны к регистру.
- Не используйте
aws:,AWS:или любые комбинации таких префиксов (в верхнем или нижнем регистре) для ключей или значений, так как они зарезервированы для использования Amazon Web Services. Вы не можете редактировать или удалять ключи или значения тегов с этим префиксом. Теги с этим префиксом не учитываются при подсчете тегов на ресурс.
key -> (строка)
value -> (строка)
propagateTags -> (строка)
SERVICE, указанный в ServiceVolumeConfiguration. Если значение не указано, теги не распространяются.roleArn -> (строка)
AmazonECSInfrastructureRolePolicyForVolumes с этой ролью. Дополнительную информацию см. в разделе Роль IAM инфраструктуры Amazon ECS в Руководстве разработчика Amazon ECS.filesystemType -> (строка)
Тип файловой системы для тома. Для томов, созданных из моментального снимка, вы должны указать тот же тип файловой системы, что и у тома при создании моментального снимка. Если тип файловой системы не совпадает, задачи не будут запускаться.
Доступные типы файловых систем Linux — ext3, ext4 и xfs. Если значение не указано, используется тип файловой системы xfs по умолчанию.
Доступные типы файловых систем Windows — NTFS.
fargateEphemeralStorage -> (структура)
Настройки временного хранилища Fargate для развертывания.
kmsKeyId -> (строка)
vpcLatticeConfigurations -> (список)
Конфигурация VPC Lattice для развертывания службы.
(структура)
Конфигурация VPC Lattice для вашей службы, содержащая информацию о целевой группе(ах), к которым будут регистрироваться задачи Amazon ECS.
roleArn -> (строка)
targetGroupArn -> (строка)
portName -> (строка)
portMapping, которое вы определили в определении вашей задачи.roleArn -> (строка)
events -> (список)
Поток событий для вашей службы. Отображается не более 100 последних событий.
(структура)
Подробная информация об событии, связанном со службой.
id -> (строка)
createdAt -> (метка времени)
message -> (строка)
createdAt -> (метка времени)
placementConstraints -> (список)
Ограничения размещения задач в службе.
(структура)
Объект, представляющий ограничение на размещение задачи. Дополнительную информацию см. в разделе Ограничения размещения задач в руководстве разработчика Amazon Elastic Container Service .
Примечание
Если вы используете тип запуска Fargate, ограничения размещения задач не поддерживаются.type -> (строка)
distinctInstance, чтобы гарантировать, что каждая задача в определенной группе выполняется на разных экземплярах контейнера. Используйте memberOf, чтобы ограничить выбор группой допустимых кандидатов.expression -> (строка)
distinctInstance . Дополнительную информацию см. в разделе Язык запросов кластера в руководстве разработчика Amazon Elastic Container Service.placementStrategy -> (список)
Стратегия размещения, определяющая, как размещаются задачи для службы.
(структура)
Стратегия размещения задач для задачи или службы. Дополнительную информацию см. в разделе Стратегии размещения задач в руководстве разработчика Amazon Elastic Container Service .
type -> (строка)
random стратегия размещения случайным образом размещает задачи на доступных кандидатах. spread стратегия распределяет размещение равномерно по доступным кандидатам на основе параметра field. Стратегия binpack размещает задачи на доступных кандидатах, у которых наименьшее количество доступных ресурсов, указанных в параметре field. Например, если вы используете binpack по памяти, задача размещается на экземпляре с наименьшим количеством оставшейся памяти, но все еще достаточно для выполнения задачи.field -> (строка)
spread стратегии размещения допустимые значения — instanceId (или host, что имеет тот же эффект), или любой платформенный или пользовательский атрибут, примененный к экземпляру контейнера, например attribute:ecs.availability-zone. Для binpack стратегии размещения допустимые значения — cpu и memory. Для random стратегии размещения это поле не используется.networkConfiguration -> (структура)
Конфигурация подсети VPC и группы безопасности для задач, которые получают собственный эластичный сетевой интерфейс, используя режим сети awsvpc.
awsvpcConfiguration -> (структура)
Подсети VPC и группы безопасности, связанные с задачей.
Примечание
Все указанные подсети и группы безопасности должны быть из одной VPC.subnets -> (список)
Идентификаторы подсетей, связанные с задачей или службой. Можно указать до 16 подсетей.
Примечание
Все указанные подсети должны быть из одной VPC.(строка)
securityGroups -> (список)
Идентификаторы групп безопасности, связанные с задачей или службой. Если вы не указываете группу безопасности, используется группа безопасности по умолчанию для VPC. Можно указать до 5 групп безопасности.
Примечание
Все указанные группы безопасности должны быть из одной VPC.(строка)
assignPublicIp -> (строка)
Получает ли эластичный сетевой интерфейс задачи публичный IP-адрес.
Учитывайте следующее, когда вы устанавливаете это значение:
- При использовании
create-serviceилиupdate-serviceзначение по умолчанию —DISABLED. - Когда состояние службы
deploymentControllerравноECS, значение должно бытьDISABLED.
healthCheckGracePeriodSeconds -> (целое число)
schedulingStrategy -> (строка)
Стратегия планирования для службы. Дополнительную информацию см. в разделе Services .
Доступны две стратегии планирования.
-
REPLICA- Стратегия планирования реплик размещает и поддерживает необходимое количество задач в вашем кластере. По умолчанию планировщик службы распределяет задачи по зонам доступности. Вы можете использовать стратегии и ограничения размещения задач для настройки решений размещения задач. -
DAEMON- Стратегия планирования демона развертывает ровно одну задачу на каждом активном экземпляре контейнера. Эта задача соответствует всем ограничениям размещения задач, указанным в вашем кластере. Планировщик службы также оценивает ограничения размещения задач для выполняемых задач. Он останавливает задачи, которые не соответствуют ограничениям размещения.
Примечание
Задачи Fargate не поддерживают стратегию планированияDAEMON.deploymentController -> (структура)
Тип контроллера развертывания, используемого службой.
type -> (строка)
Тип контроллера развертывания, который необходимо использовать.
Доступны три типа контроллеров развертывания:
Тип развертывания с постепенным обновлением (ECS) предполагает замену текущей рабочей версии контейнера последней версией. Количество контейнеров, которое Amazon ECS добавляет или удаляет из службы во время постепенного обновления, контролируется путем изменения минимального и максимального числа работоспособных задач, разрешенных во время развертывания службы, как указано в DeploymentConfiguration.
Дополнительную информацию о постепенных развертываниях см. в разделе Развертывание служб Amazon ECS, заменяя задачи в руководстве разработчика Amazon Elastic Container Service.
Тип развертывания синего/зеленого (CODE_DEPLOY) использует модель развертывания синего/зеленого, поддерживаемую CodeDeploy, что позволяет проверить новое развертывание службы перед отправкой трафика производства.
Дополнительную информацию о развертываниях синего/зеленого см. в разделе Проверка состояния службы Amazon ECS перед развертыванием в руководстве разработчика Amazon Elastic Container Service.
Тип развертывания внешний (EXTERNAL) позволяет использовать любой сторонний контроллер развертывания для полного контроля над процессом развертывания службы Amazon ECS.
Дополнительную информацию о внешних развертываниях см. в разделе Развертывание служб Amazon ECS с помощью стороннего контроллера в руководстве разработчика Amazon Elastic Container Service.
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 — это общий ярлык, который действует как категория для более конкретных значений тегов.значение -> (строка)
value выступает в качестве описания в категории тега (ключ).createdBy -> (строка)
enableECSManagedTags -> (булево)
propagateTags -> (строка)
enableExecuteCommand -> (булево)
true, функция выполнения команды включена для всех контейнеров в задачах как части службы.availabilityZoneRebalancing -> (строка)
Указывает, использовать ли балансировку зон доступности для службы.
Дополнительную информацию см. в разделе Балансировка службы Amazon ECS по зонам доступности в *Руководстве разработчика Amazon Elastic Container Service*.
© Copyright 2025, Amazon Web Services. Created using Sphinx.