update-container-instances-state
Описание
Изменяет состояние экземпляра контейнера Amazon ECS.
После того, как экземпляр контейнера достиг состояния ACTIVE, вы можете изменить его состояние на DRAINING, чтобы вручную удалить экземпляр из кластера, например, для выполнения системных обновлений, обновления демона Docker или уменьшения размера кластера.
Предупреждение
Экземпляр контейнера не может быть изменен на состояниеDRAINING, пока не достигнет состояния ACTIVE. Если экземпляр находится в любом другом состоянии, будет получено сообщение об ошибке.При установке состояния экземпляра контейнера на DRAINING, Amazon ECS предотвращает планирование новых задач для размещения на экземпляре контейнера, и запускаются задачи замены сервиса на других экземплярах контейнеров в кластере, если доступны ресурсы. Задачи сервиса на экземпляре контейнера, находящиеся в состоянии PENDING, останавливаются немедленно.
Задачи сервиса на экземпляре контейнера, находящиеся в состоянии RUNNING, останавливаются и заменяются в соответствии с параметрами конфигурации развертывания сервиса, minimumHealthyPercent и maximumPercent. Вы можете изменить конфигурацию развертывания своего сервиса, используя UpdateService.
- Если значение
minimumHealthyPercentменьше 100%, планировщик может временно игнорироватьdesiredCountво время замены задач. Например, еслиdesiredCountсостоит из четырех задач, минимальное значение 50% позволяет планировщику остановить две существующие задачи перед запуском двух новых задач. Если минимум равен 100%, планировщик сервиса не может удалить существующие задачи до тех пор, пока задачи замены не будут считаться работоспособными. Задачи для сервисов, не использующих балансировщик нагрузки, считаются работоспособными, если они находятся в состоянииRUNNING. Задачи для сервисов, использующих балансировщик нагрузки, считаются работоспособными, если они находятся в состоянииRUNNINGи сообщают о работоспособности балансировщику нагрузки. - Параметр
maximumPercentпредставляет собой верхний предел количества работающих задач во время замены задач. Вы можете использовать его для определения размера партии замены. Например, еслиdesiredCountсоставляет четыре задачи, максимальное значение 200% запускает четыре новые задачи до остановки четырех задач, которые должны быть удалены, при условии, что кластерные ресурсы, необходимые для этого, доступны. Если максимум равен 100%, задачи замены не могут начаться до тех пор, пока не остановятся задачи, подлежащие удалению.
Любые задачи PENDING или RUNNING, которые не принадлежат сервису, не затрагиваются. Вы должны подождать их завершения или остановить их вручную.
Экземпляр контейнера завершает процесс удаления, когда у него больше нет задач RUNNING. Это можно проверить с помощью ListTasks.
После удаления экземпляра контейнера вы можете установить его состояние на ACTIVE, и после достижения этого состояния планировщик Amazon ECS может снова начать планировать задачи на экземпляре.
См. также: Документация AWS API
Синтаксис
update-container-instances-state
[--cluster <value>]
--container-instances <value>
--status <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 (строка)
--container-instances (список)
Список до 10 идентификаторов экземпляров контейнера или полных записей ARN.
(строка)
Синтаксис:
"string" "string" ...
--status (строка)
Состояние экземпляра контейнера, которым нужно обновить экземпляр контейнера. Единственные допустимые значения для этого действия — ACTIVE и DRAINING. Экземпляр контейнера может быть обновлен до состояния DRAINING только после достижения состояния ACTIVE. Если экземпляр контейнера находится в состоянии REGISTERING, DEREGISTERING или REGISTRATION_FAILED, вы можете описать экземпляр контейнера, но не можете обновить состояние экземпляра контейнера.
Возможные значения:
ACTIVEDRAININGREGISTERINGDEREGISTERINGREGISTRATION_FAILED
--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной строки JSON. Строка JSON следует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения, используя предоставленное значение JSON, так как строка будет взята буквально. Это не может быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено значение без значения или значение input, выводится пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, будет напечатан пример входного YAML, который можно использовать с --cli-input-yaml. При предоставлении значения output, он валидирует входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Глобальные параметры
--debug (логическое значение)
Включить отладку.
--endpoint-url (строка)
Переопределить URL по умолчанию команды указанным URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого подключения SSL AWS CLI проверяет сертификаты SSL. Этот параметр переопределяет стандартное поведение проверки сертификатов SSL.
--no-paginate (логическое значение)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования вывода команды.
- json
- текст
- таблица
- yaml
- yaml-потоковый
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из файла учетных данных.
--region (строка)
Использовать определенный регион. Переопределяет настройки конфигурации/среды.
--version (строка)
Показать версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- включено
- выключено
- автоматически
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.
--ca-bundle (строка)
Файл пакета сертификатов CA для проверки SSL-сертификатов. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены в виде строки base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое соответствует двоичному блоку, fileb:// всегда будет обрабатываться как двоичный и будет использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть правильно отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить кли-педжер для вывода.
--cli-auto-prompt (логическое значение)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запрошение параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров вам необходимо установить и настроить AWS CLI. Более подробную информацию см. в руководстве по началу работы в руководстве пользователя AWS CLI.
За исключением случаев, когда указано иное, во всех примерах используются правила цитирования, характерные для Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в руководстве пользователя AWS CLI.
Чтобы обновить состояние экземпляра контейнера
Следующий пример обновляет состояние указанного экземпляра контейнера на DRAINING, что приведет к его удалению из зарегистрированного кластера.
aws ecs update-container-instances-state \
--container-instances 765936fadbdd46b5991a4bd70c2a43d4 \
--status DRAINING
Вывод:
{
"containerInstances": [
{
"containerInstanceArn": "arn:aws:ecs:us-west-2:130757420319:container-instance/default/765936fadbdd46b5991a4bd70c2a43d4",
"ec2InstanceId": "i-013d87ffbb4d513bf",
"version": 4390,
"versionInfo": {
"agentVersion": "1.29.0",
"agentHash": "a190a73f",
"dockerVersion": "DockerVersion:18.06.1-ce"
},
"remainingResources": [
{
"name": "CPU",
"type": "INTEGER",
"doubleValue": 0,
"longValue": 0,
"integerValue": 1536
},
{
"name": "MEMORY",
"type": "INTEGER",
"doubleValue": 0,
"longValue": 0,
"integerValue": 2681
},
{
"name": "PORTS",
"type": "STRINGSET",
"doubleValue": 0,
"longValue": 0,
"integerValue": 0,
"stringSetValue": [
"22",
"2376",
"2375",
"51678",
"51679"
]
},
{
"name": "PORTS_UDP",
"type": "STRINGSET",
"doubleValue": 0,
"longValue": 0,
"integerValue": 0,
"stringSetValue": []
}
],
"registeredResources": [
{
"name": "CPU",
"type": "INTEGER",
"doubleValue": 0,
"longValue": 0,
"integerValue": 2048
},
{
"name": "MEMORY",
"type": "INTEGER",
"doubleValue": 0,
"longValue": 0,
"integerValue": 3705
},
{
"name": "PORTS",
"type": "STRINGSET",
"doubleValue": 0,
"longValue": 0,
"integerValue": 0,
"stringSetValue": [
"22",
"2376",
"2375",
"51678",
"51679"
]
},
{
"name": "PORTS_UDP",
"type": "STRINGSET",
"doubleValue": 0,
"longValue": 0,
"integerValue": 0,
"stringSetValue": []
}
],
"status": "DRAINING",
"agentConnected": true,
"runningTasksCount": 2,
"pendingTasksCount": 0,
"attributes": [
{
"name": "ecs.capability.secrets.asm.environment-variables"
},
{
"name": "ecs.capability.branch-cni-plugin-version",
"value": "e0703516-"
},
{
"name": "ecs.ami-id",
"value": "ami-00e0090ac21971297"
},
{
"name": "ecs.capability.secrets.asm.bootstrap.log-driver"
},
{
"name": "com.amazonaws.ecs.capability.logging-driver.none"
},
{
"name": "ecs.capability.ecr-endpoint"
},
{
"name": "ecs.capability.docker-plugin.local"
},
{
"name": "ecs.capability.task-cpu-mem-limit"
},
{
"name": "ecs.capability.secrets.ssm.bootstrap.log-driver"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.30"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.31"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.32"
},
{
"name": "ecs.availability-zone",
"value": "us-west-2c"
},
{
"name": "ecs.capability.aws-appmesh"
},
{
"name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.24"
},
{
"name": "ecs.capability.task-eni-trunking"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.25"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.26"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.27"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.28"
},
{
"name": "com.amazonaws.ecs.capability.privileged-container"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
},
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
},
{
"name": "com.amazonaws.ecs.capability.ecr-auth"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.20"
},
{
"name": "ecs.os-type",
"value": "linux"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.21"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.22"
},
{
"name": "ecs.capability.task-eia"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.23"
},
{
"name": "ecs.capability.private-registry-authentication.secretsmanager"
},
{
"name": "com.amazonaws.ecs.capability.logging-driver.syslog"
},
{
"name": "com.amazonaws.ecs.capability.logging-driver.json-file"
},
{
"name": "ecs.capability.execution-role-awslogs"
},
{
"name": "ecs.vpc-id",
"value": "vpc-1234"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.17"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
},
{
"name": "ecs.capability.task-eni"
},
{
"name": "ecs.capability.execution-role-ecr-pull"
},
{
"name": "ecs.capability.container-health-check"
},
{
"name": "ecs.subnet-id",
"value": "subnet-1234"
},
{
"name": "ecs.instance-type",
"value": "c5.large"
},
{
"name": "com.amazonaws.ecs.capability.task-iam-role-network-host"
},
{
"name": "ecs.capability.container-ordering"
},
{
"name": "ecs.capability.cni-plugin-version",
"value": "91ccefc8-2019.06.0"
},
{
"name": "ecs.capability.pid-ipc-namespace-sharing"
},
{
"name": "ecs.capability.secrets.ssm.environment-variables"
},
{
"name": "com.amazonaws.ecs.capability.task-iam-role"
}
],
"registeredAt": 1560788724.507,
"attachments": [],
"tags": []
}
],
"failures": []
}
Вывод
containerInstances -> (список)
Список экземпляров контейнеров.
(структура)
Экземпляр Amazon EC2 или внешний экземпляр, на котором запущен агент Amazon ECS и который зарегистрирован в кластере.
containerInstanceArn -> (строка)
ec2InstanceId -> (строка)
capacityProviderName -> (строка)
version -> (целое число)
detail), чтобы убедиться, что версия в вашем потоке событий актуальна.versionInfo -> (структура)
Информация о версии агента Amazon ECS для контейнеров и демона Docker, работающих на экземпляре контейнера.
agentVersion -> (строка)
agentHash -> (строка)
dockerVersion -> (строка)
remainingResources -> (список)
Для ресурсов типа CPU и памяти этот параметр описывает оставшиеся CPU и память, которые еще не были выделены задачам и поэтому доступны для новых задач. Для ресурсов типа порта этот параметр описывает порты, которые были зарезервированы агентом Amazon ECS для контейнеров (во время регистрации экземпляра) и любые контейнеры задач, которые зарезервировали сопоставления портов на хосте (с режимом сети host или bridge). Любой порт, который здесь не указан, доступен для новых задач.
(структура)
Описывает ресурсы, доступные для экземпляра контейнера.
name -> (строка)
CPU , MEMORY , PORTS , PORTS_UDP или пользовательский ресурс.type -> (строка)
INTEGER , DOUBLE , LONG или STRINGSET .doubleValue -> (двойное число)
doubleValue задан, значение ресурса должно быть типом с плавающей запятой двойной точности.longValue -> (целое число)
longValue задан, значение ресурса должно быть типом с плавающей запятой расширенной точности.integerValue -> (целое число)
integerValue задан, значение ресурса должно быть целым числом.stringSetValue -> (список)
Когда тип stringSetValue задан, значение ресурса должно быть строкой.
(строка)
registeredResources -> (список)
Для ресурсов типа CPU и памяти этот параметр описывает количество каждого ресурса, которое было доступно на экземпляре контейнера, когда агент контейнера зарегистрировал его в Amazon ECS. Это значение представляет общее количество CPU и памяти, которое может быть выделено на этом экземпляре контейнера задачам. Для ресурсов типа порта этот параметр описывает порты, которые были зарезервированы агентом Amazon ECS для контейнеров при регистрации экземпляра контейнера в Amazon ECS.
(структура)
Описывает ресурсы, доступные для экземпляра контейнера.
name -> (строка)
CPU , MEMORY , PORTS , PORTS_UDP или пользовательский ресурс.type -> (строка)
INTEGER , DOUBLE , LONG или STRINGSET .doubleValue -> (двойное число)
doubleValue задан, значение ресурса должно быть типом с плавающей запятой двойной точности.longValue -> (целое число)
longValue задан, значение ресурса должно быть типом с плавающей запятой расширенной точности.integerValue -> (целое число)
integerValue задан, значение ресурса должно быть целым числом.stringSetValue -> (список)
Когда тип stringSetValue задан, значение ресурса должно быть строкой.
(строка)
status -> (строка)
Статус экземпляра контейнера. Допустимые значения: REGISTERING , REGISTRATION_FAILED , ACTIVE , INACTIVE , DEREGISTERING или DRAINING .
Если ваша учетная запись подключена к настройке учетной записи awsvpcTrunking, то любой новый зарегистрированный экземпляр контейнера перейдет в состояние REGISTERING, пока виртуальный интерфейс магистрали не будет предоставлен для экземпляра. Если регистрация завершится неудачей, экземпляр перейдет в состояние REGISTRATION_FAILED. Вы можете описать экземпляр контейнера и увидеть причину ошибки в параметре statusReason. После завершения работы экземпляра контейнера экземпляр переходит в состояние DEREGISTERING, пока виртуальный интерфейс магистрали не будет отключен. Затем экземпляр переходит в состояние INACTIVE.
Состояние ACTIVE указывает, что экземпляр контейнера может принимать задачи. Состояние DRAINING указывает, что новые задачи не размещаются на экземпляре контейнера, и любые задачи сервиса, выполняемые на экземпляре контейнера, удаляются, если это возможно. Дополнительную информацию см. в разделе «Отключение экземпляра контейнера» в руководстве разработчика Amazon Elastic Container Service.
statusReason -> (строка)
agentConnected -> (булево)
true, если агент подключен к Amazon ECS. Экземпляр с агентом, который может быть неисправен или остановлен, возвращает значение false. Только экземпляры, подключенные к агенту, могут принимать запросы на размещение задач.runningTasksCount -> (целое число)
desiredStatus) равно RUNNING.pendingTasksCount -> (целое число)
PENDING.agentUpdateStatus -> (строка)
NULL.attributes -> (список)
Атрибуты, заданные для экземпляра контейнера, либо агентом Amazon ECS для контейнеров при регистрации экземпляра, либо вручную с помощью операции PutAttributes.
(структура)
Атрибут — это пара «имя-значение», которая связана с объектом Amazon ECS. Используйте атрибуты, чтобы расширить модель данных Amazon ECS, добавив пользовательские метаданные к вашим ресурсам. Дополнительную информацию см. в разделе «Атрибуты» в руководстве разработчика Amazon Elastic Container Service.
name -> (строка)
name должно содержать от 1 до 128 символов. Имя может содержать буквы (строчные и прописные), цифры, дефисы (-), символы подчеркивания (_), косые черты (/), обратные косые черты (\) или точки (.).value -> (строка)
value должно содержать от 1 до 128 символов. Оно может содержать буквы (строчные и прописные), цифры, дефисы (-), символы подчеркивания (_), точки (.), знаки «@», косые черты (/), обратные косые черты (\), двоеточия (:) или пробелы. Значение не может начинаться или заканчиваться пробелом.targetType -> (строка)
targetId -> (строка)
registeredAt -> (метка времени)
attachments -> (список)
Ресурсы, подключенные к экземпляру контейнера, такие как виртуальный интерфейс.
(структура)
Объект, представляющий подключение экземпляра контейнера или задачи.
id -> (строка)
type -> (строка)
ElasticNetworkInterface , Service Connect и AmazonElasticBlockStorage .status -> (строка)
PRECREATED , CREATED , ATTACHING , ATTACHED , DETACHING , DETACHED , DELETED и FAILED .details -> (список)
Подробности подключения.
Для виртуальных сетевых интерфейсов это включает идентификатор сетевого интерфейса, MAC-адрес, идентификатор подсети и частный IPv4-адрес.
Для служб Service Connect это включает portName , clientAliases , discoveryName и ingressPortOverride .
Для Elastic Block Storage это включает roleArn , deleteOnTermination , volumeName , volumeId и statusReason (только в случае неудачной попытки создания или подключения).
(структура)
Объект пары «ключ-значение».
name -> (строка)
value -> (строка)
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 действует как описание в категории тегов (ключ).healthStatus -> (структура)
Объект, представляющий состояние здоровья экземпляра контейнера.
overallStatus -> (строка)
details -> (список)
Массив объектов, представляющих подробности состояния здоровья экземпляра контейнера.
(структура)
Объект, представляющий результат проверки состояния здоровья экземпляра контейнера.
type -> (строка)
status -> (строка)
lastUpdated -> (метка времени)
lastStatusChange -> (метка времени)
failures -> (список)
Любые ошибки, связанные с вызовом.
(структура)
Неудачный ресурс. Список распространенных причин см. в разделе «Причины ошибок API» в Руководстве разработчика Amazon Elastic Container Service.
arn -> (строка)
reason -> (строка)
detail -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.