обновление-сервиса
Описание
Изменяет параметры сервиса.
Примечание
21 марта 2024 года были внесены изменения для разрешения ревизии определения задачи перед авторизацией. Когда ревизия определения задачи не указана, авторизация будет выполнена с использованием последней ревизии определения задачи.Для сервисов, использующих поэтапное обновление (ECS ), можно обновить желаемое количество, конфигурацию развертывания, конфигурацию сети, балансировщики нагрузки, регистры сервисов, включить параметр ECS управляемых тегов, параметр распространения тегов, ограничения и стратегии размещения задач, а также определение задачи. При обновлении любого из этих параметров Amazon ECS запускает новые задачи с новой конфигурацией.
Вы можете подключить тома Amazon EBS к задачам Amazon ECS, настроив том при запуске или выполнении задачи, или при создании или обновлении сервиса. Дополнительную информацию см. в разделе Тома Amazon EBS в Руководстве разработчика Amazon Elastic Container Service. Вы можете обновить свои конфигурации томов и запустить новое развертывание. volumeConfigurations поддерживается только для сервиса REPLICA, а не для сервиса DAEMON. Если вы оставите volumeConfigurations null, это не запускает новое развертывание. Дополнительную информацию о томах см. в разделе Тома Amazon EBS в Руководстве разработчика Amazon Elastic Container Service.
Для сервисов, использующих контроллер развертывания «синий/зелёный» (CODE_DEPLOY ), с помощью этого API можно обновить только желаемое количество, конфигурацию развертывания, период ожидания проверки состояния, ограничения и стратегии размещения задач, включить параметр ECS управляемых тегов и параметр распространения тегов. Если необходимо обновить конфигурацию сети, версию платформы, определение задачи или балансировщик нагрузки, создайте новое развертывание CodeDeploy. Дополнительную информацию см. в разделе CreateDeployment в Справочнике по API CodeDeploy.
Для сервисов, использующих внешний контроллер развертывания, с помощью этого API можно обновить только желаемое количество, ограничения и стратегии размещения задач, период ожидания проверки состояния, включить параметр ECS управляемых тегов и параметр распространения тегов. Если необходимо обновить тип запуска, балансировщик нагрузки, конфигурацию сети, версию платформы или определение задачи, создайте новый набор задач. Дополнительную информацию см. в разделе CreateTaskSet.
Вы можете добавить или вычесть количество экземпляров определения задачи в сервисе, указав кластер, в котором выполняется служба, и новый desiredCount параметр.
Вы можете подключить тома Amazon EBS к задачам Amazon ECS, настроив том при запуске или выполнении задачи, или при создании или обновлении сервиса. Дополнительную информацию см. в разделе Тома Amazon EBS в Руководстве разработчика Amazon Elastic Container Service.
Если вы обновили образ контейнера своего приложения, вы можете создать новое определение задачи с этим образом и развернуть его в своем сервисе. Планировщик сервиса использует минимальный и максимальный проценты работоспособности (в конфигурации развертывания сервиса) для определения стратегии развертывания.
Примечание
Если обновленный образ Docker использует тот же тег, что и в существующем определении задачи для вашего сервиса (например,my_image:latest ), вам не нужно создавать новую ревизию определения задачи. Вы можете обновить сервис, используя опцию forceNewDeployment. Новые задачи, запущенные развертыванием, при запуске извлекают текущую комбинацию образа/тега из вашего репозитория.Вы также можете обновить конфигурацию развертывания сервиса. При запуске развертывания путем обновления определения задачи сервиса, планировщик сервиса использует параметры конфигурации развертывания, minimumHealthyPercent и maximumPercent, для определения стратегии развертывания.
- Если
minimumHealthyPercentниже 100%, планировщик может временно игнорироватьdesiredCountво время развертывания. Например, еслиdesiredCountсоставляет четыре задачи, минимум 50% позволяет планировщику остановить две существующие задачи перед запуском двух новых. Задачи для сервисов, не использующих балансировщик нагрузки, считаются работоспособными, если они находятся в состоянииRUNNING. Задачи для сервисов, использующих балансировщик нагрузки, считаются работоспособными, если они находятся в состоянииRUNNINGи сообщаются как работоспособные балансировщиком нагрузки. - Параметр
maximumPercentпредставляет собой верхний предел количества работающих задач во время развертывания. Его можно использовать для определения размера группы развертывания. Например, еслиdesiredCountсоставляет четыре задачи, максимум 200% запускает четыре новые задачи перед остановкой четырёх старых задач (при условии, что требуемые для этого ресурсы кластера доступны).
Когда UpdateService останавливает задачу во время развертывания, контейнерам, работающим в задаче, отправляется эквивалент docker stop. Это приводит к SIGTERM и таймауту в 30 секунд. После этого отправляется SIGKILL, и контейнеры принудительно останавливаются. Если контейнер обрабатывает SIGTERM корректно и завершается в течение 30 секунд после его получения, не отправляется SIGKILL.
При запуске новых задач планировщик сервиса определяет размещение задач в вашем кластере с помощью следующей логики.
- Определить, какие из контейнерных экземпляров в вашем кластере могут поддерживать определение задачи вашего сервиса. Например, у них есть необходимые CPU, память, порты и атрибуты экземпляра контейнера.
- По умолчанию планировщик сервиса пытается сбалансировать задачи по зонам доступности таким образом, хотя вы можете выбрать другую стратегию размещения.
- Отсортировать допустимые экземпляры контейнеров по наименьшему количеству работающих задач для этого сервиса в той же зоне доступности, что и экземпляр. Например, если в зоне А есть одна работающая задача сервиса, а в зонах B и C по нулю, допустимые экземпляры контейнеров в зонах B или C считаются оптимальными для размещения.
- Разместить новую задачу сервиса на допустимом экземпляре контейнера в оптимальной зоне доступности (на основе предыдущих шагов), отдавая предпочтение экземплярам контейнеров с наименьшим количеством работающих задач для этого сервиса.
При остановке работающих задач планировщик сервиса пытается сохранить баланс по зонам доступности в вашем кластере с помощью следующей логики:
- Отсортировать экземпляры контейнеров по наибольшему количеству работающих задач для этого сервиса в той же зоне доступности, что и экземпляр. Например, если в зоне А есть одна работающая задача сервиса, а в зонах B и C по две, экземпляры контейнеров в зонах B или C считаются оптимальными для завершения.
- Остановить задачу на экземпляре контейнера в оптимальной зоне доступности (на основе предыдущих шагов), отдавая предпочтение экземплярам контейнеров с наибольшим количеством работающих задач для этого сервиса.
Примечание
У вас должен быть связанный с сервисом роль, когда вы обновляете любые из следующих свойств сервиса:
-
loadBalancers, serviceRegistries
Дополнительную информацию о роли см. в параметре запроса CreateService ` role https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html#ECS-CreateService-request-role`__ .
См. также: Документация по API AWS
Синтаксис
update-service
[--cluster <value>]
--service <value>
[--desired-count <value>]
[--task-definition <value>]
[--capacity-provider-strategy <value>]
[--deployment-configuration <value>]
[--availability-zone-rebalancing <value>]
[--network-configuration <value>]
[--placement-constraints <value>]
[--placement-strategy <value>]
[--platform-version <value>]
[--force-new-deployment | --no-force-new-deployment]
[--health-check-grace-period-seconds <value>]
[--enable-execute-command | --disable-execute-command]
[--enable-ecs-managed-tags | --no-enable-ecs-managed-tags]
[--load-balancers <value>]
[--propagate-tags <value>]
[--service-registries <value>]
[--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 (строка)
--desired-count (целое число)
--task-definition (строка)
family и revision (family:revision ) или полный ARN определения задачи, которую необходимо запустить в вашем сервисе. Если определение задачи (revision) не указано, используется последняя ACTIVE ревизия. Если вы измените определение задачи с UpdateService, Amazon ECS запустит задачу с новой версией определения задачи и остановит старую задачу после запуска новой версии.--capacity-provider-strategy (список)
Стратегия поставщика ресурсов для обновления сервиса.
Если сервис использует стратегию поставщика ресурсов по умолчанию для кластера, сервис может быть обновлен для использования одного или нескольких поставщиков ресурсов вместо стратегии поставщика ресурсов по умолчанию. Однако, когда сервис использует стратегию поставщика ресурсов, отличную от стратегии поставщика ресурсов по умолчанию, сервис не может быть обновлен для использования стратегии поставщика ресурсов по умолчанию кластера.
Стратегия поставщика ресурсов состоит из одного или нескольких поставщиков ресурсов вместе с base и weight для их назначения. Поставщик ресурсов должен быть связан с кластером, чтобы быть использован в стратегии поставщика ресурсов. API PutClusterCapacityProviders используется для связывания поставщика ресурсов с кластером. Используются только поставщики ресурсов со статусом ACTIVE или UPDATING.
Если указан поставщик ресурсов, использующий группу Auto Scaling, поставщик ресурсов должен быть уже создан. Новые поставщики ресурсов могут быть созданы с помощью операции API CreateClusterCapacityProvider.
Для использования поставщика ресурсов Fargate, укажите либо FARGATE или FARGATE_SPOT поставщиков ресурсов. Поставщики ресурсов Fargate доступны для всех аккаунтов и должны быть связаны только с кластером для использования.
Операция API PutClusterCapacityProviders используется для обновления списка доступных поставщиков ресурсов для кластера после создания кластера.
(структура)
Подробности стратегии поставщика ресурсов. Стратегию поставщика ресурсов можно установить при использовании 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
}
...
]
--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.
Если служба использует тип развертывания «синий/зеленый» (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% для командной строки, SDK Amazon Web Services и API, и 50% для веб-консоли Amazon Web Services.
Минимальное количество работоспособных задач во время развертывания равно 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
}
}
--availability-zone-rebalancing (строка)
Указывает, использовать ли перебалансировку зон доступности для службы.
Дополнительную информацию см. в разделе Балансировка службы Amazon ECS по зонам доступности в *Руководстве разработчика Amazon Elastic Container Service*.
Возможные значения:
ENABLEDDISABLED
--network-configuration (структура)
Объект, представляющий конфигурацию сети для службы.
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"
}
}
--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 (список)
Объекты стратегии размещения задач для обновления службы. Если значение не указано, существующая стратегия размещения для службы останется неизменной. Если это значение указано, оно переопределит существующую стратегию размещения, определенную для службы. Для удаления существующей стратегии размещения укажите пустой объект.
Вы можете указать не более пяти правил стратегии для каждой службы.
(структура)
Стратегия размещения задач для задачи или службы. Дополнительную информацию см. в разделе Стратегии размещения задач в руководстве разработчика Amazon Elastic Container Service.
type -> (строка)
random случайным образом размещает задачи на доступных кандидатах. Стратегия размещения spread равномерно распределяет размещение по доступным кандидатам на основе параметра field. Стратегия binpack размещает задачи на доступных кандидатах, которые имеют наименьшее доступное количество ресурсов, указанных в параметре field. Например, если вы используете binpacking для памяти, задача размещается на экземпляре с наименьшим количеством оставшейся памяти, но все еще достаточным для запуска задачи.field -> (строка)
spread допустимые значения — instanceId (или host, что имеет тот же эффект), или любой платформенный или пользовательский атрибут, примененный к экземпляру контейнера, такой как attribute:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — cpu и memory. Для стратегии размещения random это поле не используется.Сокращенная синтаксическая запись:
type=string,field=string ...
Синтаксис JSON:
[
{
"type": "random"|"spread"|"binpack",
"field": "string"
}
...
]
--platform-version (строка)
LATEST. Дополнительную информацию см. в разделе Версии платформы Fargate в руководстве разработчика Amazon Elastic Container Service.--force-new-deployment | --no-force-new-deployment (булево)
my_image:latest) или развернуть задачи Fargate на более новую версию платформы.--health-check-grace-period-seconds (целое число)
Период времени в секундах, в течение которого планировщик сервисов Amazon ECS игнорирует нездоровые проверки состояния балансировщика нагрузки Elastic Load Balancing, VPC Lattice и контейнеров после первоначального запуска задачи. Если вы не укажете значение периода ожидания проверки состояния, будет использоваться значение по умолчанию 0. Если вы не используете ни одну из проверок состояния, то healthCheckGracePeriodSeconds не используется.
Если задачам службы требуется время для запуска и реагирования на проверки состояния, вы можете указать период ожидания проверки состояния до 2 147 483 647 секунд (примерно 69 лет). В течение этого времени планировщик сервисов Amazon ECS игнорирует состояние проверки состояния. Этот период ожидания может предотвратить маркировку задач планировщиком сервисов как нездоровых и их остановку до того, как они успеют запуститься.
--enable-execute-command | --disable-execute-command (булево)
Если true, это включает функциональность выполнения команд во всех контейнерах задач.
Если вы не хотите переопределять значение, установленное при создании службы, вы можете установить его в значение null при выполнении этого действия.
--enable-ecs-managed-tags | --no-enable-ecs-managed-tags (булево)
Определяет, включить ли управляемые Amazon ECS теги для задач в службе. Дополнительную информацию см. в разделе Тегирование ваших ресурсов Amazon ECS в руководстве разработчика Amazon Elastic Container Service.
Только задачи, запущенные после обновления, будут отражать обновление. Для обновления тегов всех задач установите forceNewDeployment в значение true, чтобы Amazon ECS запускал новые задачи с обновленными тегами.
--load-balancers (список)
Список объектов балансировщиков нагрузки Elastic Load Balancing. Он содержит имя балансировщика, имя контейнера и порт контейнера для доступа из балансировщика. Имя контейнера такое, как оно отображается в определении контейнера.
При добавлении, обновлении или удалении конфигурации балансировщика Amazon ECS запускает новые задачи с обновленной конфигурацией Elastic Load Balancing и затем останавливает старые задачи, когда новые задачи запущены.
Для служб, которые используют поэтапные обновления, вы можете добавлять, обновлять или удалять целевые группы Elastic Load Balancing. Вы можете обновлять значения от одной целевой группы до нескольких целевых групп и от нескольких целевых групп до одной целевой группы.
Для служб, которые используют развертывания "синий/зеленый", вы можете обновлять целевые группы Elastic Load Balancing, используя `` CreateDeployment `` через CodeDeploy. Обратите внимание, что для развертываний "синий/зеленый" не поддерживается несколько целевых групп. Дополнительную информацию см. в разделе Регистрация нескольких целевых групп со службой в руководстве разработчика Amazon Elastic Container Service.
Для служб, которые используют внешний контроллер развертывания, вы можете добавлять, обновлять или удалять балансировщики, используя CreateTaskSet. Обратите внимание, что для внешних развертываний не поддерживается несколько целевых групп. Дополнительную информацию см. в разделе Регистрация нескольких целевых групп со службой в руководстве разработчика Amazon Elastic Container Service.
Вы можете удалить существующие loadBalancers, передав пустой список.
(структура)
Конфигурация балансировщика нагрузки для использования со службой или набором задач.
При добавлении, обновлении или удалении конфигурации балансировщика Amazon ECS запускает новое развертывание с обновленной конфигурацией Elastic Load Balancing. Это приводит к регистрации и отмене регистрации задач в балансировщиках.
Рекомендуется проверять это в тестовой среде перед обновлением конфигурации Elastic Load Balancing.
Для служб, которые используют несколько целевых групп, требуется роль, связанная со службой. Дополнительную информацию см. в разделе Использование ролей, связанных со службой, в руководстве разработчика Amazon Elastic Container Service.
targetGroupArn -> (строка)
Полное имя Amazon Resource Name (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
}
...
]
--propagate-tags (строка)
Определяет, распространять ли теги из определения задачи или службы на задачу. Если значение не указано, теги не распространяются.
Только задачи, запущенные после обновления, будут отражать обновление. Для обновления тегов всех задач установите forceNewDeployment в значение true, чтобы Amazon ECS запускал новые задачи с обновленными тегами.
Возможные значения:
TASK_DEFINITIONSERVICENONE
--service-registries (список)
Подробности о реестрах обнаружения служб, которые нужно назначить этой службе. Дополнительную информацию см. в разделе Обнаружение служб.
При добавлении, обновлении или удалении конфигурации реестров служб Amazon ECS запускает новые задачи с обновленной конфигурацией реестров служб и останавливает старые задачи после запуска новых.
Вы можете удалить существующие 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. Однако вы не можете указать оба.Сокращенная синтаксическая запись:
registryArn=string,port=integer,containerName=string,containerPort=integer ...
Синтаксис JSON:
[
{
"registryArn": "string",
"port": integer,
"containerName": "string",
"containerPort": integer
}
...
]
--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 «клиента», который является членом пространства имен только для подключения к другим сервисам в этом пространстве имен. Примером может служить приложение front-end, которое принимает входящие запросы либо от балансировщика нагрузки, прикрепленного к сервису, либо другими способами.
Объект выбирает порт из определения задачи, назначает имя сервису Cloud Map и список псевдонимов (конечных точек) и портов для приложений-клиентов для ссылки на этот сервис.
(структура)
Настройка объекта сервиса 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.
(структура)
Каждый псевдоним («конечная точка») — это полное имя и номер порта, которые другие задачи («клиенты») могут использовать для подключения к этому сервису.
Каждое имя и сопоставление портов должны быть уникальными в рамках пространства имен.
Задачи, выполняемые в пространстве имен, могут использовать короткие имена для подключения к сервисам в этом пространстве имен. Задачи могут подключаться к сервисам по всем кластерам в пространстве имен. Задачи подключаются через управляемый прокси-контейнер, который собирает журналы и метрики для повышения видимости. Поддержка 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 в определении задачи. В режиме bridge значение по умолчанию — временный порт прокси-сервера Service Connect.
timeout -> (structure)
Ссылка на объект, представляющий настроенные таймауты для Service Connect.
idleTimeoutSeconds -> (integer)
Время в секундах, в течение которого соединение останется активным в режиме простоя. Значение 0 может быть установлено для отключения idleTimeout.
Значение по умолчанию для idleTimeout /HTTP2 /GRPC составляет 5 минут.
Значение по умолчанию для idleTimeout /TCP составляет 1 час.
perRequestTimeoutSeconds -> (integer)
0 может быть установлено для отключения perRequestTimeout. perRequestTimeout можно задать только если Service Connect appProtocol не TCP. Только idleTimeout разрешено для TCP appProtocol.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 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 в качестве параметров.
Для этого параметра требуется версия 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.
Дополнительную информацию о необходимых разрешениях 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 (список)
Подробности тома, который был configuredAtLaunch. Вы можете настроить размер, тип тома, IOPS, пропускную способность, моментальный снимок и шифрование в ServiceManagedEBSVolumeConfiguration. name тома должен соответствовать name из определения задачи. Если задано значение null, новая развертка не запускается. В противном случае, если эта конфигурация отличается от текущей, запускается новая развертка.
(структура)
Конфигурация тома, указанного в определении задачи как том, который настраивается при запуске. В настоящее время единственный поддерживаемый тип тома — том 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 - Жёсткий диск с оптимизацией пропускной способности:
st1 - Холодный жёсткий диск:
sc1 - Магнитный:
standard
Примечание
Тип магнитного тома не поддерживается в Fargate.sizeInGiB -> (целое число)
Размер тома в Гигабайтах. Вы должны указать либо размер тома, либо идентификатор моментального снимка. Если вы указываете идентификатор моментального снимка, размер снимка используется по умолчанию для размера тома. Вы можете дополнительно указать размер тома, равный или больший, чем размер снимка. Этот параметр отображает 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 это базовая производительность тома и скорость накопления кредитов 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 типов томов.
Этот параметр отображает 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 -> (строка)
key — это общее обозначение, которое выполняет роль категории для более конкретных значений тега.value -> (строка)
value выполняет роль описателя внутри категории тега (ключ).propagateTags -> (строка)
SERVICE, указанные в ServiceVolumeConfiguration. Если значение не указано, теги не распространяются.roleArn -> (строка)
AmazonECSInfrastructureRolePolicyForVolumes с этой ролью. Дополнительную информацию см. в разделе Роль IAM инфраструктуры Amazon ECS в Руководстве разработчика 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 (строка)
Файл с корневым сертификатом для проверки сертификатов SSL. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет выполняться блокирующим образом и без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет выполняться блокирующим образом и без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены в виде закодированной в base64 строки. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, а двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет интерпретироваться как двоичное и использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (логическое)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (логическое)
Отключить автоматический запрос параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования по образцу Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. Дополнительную информацию см. в разделе «Использование кавычек со строками» в Руководстве пользователя AWS CLI.
Пример 1: Изменение определения задачи, используемой в сервисе
Следующий update-service пример обновляет my-http-service сервис для использования amazon-ecs-sample определения задачи.
aws ecs update-service \
--cluster test \
--service my-http-service \
--task-definition amazon-ecs-sample
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/test/my-http-service",
"serviceName": "my-http-service",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/test",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 2,
"pendingCount": 0,
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:2",
"deploymentConfiguration": {
"deploymentCircuitBreaker": {
"enable": true,
"rollback": true
},
"maximumPercent": 200,
"minimumHealthyPercent": 100,
"alarms": {
"alarmNames": [],
"rollback": false,
"enable": false
}
},
"deployments": [
{
"id": "ecs-svc/7419115625193919142",
"status": "PRIMARY",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/amazon-ecs-sample:2",
"desiredCount": 0,
"pendingCount": 0,
"runningCount": 0,
"failedTasks": 0,
"createdAt": "2025-02-21T13:26:02.734000-06:00",
"updatedAt": "2025-02-21T13:26:02.734000-06:00",
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "IN_PROGRESS",
"rolloutStateReason": "ECS deployment ecs-svc/7419115625193919142 in progress."
},
{
"id": "ecs-svc/1709597507655421668",
"status": "ACTIVE",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/old-amazon-ecs-sample:4",
"desiredCount": 2,
"pendingCount": 0,
"runningCount": 2,
"failedTasks": 0,
"createdAt": "2025-01-24T11:13:07.621000-06:00",
"updatedAt": "2025-02-02T16:11:30.838000-06:00",
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "COMPLETED",
"rolloutStateReason": "ECS deployment ecs-svc/1709597507655421668 completed."
}
],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [
{
"id": "e40b4d1c-80d9-4834-aaf3-6a268e530e17",
"createdAt": "2025-02-21T10:31:26.037000-06:00",
"message": "(my-http-service) has reached a steady state."
},
{
"id": "6ac069ad-fc8b-4e49-a35d-b5574a964c8e",
"createdAt": "2025-02-21T04:31:22.703000-06:00",
"message": "(my-http-service) has reached a steady state."
},
{
"id": "265f7d37-dfd1-4880-a846-ec486f341919",
"createdAt": "2025-02-20T22:31:22.514000-06:00",
"message": "(my-http-service) has reached a steady state."
}
],
"createdAt": "2024-10-30T17:12:43.218000-05:00",
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321",
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"healthCheckGracePeriodSeconds": 0,
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "ECS"
},
"createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE",
"enableECSManagedTags": true,
"propagateTags": "NONE",
"enableExecuteCommand": false,
"availabilityZoneRebalancing": "DISABLED"
}
}
Дополнительную информацию см. в разделе «Обновление сервиса Amazon ECS с помощью консоли» в Руководстве разработчика Amazon ECS.
Пример 2: Изменение количества задач в сервисе
Следующий update-service пример обновляет желаемое количество задач в сервисе my-http-service с 1 до 2.
aws ecs update-service \
--cluster MyCluster \
--service my-http-service \
--desired-count 2
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/my-http-service",
"serviceName": "my-http-service",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 1,
"pendingCount": 0,
"capacityProviderStrategy": [
{
"capacityProvider": "FARGATE",
"weight": 1,
"base": 0
}
],
"platformVersion": "LATEST",
"platformFamily": "Linux",
"taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition",
"deploymentConfiguration": {
"deploymentCircuitBreaker": {
"enable": true,
"rollback": true
},
"maximumPercent": 200,
"minimumHealthyPercent": 100,
"alarms": {
"alarmNames": [],
"rollback": false,
"enable": false
}
},
"deployments": [
{
"id": "ecs-svc/1976744184940610707",
"status": "PRIMARY",
"taskkDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition",
"desiredCount": 1,
"pendingCount": 0,
"runningCount": 1,
"failedTasks": 0,
"createdAt": "2024-12-03T16:24:25.225000-05:00",
"updatedAt": "2024-12-03T16:25:15.837000-05:00",
"capacityProviderStrategy": [
{
"capacityProvider": "FARGATE",
"weight": 1,
"base": 0
}
],
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-0d0eab1bb38d5ca64",
"subnet-0db5010045995c2d5"
],
"securityGroups": [
"sg-02556bf85a191f59a"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "COMPLETED",
"rolloutStateReason": "ECS deployment ecs-svc/1976744184940610707 completed."
}
],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [
{
"id": "f27350b9-4b2a-4e2e-b72e-a4b68380de45",
"createdAt": "2024-12-30T13:24:07.345000-05:00",
"message": "(service my-http-service) has reached a steady state."
},
{
"id": "e764ec63-f53f-45e3-9af2-d99f922d2957",
"createdAt": "2024-12-30T12:32:21.600000-05:00",
"message": "(service my-http-service) has reached a steady state."
},
{
"id": "28444756-c2fa-47f8-bd60-93a8e05f3991",
"createdAt": "2024-12-08T19:26:10.367000-05:00",
"message": "(service my-http-service) has reached a steady state."
}
],
"createdAt": "2024-12-03T16:24:25.225000-05:00",
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-0d0eab1bb38d5ca64",
"subnet-0db5010045995c2d5"
],
"securityGroups": [
"sg-02556bf85a191f59a"
],
"assignPublicIp": "ENABLED"
}
},
"healthCheckGracePeriodSeconds": 0,
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "ECS"
},
"createdBy": "arn:aws:iam::123456789012:role/Admin",
"enableECSManagedTags": true,
"propagateTags": "NONE",
"enableExecuteCommand": false,
"availabilityZoneRebalancing": "ENABLED"
}
}
Дополнительную информацию см. в разделе «Обновление сервиса Amazon ECS с помощью консоли» в Руководстве разработчика Amazon ECS.
Пример 3: Настройка томов Amazon EBS для подключения при обновлении сервиса
Следующий update-service пример обновляет сервис my-http-service для использования томов Amazon EBS. Вам необходимо настроить роль инфраструктуры Amazon ECS с прикрепленной управляемой политикой AmazonECSInfrastructureRolePolicyForVolumes. Вам также необходимо указать определение задачи с тем же именем тома, что и в запросе update-service, и с configuredAtLaunch, установленным в значение true. В этом примере используется параметр --cli-input-json и файл входных данных JSON, названный ebs.json.
aws ecs update-service \
--cli-input-json file://ebs.json
Содержимое ebs.json:
{
"cluster": "mycluster",
"taskDefinition": "mytaskdef",
"service": "my-http-service",
"desiredCount": 2,
"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/my-http-service",
"serviceName": "my-http-service",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 2,
"pendingCount": 0,
"launchType": "FARGATE",
"platformVersion": "LATEST",
"platformFamily": "Linux",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:1",
"deploymentConfiguration": {
"deploymentCircuitBreaker": {
"enable": true,
"rollback": true
},
"maximumPercent": 200,
"minimumHealthyPercent": 100,
"alarms": {
"alarmNames": [],
"rollback": false,
"enable": false
}
},
"deployments": [
{
"id": "ecs-svc/2420458347226626275",
"status": "PRIMARY",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:1",
"desiredCount": 0,
"pendingCount": 0,
"runningCount": 0,
"failedTasks": 0,
"createdAt": "2025-02-21T15:07:20.519000-06:00",
"updatedAt": "2025-02-21T15:07:20.519000-06:00",
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321",
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "IN_PROGRESS",
"rolloutStateReason": "ECS deployment ecs-svc/2420458347226626275 in progress.",
"volumeConfigurations": [
{
"name": "ebs-volume",
"managedEBSVolume": {
"volumeType": "gp3",
"sizeInGiB": 100,
"iops": 3000,
"throughput": 125,
"roleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
"filesystemType": "ext4"
}
}
]
},
{
"id": "ecs-svc/5191625155316533644",
"status": "ACTIVE",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:2",
"desiredCount": 2,
"pendingCount": 0,
"runningCount": 2,
"failedTasks": 0,
"createdAt": "2025-02-21T14:54:48.862000-06:00",
"updatedAt": "2025-02-21T14:57:22.502000-06:00",
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "COMPLETED",
"rolloutStateReason": "ECS deployment ecs-svc/5191625155316533644 completed."
}
],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [
{
"id": "b5823113-c2c5-458e-9649-8c2ed38f23a5",
"createdAt": "2025-02-21T14:57:22.508000-06:00",
"message": "(service my-http-service) has reached a steady state."
},
{
"id": "b05a48e8-da35-4074-80aa-37ceb3167357",
"createdAt": "2025-02-21T14:57:22.507000-06:00",
"message": "(service my-http-service) (deployment ecs-svc/5191625155316533644) deployment completed."
},
{
"id": "a10cd55d-4ba6-4cea-a655-5a5d32ada8a0",
"createdAt": "2025-02-21T14:55:32.833000-06:00",
"message": "(service my-http-service) has started 1 tasks: (task fb9c8df512684aec92f3c57dc3f22361)."
},
],
"createdAt": "2025-02-21T14:54:48.862000-06:00",
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"healthCheckGracePeriodSeconds": 0,
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "ECS"
},
"createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE",
"enableECSManagedTags": true,
"propagateTags": "NONE",
"enableExecuteCommand": false,
"availabilityZoneRebalancing": "ENABLED"
}
}
Дополнительную информацию см. в разделе «Использование томов Amazon EBS с Amazon ECS» в Руководстве разработчика Amazon ECS.
Пример 4: Обновление сервиса для исключения использования томов Amazon EBS
Следующий update-service пример обновляет сервис my-http-service для исключения использования томов Amazon EBS. Вам необходимо указать версию определения задачи с configuredAtLaunch, установленным в значение false.
aws ecs update-service \
--cluster mycluster \
--task-definition mytaskdef \
--service my-http-service \
--desired-count 2 \
--volume-configurations "[]"
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-west-2:123456789012:service/mycluster/my-http-service",
"serviceName": "my-http-service",
"clusterArn": "arn:aws:ecs:us-west-2:123456789012:cluster/mycluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 2,
"pendingCount": 0,
"launchType": "FARGATE",
"platformVersion": "LATEST",
"platformFamily": "Linux",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3",
"deploymentConfiguration": {
"deploymentCircuitBreaker": {
"enable": true,
"rollback": true
},
"maximumPercent": 200,
"minimumHealthyPercent": 100,
"alarms": {
"alarmNames": [],
"rollback": false,
"enable": false
}
},
"deployments": [
{
"id": "ecs-svc/7522791612543716777",
"status": "PRIMARY",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/mytaskdef:3",
"desiredCount": 0,
"pendingCount": 0,
"runningCount": 0,
"failedTasks": 0,
"createdAt": "2025-02-21T15:25:38.598000-06:00",
"updatedAt": "2025-02-21T15:25:38.598000-06:00",
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "IN_PROGRESS",
"rolloutStateReason": "ECS deployment ecs-svc/7522791612543716777 in progress."
},
{
"id": "ecs-svc/2420458347226626275",
"status": "ACTIVE",
"taskDefinition": "arn:aws:ecs:us-west-2:123456789012:task-definition/myoldtaskdef:1",
"desiredCount": 2,
"pendingCount": 0,
"runningCount": 2,
"failedTasks": 0,
"createdAt": "2025-02-21T15:07:20.519000-06:00",
"updatedAt": "2025-02-21T15:10:59.955000-06:00",
"launchType": "FARGATE",
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "COMPLETED",
"rolloutStateReason": "ECS deployment ecs-svc/2420458347226626275 completed.",
"volumeConfigurations": [
{
"name": "ebs-volume",
"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": [
{
"id": "4f2c3ca1-7800-4048-ba57-bba210ada2ad",
"createdAt": "2025-02-21T15:10:59.959000-06:00",
"message": "(service my-http-service) has reached a steady state."
},
{
"id": "4b36a593-2d40-4ed6-8be8-b9b699eb6198",
"createdAt": "2025-02-21T15:10:59.958000-06:00",
"message": "(service my-http-service) (deployment ecs-svc/2420458347226626275) deployment completed."
},
{
"id": "88380089-14e2-4ef0-8dbb-a33991683371",
"createdAt": "2025-02-21T15:09:39.055000-06:00",
"message": "(service my-http-service) has stopped 1 running tasks: (task fb9c8df512684aec92f3c57dc3f22361)."
},
{
"id": "97d84243-d52f-4255-89bb-9311391c61f6",
"createdAt": "2025-02-21T15:08:57.653000-06:00",
"message": "(service my-http-service) has stopped 1 running tasks: (task 33eff090ad2c40539daa837e6503a9bc)."
},
{
"id": "672ece6c-e2d0-4021-b5da-eefb14001687",
"createdAt": "2025-02-21T15:08:15.631000-06:00",
"message": "(service my-http-service) has started 1 tasks: (task 996c02a66ff24f3190a4a8e0c841740f)."
},
{
"id": "a3cf9bea-9be6-4175-ac28-4c68360986eb",
"createdAt": "2025-02-21T15:07:36.931000-06:00",
"message": "(service my-http-service) has started 1 tasks: (task d5d23c39f89e46cf9a647b9cc6572feb)."
},
{
"id": "b5823113-c2c5-458e-9649-8c2ed38f23a5",
"createdAt": "2025-02-21T14:57:22.508000-06:00",
"message": "(service my-http-service) has reached a steady state."
},
{
"id": "b05a48e8-da35-4074-80aa-37ceb3167357",
"createdAt": "2025-02-21T14:57:22.507000-06:00",
"message": "(service my-http-service) (deployment ecs-svc/5191625155316533644) deployment completed."
},
{
"id": "a10cd55d-4ba6-4cea-a655-5a5d32ada8a0",
"createdAt": "2025-02-21T14:55:32.833000-06:00",
"message": "(service my-http-service) has started 1 tasks: (task fb9c8df512684aec92f3c57dc3f22361)."
},
{
"id": "42da91fa-e26d-42ef-88c3-bb5965c56b2f",
"createdAt": "2025-02-21T14:55:02.703000-06:00",
"message": "(service my-http-service) has started 1 tasks: (task 33eff090ad2c40539daa837e6503a9bc)."
}
],
"createdAt": "2025-02-21T14:54:48.862000-06:00",
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-12344321"
],
"securityGroups": [
"sg-12344321"
],
"assignPublicIp": "ENABLED"
}
},
"healthCheckGracePeriodSeconds": 0,
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "ECS"
},
"createdBy": "arn:aws:iam::123456789012:role/AIDACKCEVSQ6C2EXAMPLE",
"enableECSManagedTags": true,
"propagateTags": "NONE",
"enableExecuteCommand": false,
"availabilityZoneRebalancing": "ENABLED"
}
}
Дополнительную информацию см. в разделе «Использование томов Amazon EBS с Amazon ECS» в Руководстве разработчика Amazon ECS.
Пример 5: Включение балансировки зон доступности для сервиса
Следующий update-service пример включает балансировку зон доступности для сервиса my-http-service.
aws ecs update-service \
--cluster MyCluster \
--service my-http-service \
--availability-zone-rebalancing ENABLED
Вывод:
{
"service": {
"serviceArn": "arn:aws:ecs:us-east-1:123456789012:service/MyCluster/my-http-service",
"serviceName": "my-http-service",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"loadBalancers": [],
"serviceRegistries": [],
"status": "ACTIVE",
"desiredCount": 2,
"runningCount": 1,
"pendingCount": 0,
"capacityProviderStrategy": [
{
"capacityProvider": "FARGATE",
"weight": 1,
"base": 0
}
],
"platformVersion": "LATEST",
"platformFamily": "Linux",
"taskDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition",
"deploymentConfiguration": {
"deploymentCircuitBreaker": {
"enable": true,
"rollback": true
},
"maximumPercent": 200,
"minimumHealthyPercent": 100,
"alarms": {
"alarmNames": [],
"rollback": false,
"enable": false
}
},
"deployments": [
{
"id": "ecs-svc/1976744184940610707",
"status": "PRIMARY",
"taskkDefinition": "arn:aws:ecs:us-east-1:123456789012:task-definition/MyTaskDefinition",
"desiredCount": 1,
"pendingCount": 0,
"runningCount": 1,
"failedTasks": 0,
"createdAt": "2024-12-03T16:24:25.225000-05:00",
"updatedAt": "2024-12-03T16:25:15.837000-05:00",
"capacityProviderStrategy": [
{
"capacityProvider": "FARGATE",
"weight": 1,
"base": 0
}
],
"platformVersion": "1.4.0",
"platformFamily": "Linux",
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-0d0eab1bb38d5ca64",
"subnet-0db5010045995c2d5"
],
"securityGroups": [
"sg-02556bf85a191f59a"
],
"assignPublicIp": "ENABLED"
}
},
"rolloutState": "COMPLETED",
"rolloutStateReason": "ECS deployment ecs-svc/1976744184940610707 completed."
}
],
"roleArn": "arn:aws:iam::123456789012:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"events": [],
"createdAt": "2024-12-03T16:24:25.225000-05:00",
"placementConstraints": [],
"placementStrategy": [],
"networkConfiguration": {
"awsvpcConfiguration": {
"subnets": [
"subnet-0d0eab1bb38d5ca64",
"subnet-0db5010045995c2d5"
],
"securityGroups": [
"sg-02556bf85a191f59a"
],
"assignPublicIp": "ENABLED"
}
},
"healthCheckGracePeriodSeconds": 0,
"schedulingStrategy": "REPLICA",
"deploymentController": {
"type": "ECS"
},
"createdBy": "arn:aws:iam::123456789012:role/Admin",
"enableECSManagedTags": true,
"propagateTags": "NONE",
"enableExecuteCommand": false,
"availabilityZoneRebalancing": "ENABLED"
}
}
Дополнительную информацию см. в разделе «Обновление сервиса Amazon ECS с помощью консоли» в Руководстве разработчика Amazon ECS.
Вывод
service -> (структура)
Полное описание вашего сервиса после вызова обновления.
serviceArn -> (строка)
serviceName -> (строка)
clusterArn -> (строка)
loadBalancers -> (список)
Список объектов балансировщиков нагрузки Elastic Load Balancing. Он содержит имя балансировщика нагрузки, имя контейнера и порт контейнера для доступа из балансировщика нагрузки. Имя контейнера указано так, как оно отображается в определении контейнера.
(структура)
Настройка балансировщика нагрузки для использования с сервисом или набором задач.
При добавлении, обновлении или удалении конфигурации балансировщика нагрузки Amazon ECS запускает новую развертку с обновленной конфигурацией 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 Developer Guide.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 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 -> (булево)
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. Когда в стратегии поставщика емкости указано несколько поставщиков емкости, по крайней мере один из поставщиков емкости должен иметь значение веса, большее нуля, и любые поставщики емкости с весом 0 не могут использоваться для размещения задач. Если вы указываете в стратегии несколько поставщиков емкости, у которых все имеют вес 0, любые действия RunTask или CreateService, использующие стратегию поставщика емкости, завершатся ошибкой.
Пример сценария использования весов — определение стратегии, содержащей двух поставщиков емкости, и у обоих вес равен 1, тогда, когда выполнено условие base, задачи будут распределены равномерно между двумя поставщиками емкости. Используя ту же логику, если вы укажете вес 1 для capacityProviderA и вес 4 для capacityProviderB, то на каждую задачу, запущенную с помощью capacityProviderA, будет использоваться 4 задачи с 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 Resource Name (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. Когда в стратегии поставщика емкости указано несколько поставщиков емкости, по крайней мере один из поставщиков емкости должен иметь значение веса, большее нуля, и поставщики емкости с весом 0 не могут быть использованы для размещения задач. Если вы указываете в стратегии несколько поставщиков емкости, у которых все имеют вес 0, любые действия RunTask или CreateService, использующие стратегию поставщика емкости, завершатся с ошибкой.
Пример сценария использования весов - это определение стратегии, которая содержит двух поставщиков емкости и оба имеют вес 1, тогда, когда base удовлетворяется, задачи будут распределены равномерно между двумя поставщиками емкости. Используя тот же принцип, если вы указываете вес 1 для capacityProviderA и вес 4 для capacityProviderB, тогда для каждой задачи, запущенной с помощью capacityProviderA, четыре задачи будут использовать capacityProviderB.
base -> (целое число)
0.launchType -> (строка)
platformVersion -> (строка)
LATEST. Дополнительная информация приведена в разделе Fargate Platform Versions в руководстве разработчика 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), которые не находятся за Classic Load Balancer.Состояние развертывания. Когда развертывание сервиса запускается, оно находится в состоянии IN_PROGRESS. Когда сервис достигает стабильного состояния, развертывание переходит в состояние COMPLETED. Если сервис не достигает стабильного состояния, и механизм защиты от отказов включен, развертывание переходит в состояние FAILED. Развертывание в состоянии FAILED не запускает новые задачи. Дополнительная информация приведена в разделе DeploymentCircuitBreaker.
rolloutStateReason -> (строка)
serviceConnectConfiguration -> (структура)
Подробности конфигурации Service Connect, используемой в данном развертывании. Сравнивайте конфигурацию между несколькими развертываниями при устранении неполадок с новыми развертываниями.
Конфигурация для этого сервиса по обнаружению и подключению к сервисам, а также для обнаружения и подключения к другим сервисам в рамках пространства имен.
Задачи, выполняемые в пространстве имен, могут использовать короткие имена для подключения к сервисам в пространстве имен. Задачи могут подключаться к сервисам во всех кластерах в пространстве имен. Задачи подключаются через управляемый контейнер-прокси, который собирает логи и метрики для повышения видимости. Поддерживаются только задачи, созданные сервисами Amazon ECS. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
enabled -> (boolean)
namespace -> (string)
services -> (list)
Список объектов сервиса Service Connect. Это имена и псевдонимы (также известные как конечные точки), которые используются другими сервисами Amazon ECS для подключения к этому сервису.
Это поле не требуется для сервиса Amazon ECS «клиента», который является членом пространства имен только для подключения к другим сервисам в рамках этого пространства имен. Примером является приложение front-end, которое принимает входящие запросы от балансировщика нагрузки, подключенного к сервису, или иным способом.
Объект выбирает порт из определения задачи, назначает имя сервиса 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)
Каждый псевдоним («конечная точка») — это полное доменное имя и номер порта, которые другие задачи («клиенты») могут использовать для подключения к этому сервису.
Каждое имя и сопоставление портов должны быть уникальными в рамках пространства имен.
Задачи, выполняемые в пространстве имен, могут использовать короткие имена для подключения к сервисам в пространстве имен. Задачи могут подключаться к сервисам во всех кластерах в пространстве имен. Задачи подключаются через управляемый контейнер-прокси, который собирает логи и метрики для повышения видимости. Поддерживаются только задачи, созданные сервисами Amazon ECS. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
port -> (integer)
Номер порта прослушивания для прокси-сервера Service Connect. Этот порт доступен внутри всех задач в рамках того же пространства имен.
Чтобы избежать изменения ваших приложений в клиентских сервисах Amazon ECS, установите этот параметр в том же порту, который клиентское приложение использует по умолчанию. Дополнительную информацию см. в разделе Service Connect в руководстве разработчика Amazon Elastic Container Service.
dnsName -> (string)
dnsName — имя, используемое в приложениях клиентских задач для подключения к этому сервису. Имя должно быть допустимым доменным именем, но не обязательно полным. Имя может содержать до 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 в определении задачи. В режиме bridge значение по умолчанию — временный порт прокси-сервера 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 и параметру --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 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
Примечание
Тип тома Magnetic не поддерживается в Fargate.sizeInGiB -> (целое число)
Размер тома в GiB. Вы должны указать либо размер тома, либо ID моментального снимка. Если вы укажете ID моментального снимка, размер моментального снимка будет использоваться по умолчанию для размера тома. Вы можете необязательно указать размер тома, больший или равный размеру моментального снимка. Этот параметр отображается 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: 3000-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 -> (целое число)
Пропускная способность для тома в MiB/с, с максимальным значением 1000 MiB/с. Этот параметр отображается 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 -> (строка)
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 и группы безопасности для задач, которые получают собственный интерфейс сети Elastic с использованием режима сети awsvpc.
awsvpcConfiguration -> (структура)
Подсети VPC и группы безопасности, связанные с задачей.
Примечание
Все указанные подсети и группы безопасности должны принадлежать одному VPC.subnets -> (список)
Идентификаторы подсетей, связанные с задачей или службой. Можно указать до 16 подсетей.
Примечание
Все указанные подсети должны принадлежать одному VPC.(строка)
securityGroups -> (список)
Идентификаторы групп безопасности, связанные с задачей или службой. Если вы не укажете группу безопасности, используется группа безопасности по умолчанию для VPC. Можно указать до 5 групп безопасности.
Примечание
Все указанные группы безопасности должны принадлежать одному VPC.(строка)
assignPublicIp -> (строка)
Получает ли эластический интерфейс сети задачи общедоступный IP-адрес.
Учитывайте следующее при установке этого значения:
- При использовании
create-serviceилиupdate-serviceзначение по умолчаниюDISABLED. - Если служба
deploymentControllerнаходится в состоянииECS, значение должно бытьDISABLED.
healthCheckGracePeriodSeconds -> (целое число)
schedulingStrategy -> (строка)
Стратегия планирования для службы. Дополнительную информацию см. в разделе Службы.
Доступны две стратегии планирования службы.
-
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.