Модуль community.aws.ecs_service – Создание, завершение, запуск или остановка сервиса в ECS
Примечание
Этот модуль является частью коллекции community.aws (версия 8.0.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в плейбуке укажите: community.aws.ecs_service.
Новое в community.aws 1.0.0
Описание
- Создаёт или завершает сервисы ECS.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 3.6
- boto3 >= 1.26.0
- botocore >= 1.29.0
Параметры
Параметр | Комментарии |
|---|---|
access_key псевдонимы: aws_access_key_id, aws_access_key, ec2_access_key строка | Идентификатор ключа доступа AWS. См. документацию AWS для получения дополнительной информации о маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут использоваться переменные среды Параметры aws_access_key и profile взаимоисключающие. Псевдоним aws_access_key_id был добавлен в релизе 5.1.0 для соответствия SDK AWS botocore. Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
aws_ca_bundle путь | Расположение пакета CA для проверки сертификатов SSL. Также может использоваться переменная среды |
aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
capacity_provider_strategy список / элементы=словарь добавлено в community.aws 4.0.0 | Стратегия поставщика емкости для использования со службой. Вы можете указать максимум 6 поставщиков на стратегию. По умолчанию: |
|
base целое число |
Минимальное количество задач, которые должны использовать указанного поставщика. |
|
capacity_provider строка |
Имя поставщика емкости. |
|
weight целое число |
Относительный процент от общего числа запускаемых задач, которые должны использовать указанного поставщика. |
client_token строка | Уникальный, чувствительный к регистру идентификатор, который вы предоставляете для обеспечения идемпотентности запроса. Разрешается до 32 ASCII символов. По умолчанию: |
cluster строка | Имя кластера, в котором существует служба. Если не указано, имя кластера будет По умолчанию: |
debug_botocore_endpoint_logs логический | Использовать Также может использоваться переменная среды Допустимые значения:
|
delay целое число | Время ожидания проверки доступности службы. По умолчанию: |
deployment_configuration словарь | Дополнительные параметры, которые контролируют deployment_configuration. Формат — ‘{“maximum_percent”:<целое число>, “minimum_healthy_percent”:<целое число>} По умолчанию: |
|
deployment_circuit_breaker словарь |
Блокировка развертывания определяет, будет ли развертывание службы завершаться ошибкой, если служба не достигнет стабильного состояния. |
|
enable логический |
Если включено, развертывание службы перейдет в состояние ошибки и прекратит запуск новых задач. Допустимые значения:
|
|
rollback логический |
Если включено, ECS откатит вашу службу к последнему завершенному развертыванию после ошибки. Допустимые значения:
|
|
maximum_percent целое число |
Верхний предел количества задач в службе, которые разрешены в состояниях RUNNING или PENDING во время развертывания. |
|
minimum_healthy_percent целое число |
Нижний предел количества задач в службе, которые должны оставаться в состоянии RUNNING во время развертывания. |
deployment_controller dictionary added in community.aws 4.1.0 | Контроллер развертывания для использования в службе. Если контроллер развертывания не указан, используется контроллер ECS. По умолчанию: |
|
type string |
Тип контроллера развертывания для использования. Варианты:
|
desired_count integer | Количество экземпляров службы. Этот параметр требуется, когда state=present. |
enable_execute_command boolean added in community.aws 5.4.0 | Включить или выключить функциональность выполнения команд для контейнеров в задаче ECS. Если enable_execute_command=true, функциональность выполнения команд включена для всех контейнеров в задаче ECS. Варианты:
|
endpoint_url aliases: ec2_url, aws_endpoint_url, s3_url string | URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только с AWS. Также можно использовать переменные окружения Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01. Поддержка переменной окружения |
force_deletion boolean added in community.aws 2.1.0 | Принудительно удалить службу. Требуется при удалении службы с масштабированием >0 или без целевой группы. Варианты:
|
force_new_deployment boolean | Принудительно развернуть службу, даже если изменений нет. Варианты:
|
health_check_grace_period_seconds integer | Секунды ожидания перед проверкой работоспособности недавно добавленных/обновленных служб. |
launch_type string | Тип запуска службы. Варианты:
|
load_balancers list / elements=dictionary | Список ELB, определенных для этой службы. Нагрузчики балансировки для существующей службы не могут быть обновлены, и это ошибка. При контроллере развертывания CODE_DEPLOY изменения этого значения просто игнорируются и не приводят к ошибке. По умолчанию: |
name aliases: service string / обязательно | Имя службы. |
network_configuration dictionary | Конфигурация сети службы. Применимо только для определений задач, созданных с network_mode=awsvpc. |
|
assign_public_ip boolean |
Получит ли эластический сетевой интерфейс задачи общедоступный IP-адрес. Варианты:
|
|
security_groups list / elements=string |
Список имен или ID групп безопасности, которые необходимо связать с задачей. |
|
subnets list / elements=string |
Список идентификаторов подсетей, которые необходимо связать с задачей. |
placement_constraints list / elements=dictionary | Ограничения размещения для задач в службе. Дополнительные сведения см. на странице https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PlacementConstraint.html. По умолчанию: |
|
expression string |
Выражение языка запросов кластера, применяемое к ограничению. |
|
type string |
Тип ограничения. |
placement_strategy список / элементы=словарь | Объекты стратегии размещения для задач в вашем сервисе. Вы можете указать не более 5 правил стратегии на сервис. По умолчанию: |
|
field строка |
Поле для применения стратегии размещения. |
|
type строка |
Тип стратегии размещения. |
platform_version строка добавлено в community.aws 1.5.0 | Числовая часть версии платформы или LATEST См. https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html для получения более подробной информации. |
profile псевдонимы: aws_profile строка | Используемый профиль AWS для аутентификации. См. документацию AWS для получения более подробной информации о профилях https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также может быть использована переменная среды Параметр profile несовместим с параметрами aws_access_key, aws_secret_key и security_token. |
propagate_tags строка добавлено в community.aws 4.1.0 | Распространять теги из определения задачи ECS или сервиса ECS в задачу ECS. Варианты:
|
purge_placement_constraints логическое добавлено в community.aws 5.3.0 | Включить перезапись существующих ограничений размещения. Это необходимо для обратной совместимости. По умолчанию purge_placement_constraints=false. В версии 9.0.0 это будет изменено на purge_placement_constraints=true. Варианты:
|
purge_placement_strategy логическое добавлено в community.aws 5.3.0 | Включить перезапись существующей стратегии размещения. Это необходимо для обратной совместимости. По умолчанию purge_placement_strategy=false. В версии 9.0.0 это будет изменено на purge_placement_strategy=true. Варианты:
|
region псевдонимы: aws_region, ec2_region строка | Регион AWS для использования. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, region игнорируется. Также могут быть использованы переменные среды См. документацию Amazon AWS для получения дополнительной информации http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Псевдоним Поддержка переменной среды |
repeat целое число | Количество попыток проверки доступности сервиса. По умолчанию: |
role строка | Имя или полный Amazon Resource Name (ARN) роли IAM, которая позволяет вашему контейнерному агенту Amazon ECS делать вызовы к вашему балансировщику нагрузки от вашего имени. Этот параметр необходим только если вы используете балансировщик нагрузки с вашим сервисом в режиме сети, отличном от По умолчанию: |
scheduling_strategy строка | Стратегия планирования. По умолчанию Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key, ec2_secret_key строка | Секретный ключ доступа AWS. См. документацию AWS для получения дополнительной информации об маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут быть использованы переменные среды Параметры secret_key и profile взаимоисключают друг друга. Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для обеспечения согласованности с AWS botocore SDK. Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
service_registries список / элементы=словарь | Описывает регистры обнаружения сервиса, с которыми будет регистрироваться этот сервис. По умолчанию: |
|
arn строка |
ARN регистра обнаружения сервиса. |
|
container_name string |
Имя контейнера для регистрации службы обнаружения контейнеров. |
|
container_port integer |
Порт контейнера для регистрации службы обнаружения контейнеров. |
session_token aliases: aws_session_token, security_token, aws_security_token, access_token string | Токен сеанса AWS STS для использования с временными учетными данными. Дополнительную информацию об маркерах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут быть использованы переменные окружения Параметры security_token и profile взаимоисключающие. Алиасы aws_session_token и session_token были добавлены в релизе 3.2.0, при этом параметр был переименован из security_token в session_token в релизе 6.0.0. Алиасы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01. Поддержка переменных среды |
state string / обязательно | Желаемое состояние службы. Выборы:
|
tags словарь добавлено в community.aws 4.1.0 | Словарь тегов для добавления или удаления из ресурса. |
task_definition строка | Определения задачи, которые будет выполнять служба. Этот параметр обязателен, когда state=present, если не указано force_new_deployment=True. Этот параметр игнорируется при обновлении службы с |
validate_certs логическое | Если установлено Установка validate_certs=false категорически не рекомендуется; вместо этого рассмотрите возможность установки aws_ca_bundle. Выбори:
|
wait логическое добавлено в community.aws 4.1.0 | Ожидать ли, пока служба не станет неактивной. Ожидание выполняется только при state Выбори:
|
Примечания
Примечание
- Указанная роль службы должна быть доступна для предположения (т.е. должна иметь соглашение о доверии для службы ecs, ecs.amazonaws.com)
- Подробную информацию о параметрах и возвращаемых значениях см. в https://boto3.readthedocs.io/en/latest/reference/services/ecs.html.
- Должна быть предварительно создана роль IAM.
- Внимание: для модулей переменные окружения и файлы конфигурации считываются из контекста Ansible «хост», а не «контроллер». В связи с этим, файлы могут потребоваться скопировать явно на «хост». Для плагинов поиска и подключения переменные окружения и файлы конфигурации считываются из контекста Ansible «контроллер», а не «хост».
- AWS SDK (boto3), используемый Ansible, также может считывать значения по умолчанию для учетных данных и других параметров, таких как регион, из файлов конфигурации в контексте Ansible «хост» (обычно
~/.aws/credentials). Дополнительную информацию см. в https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
# Basic provisioning example
- community.aws.ecs_service:
state: present
name: console-test-service
cluster: new_cluster
task_definition: 'new_cluster-task:1'
desired_count: 0
- name: create ECS service on VPC network
community.aws.ecs_service:
state: present
name: console-test-service
cluster: new_cluster
task_definition: 'new_cluster-task:1'
desired_count: 0
network_configuration:
subnets:
- subnet-abcd1234
security_groups:
- sg-aaaa1111
- my_security_group
# Simple example to delete
- community.aws.ecs_service:
name: default
state: absent
cluster: new_cluster
# With custom deployment configuration (added in version 2.3), placement constraints and strategy (added in version 2.4)
- community.aws.ecs_service:
state: present
name: test-service
cluster: test-cluster
task_definition: test-task-definition
desired_count: 3
deployment_configuration:
minimum_healthy_percent: 75
maximum_percent: 150
placement_constraints:
- type: memberOf
expression: 'attribute:flavor==test'
placement_strategy:
- type: binpack
field: memory
# With deployment circuit breaker (added in version 4.0)
- community.aws.ecs_service:
state: present
name: test-service
cluster: test-cluster
task_definition: test-task-definition
desired_count: 3
deployment_configuration:
deployment_circuit_breaker:
enable: true
rollback: true
# With capacity_provider_strategy (added in version 4.0)
- community.aws.ecs_service:
state: present
name: test-service
cluster: test-cluster
task_definition: test-task-definition
desired_count: 1
capacity_provider_strategy:
- capacity_provider: test-capacity-provider-1
weight: 1
base: 0
# With tags and tag propagation
- community.aws.ecs_service:
state: present
name: tags-test-service
cluster: new_cluster
task_definition: 'new_cluster-task:1'
desired_count: 1
tags:
Firstname: jane
lastName: doe
propagate_tags: SERVICE
Возвращаемые факты
Факты, возвращаемые этим модулем, добавляются/обновляются в фактах хоста hostvars и могут быть сосланы по имени, как и любой другой факт хоста. Их не нужно регистрировать для использования.
Ключ | Описание |
|---|---|
service complex | Подробная информация об удаленной службе. Возвращено: когда служба существовала и была удалена |
|
clusterArn string |
Универсальное имя ресурса (ARN) кластера, на котором размещается служба. Возвращено: всегда |
|
deploymentConfiguration complex |
словарь deploymentConfiguration Возвращено: всегда |
|
deploymentCircuitBreaker complex |
словарь deploymentCircuitBreaker Возвращено: всегда |
|
enable boolean |
Состояние функции прерывателя цепи. Возвращено: всегда |
|
rollback boolean |
Состояние функции отката прерывателя цепи. Возвращено: всегда |
|
maximumPercent integer |
Параметр maximumPercent Возвращено: всегда |
|
minimumHealthyPercent integer |
Параметр minimumHealthyPercent Возвращено: всегда |
|
deployments list / elements=dictionary |
Список развертываний служб Возвращено: всегда |
|
desiredCount integer |
Требуемое количество экземпляров определения задачи, которые должны постоянно работать в службе. Возвращено: всегда |
|
events list / elements=dictionary |
Список событий службы Возвращено: всегда |
|
loadBalancers complex |
Список объектов балансировщиков нагрузки Возвращено: всегда |
|
containerName string |
Имя контейнера, который нужно связать с балансировщиком нагрузки. Возвращено: всегда |
|
containerPort integer |
Порт в контейнере, который нужно связать с балансировщиком нагрузки. Возвращено: всегда |
|
loadBalancerName string |
имя Возвращено: всегда |
|
pendingCount integer |
Количество задач в кластере, которые находятся в состоянии PENDING. Возвращено: всегда |
|
placementConstraints list / elements=dictionary |
Список объектов ограничений размещения Возвращено: всегда |
|
expression string |
Выражение языка запросов кластера, которое необходимо применить к ограничению. Обратите внимание, что вы не можете указать выражение, если тип ограничения — distinctInstance. Возвращено: всегда |
|
type string |
Тип ограничения. Допустимые значения — distinctInstance и memberOf. Возвращено: всегда |
|
placementStrategy list / elements=dictionary |
Список объектов стратегии размещения Возвращено: всегда |
|
Поле строка |
Поле, к которому применяется стратегия размещения. Для стратегии размещения spread допустимые значения — instanceId (или host, что имеет тот же эффект), или любой атрибут платформы или пользовательский атрибут, применённый к экземпляру контейнера, например, атрибут:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — CPU и MEMORY. Возвращается: всегда |
|
Тип строка |
Тип стратегии размещения. Допустимые значения — random, spread и binpack. Возвращается: всегда |
|
propagateTags строка |
Тип распространения тегов, применяемых к ресурсу. Возвращается: всегда |
|
runningCount целое число |
Количество задач в кластере, находящихся в состоянии RUNNING. Возвращается: всегда |
|
serviceArn строка |
Amazon Resource Name (ARN), определяющий сервис. ARN содержит пространство имён arn:aws:ecs, за которым следует регион сервиса, идентификатор учётной записи AWS владельца сервиса, пространство имён сервиса и затем имя сервиса. Возвращается: всегда Пример: |
|
ИмяСервиса строка |
Строка, сгенерированная пользователем, используемая для идентификации сервиса. Возвращается: всегда |
|
Статус строка |
Допустимые значения — ACTIVE, DRAINING или INACTIVE. Возвращается: всегда |
|
Теги список / элементы=словарь |
Теги, применённые к этому ресурсу. Возвращается: при наличии тегов |
|
taskDefinition строка |
ARN определения задачи, используемого для задач в службе. Возвращается: всегда |
Значения Возврата
Общие значения возврата описаны здесь, ниже приведены поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
service complex | Подробная информация о созданном сервисе. Возвращается: при создании сервиса |
|
capacityProviderStrategy complex added in community.aws 4.0.0 |
Стратегия поставщика емкости для использования с вашим сервисом. Возвращается: всегда |
|
base integer |
Минимальное количество задач, которые должны использовать указанного поставщика. Возвращается: всегда |
|
capacityProvider string |
Имя поставщика емкости. Возвращается: всегда |
|
weight integer |
Относительный процент от общего числа запущенных задач, которые должны использовать указанного поставщика. Возвращается: всегда |
|
clusterArn string |
Универсальное имя ресурса (ARN) кластера, который размещает сервис. Возвращается: всегда |
|
deploymentConfiguration complex |
Словарь deploymentConfiguration Возвращается: всегда |
|
deploymentCircuitBreaker complex |
Словарь deploymentCircuitBreaker Возвращается: всегда |
|
enable boolean |
Состояние функции прерывателя цепи развертывания. Возвращается: всегда |
|
rollback boolean |
Состояние функции отката прерывателя цепи. Возвращается: всегда |
|
maximumPercent integer |
Параметр maximumPercent Возвращается: всегда |
|
minimumHealthyPercent integer |
Параметр minimumHealthyPercent Возвращается: всегда |
|
deployments list / elements=dictionary |
Список развертываний сервиса Возвращается: всегда |
|
desiredCount integer |
Требуемое количество экземпляров определения задачи, которые должны постоянно работать в сервисе. Возвращается: всегда |
|
events list / elements=dictionary |
Список событий сервиса Возвращается: всегда |
|
loadBalancers complex |
Список объектов балансировщиков нагрузки Обновление конфигурации балансировщика нагрузки существующего сервиса требует botocore>=1.24.14. Возвращается: всегда |
|
containerName string |
Имя контейнера, который нужно связать с балансировщиком нагрузки. Возвращается: всегда |
|
containerPort integer |
Порт в контейнере, который нужно связать с балансировщиком нагрузки. Возвращается: всегда |
|
loadBalancerName string |
имя Возвращается: всегда |
|
pendingCount integer |
Количество задач в кластере, которые находятся в состоянии PENDING. Возвращается: всегда |
|
placementConstraints list / elements=dictionary |
Список объектов ограничений размещения Возвращается: всегда |
|
expression string |
Выражение языка запросов кластера для применения к ограничению. Обратите внимание, что вы не можете указать выражение, если тип ограничения — distinctInstance. Возвращается: всегда |
|
type string |
Тип ограничения. Допустимые значения — distinctInstance и memberOf. Возвращается: всегда |
|
placementStrategy list / elements=dictionary |
Список объектов стратегии размещения. Возвращается: всегда |
|
field string |
Поле, к которому применяется стратегия размещения. Для стратегии размещения spread допустимые значения — instanceId (или host, что даёт тот же эффект), или любой платформенный или пользовательский атрибут, применённый к экземпляру контейнера, например, атрибут:ecs.availability-zone. Для стратегии размещения binpack допустимые значения — CPU и MEMORY. Возвращается: всегда |
|
type string |
Тип стратегии размещения. Допустимые значения — random, spread и binpack. Возвращается: всегда |
|
propagateTags string |
Тип распространения тегов, применяемых к ресурсу. Возвращается: всегда |
|
runningCount integer |
Количество задач в кластере, находящихся в состоянии RUNNING. Возвращается: всегда |
|
serviceArn string |
Amazon Resource Name (ARN), идентифицирующий сервис. ARN содержит Возвращается: всегда Пример: |
|
serviceName string |
Строка, введённая пользователем, используемая для идентификации сервиса Возвращается: всегда |
|
status string |
Допустимые значения: ACTIVE, DRAINING или INACTIVE. Возвращается: всегда |
|
tags dictionary |
Применённые к этому ресурсу теги. Возвращается: успех |
|
taskDefinition string |
ARN определения задачи для использования в задачах сервиса. Возвращается: всегда |
Ссылки на коллекции
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/ecs_service_module.html