Spec-Zone.ru › Ansible

Модуль google.cloud.gcp_compute_backend_service — создание BackendService в GCP

Примечание

Этот модуль входит в коллекцию google.cloud (версия 1.13.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install google.cloud. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: google.cloud.gcp_compute_backend_service.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Backend Service определяет группу виртуальных машин, которая будет обрабатывать трафик при балансировке нагрузки. Этот ресурс представляет собой глобальную службу backend, подходящую для внешней балансировки нагрузки или самостоятельно управляемой внутренней балансировки нагрузки.
  • Для управляемой внутренней балансировки нагрузки используйте региональную службу backend.
  • В настоящее время самостоятельно управляемая внутренняя балансировка нагрузки доступна только в бета-версии.

Требования

На хосте, где выполняется этот модуль, должны быть установлены следующие компоненты.

  • python >= 2.6
  • requests >= 2.18.4
  • google-auth >= 1.3.0

Параметры

Параметр

Комментарии

access_token

string

Токен доступа OAuth2, если тип учетных данных — accesstoken.

affinity_cookie_ttl_sec

integer

Срок действия файлов cookie в секундах, если для session_affinity задано значение GENERATED_COOKIE. Если задано значение 0, файл cookie не является постоянным и действует только до окончания сеанса браузера (или аналогичного сеанса). Максимально допустимое значение TTL составляет один день.

Это поле не используется, если схема балансировки нагрузки — INTERNAL.

auth_kind

string / обязательный

Тип используемых учетных данных.

Варианты:

  • "application"
  • "machineaccount"
  • "serviceaccount"
  • "accesstoken"

backends

list / elements=dictionary

Набор серверных компонентов, обслуживающих этот BackendService.

balancing_mode

string

Указывает режим балансировки для этого серверного компонента.

Для глобальной балансировки нагрузки HTTP(S) или TCP/SSL по умолчанию используется UTILIZATION. Допустимые значения: UTILIZATION, RATE (для HTTP(S)) и CONNECTION (для TCP/SSL).

Некоторые допустимые варианты: «UTILIZATION», «RATE», «CONNECTION»

По умолчанию: "UTILIZATION"

capacity_scaler

string

Множитель, применяемый к максимальной обслуживающей способности группы (на основе UTILIZATION, RATE или CONNECTION).

Значение по умолчанию — 1, что означает, что группа будет использовать до 100% настроенной емкости (в зависимости от balancingMode). Значение 0 означает, что группа полностью выведена из обслуживания и предоставляет 0% доступной емкости. Допустимый диапазон: [0.0,1.0].

По умолчанию: "1"

description

string

Необязательное описание этого ресурса.

Укажите это свойство при создании ресурса.

group

string / обязательный

Полный URL ресурса Instance Group или Network Endpoint Group. Для группы экземпляров он определяет список экземпляров, обрабатывающих трафик. Виртуальные машины — участники каждой группы экземпляров — должны находиться в той же зоне, что и сама группа экземпляров. Два серверных компонента одной службы не могут использовать один и тот же ресурс Instance Group.

Для Network Endpoint Groups это поле определяет список конечных точек. Все конечные точки Network Endpoint Group должны размещаться на экземплярах, находящихся в той же зоне, что и Network Endpoint Group.

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

Обратите внимание: ресурс Instance Group или Network Endpoint Group необходимо указывать с помощью полного URL, а не его части.

max_connections

integer

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

Для режима CONNECTION необходимо задать maxConnections либо maxConnectionsPerInstance или maxConnectionsPerEndpoint — в зависимости от типа группы.

max_connections_per_endpoint

integer

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

Для режима CONNECTION необходимо задать maxConnections или maxConnectionsPerEndpoint.

max_connections_per_instance

integer

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

Для режима CONNECTION необходимо задать maxConnections или maxConnectionsPerInstance.

max_rate

integer

Максимальное число запросов в секунду (RPS) для группы.

Можно использовать в режимах балансировки RATE или UTILIZATION; для режима RATE это поле обязательно. Для режима RATE необходимо задать maxRate либо maxRatePerInstance или maxRatePerEndpoint — в зависимости от типа группы.

max_rate_per_endpoint

string

Максимальное число запросов в секунду (RPS), которое может обрабатывать одна сетевая конечная точка серверной части. Используется для расчета емкости группы. Можно использовать в любом режиме балансировки. Для режима RATE необходимо задать maxRate или maxRatePerEndpoint.

max_rate_per_instance

string

Максимальное число запросов в секунду (RPS), которое может обрабатывать один экземпляр серверной части. Используется для расчета емкости группы. Можно использовать в любом режиме балансировки. Для режима RATE необходимо задать maxRate или maxRatePerInstance.

max_utilization

string

Используется, если для balancingMode задано значение UTILIZATION. Этот коэффициент задает целевой уровень загрузки ЦП для группы. Допустимый диапазон: [0.0, 1.0].

cdn_policy

dictionary

Конфигурация Cloud CDN для этого BackendService.

cache_key_policy

dictionary

Политика CacheKeyPolicy для этой CdnPolicy.

include_host

boolean

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

Варианты:

  • false
  • true

include_protocol

boolean

Если значение равно true, запросы http и https будут кэшироваться отдельно.

Варианты:

  • false
  • true

include_query_string

boolean

Если значение равно true, параметры строки запроса включаются в ключ кэша в соответствии с query_string_whitelist и query_string_blacklist. Если ни один из этих параметров не задан, будет включена вся строка запроса.

Если значение равно false, строка запроса полностью исключается из ключа кэша.

Варианты:

  • false
  • true

query_string_blacklist

list / elements=string

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

Все остальные параметры будут включены. Укажите query_string_whitelist или query_string_blacklist, но не оба сразу.

Символы ‘&’ и ‘=’ будут закодированы в формате percent encoding и не будут считаться разделителями.

query_string_whitelist

list / elements=string

Названия параметров строки запроса, которые следует включить в ключи кэша.

Все остальные параметры будут исключены. Укажите query_string_whitelist или query_string_blacklist, но не оба сразу.

Символы ‘&’ и ‘=’ будут закодированы в формате percent encoding и не будут считаться разделителями.

cache_mode

string

Задает параметры кэширования для всех ответов от этой серверной части.

Возможные значения: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL и CACHE_ALL_STATIC .

Некоторые допустимые варианты: «USE_ORIGIN_HEADERS», «FORCE_CACHE_ALL», «CACHE_ALL_STATIC»

client_ttl

integer

Задает максимально допустимый TTL для кэшированного содержимого, предоставляемого этим источником.

default_ttl

integer

Задает TTL по умолчанию для кэшированного содержимого, предоставляемого этим источником, для ответов без существующего действительного TTL (max-age или s-max-age).

max_ttl

integer

Задает максимально допустимый TTL для кэшированного содержимого, предоставляемого этим источником.

negative_caching

boolean

Отрицательное кэширование позволяет задавать TTL для отдельных кодов состояния, обеспечивая более точное кэширование распространенных ошибок и перенаправлений.

Варианты:

  • false
  • true

negative_caching_policy

list / elements=dictionary

Задает TTL кэша для указанного кода состояния HTTP. Для настройки negativeCachingPolicy необходимо включить negativeCaching.

Если не указывать политику, оставив negativeCaching включенным, будут использоваться значения TTL кэша Cloud CDN по умолчанию.

code

integer

Код состояния HTTP, для которого задается TTL. В качестве значений можно указывать только коды состояния HTTP 300, 301, 308, 404, 405, 410, 421, 451 и 501. Один и тот же код состояния нельзя указывать более одного раза.

ttl

integer

TTL (в секундах), в течение которого кэшируются ответы с соответствующим кодом состояния. Максимально допустимое значение — 1800 с (30 минут); при этом редко используемые объекты могут быть удалены из кэша до истечения заданного TTL.

serve_while_stale

integer

Предоставлять имеющееся содержимое из кэша (если оно доступно) во время повторной проверки содержимого у источника или при возникновении ошибки при обновлении кэша.

signed_url_cache_max_age_sec

integer

Максимальное число секунд, в течение которых ответ на запрос с подписанным URL считается актуальным; значение по умолчанию — 1 час (3600 с). По истечении этого времени ответ будет повторно проверен перед предоставлением.

При предоставлении ответов на запросы с подписанным URL Cloud CDN внутренне обрабатывает ответы от этой серверной части так, как если бы все они содержали заголовок «Cache-Control: public, max-age=[TTL]», независимо от наличия любого заголовка Cache-Control. Фактически отправляемые в ответах заголовки не изменяются.

По умолчанию: 3600

circuit_breakers

dictionary

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

max_connections

integer

Максимальное число подключений к кластеру серверной части.

По умолчанию — 1024.

По умолчанию: 1024

max_pending_requests

integer

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

По умолчанию — 1024.

По умолчанию: 1024

max_requests

integer

Максимальное число параллельных запросов к кластеру серверной части.

По умолчанию — 1024.

По умолчанию: 1024

max_requests_per_connection

integer

Максимальное число запросов для одного подключения к серверной части. Этот параметр учитывается реализациями HTTP/1.1 и HTTP/2. Если он не задан, ограничение отсутствует. Если задать для этого параметра значение 1, поддержание подключения фактически будет отключено.

max_retries

integer

Максимальное число параллельных повторных попыток запроса к кластеру серверной части.

По умолчанию — 3.

По умолчанию: 3

connection_draining

dictionary

Параметры для постепенного отключения подключений.

draining_timeout_sec

integer

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

По умолчанию: 300

consistent_hash

dictionary

Балансировку нагрузки на основе согласованного хеширования можно использовать для обеспечения мягкой привязки сеанса на основе заголовков HTTP, файлов cookie и других свойств. Эта политика балансировки нагрузки применима только к HTTP-подключениям. Привязка к определенному целевому хосту будет утрачена при добавлении или удалении одного или нескольких хостов из целевой службы. В этом поле задаются параметры управления согласованным хешированием. Это поле применяется только в том случае, если для load_balancing_scheme задано значение INTERNAL_SELF_MANAGED. Это поле применимо только в том случае, если для locality_lb_policy задано значение MAGLEV или RING_HASH.

http_cookie

dictionary

Хеширование выполняется на основе файла cookie HTTP. В этом поле описывается файл cookie HTTP, который будет использоваться в качестве ключа хеширования для балансировщика нагрузки с согласованным хешированием. Если файл cookie отсутствует, он будет создан.

Это поле применимо, если для sessionAffinity задано значение HTTP_COOKIE.

name

string

Имя файла cookie.

path

string

Путь, который будет задан для файла cookie.

ttl

dictionary

Срок действия файла cookie.

nanos

integer

Промежуток времени, заданный долей секунды с наносекундной точностью. Длительности менее одной секунды представляются полем seconds со значением 0 и положительным значением поля nanos. Значение должно быть в диапазоне от 0 до 999,999,999 включительно.

seconds

integer / обязательный

Промежуток времени с точностью до секунды.

Значение должно быть в диапазоне от 0 до 315,576,000,000 включительно.

http_header_name

string

Хеширование на основе значения указанного поля заголовка.

Это поле применимо, если для sessionAffinity задано значение HEADER_FIELD.

minimum_ring_size

integer

Минимальное число виртуальных узлов для кольца хеширования.

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

По умолчанию — 1024.

По умолчанию: 1024

custom_request_headers

list / elements=string

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

custom_response_headers

list / elements=string

Заголовки, которые балансировщик нагрузки HTTP/S должен добавлять к ответам прокси-сервера.

description

string

Необязательное описание этого ресурса.

enable_cdn

boolean

Если значение true, включить Cloud CDN для этого BackendService.

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

  • false
  • true

env_type

string

Указывает, в какой среде Ansible выполняется этот модуль.

Не задавайте это значение, если не знаете, что делаете.

Это изменяет только строку User Agent для любых запросов API.

fingerprint

string

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

health_checks

list / elements=string

Набор URL-адресов ресурсов HttpHealthCheck или HttpsHealthCheck для проверки работоспособности этого BackendService. В настоящее время можно указать не более одной проверки работоспособности.

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

Для внутренней балансировки нагрузки вместо этого необходимо указать URL-адрес ресурса HealthCheck.

iap

dictionary

Настройки для включения Cloud Identity-Aware Proxy.

enabled

boolean

Включает IAP.

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

  • false
  • true

oauth2_client_id

string / обязательный

Идентификатор клиента OAuth2 для IAP.

oauth2_client_secret

string / обязательный

Секрет клиента OAuth2 для IAP.

load_balancing_scheme

string

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

Некоторые допустимые значения: «EXTERNAL», «INTERNAL_SELF_MANAGED»

Значение по умолчанию: "EXTERNAL"

locality_lb_policy

string

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

Возможные значения: * ROUND_ROBIN — простая политика, при которой каждый работоспособный бэкенд выбирается по очереди.

* LEAST_REQUEST — алгоритм выбирает два случайных работоспособных узла и направляет запрос на узел с меньшим количеством активных запросов.

* RING_HASH — балансировщик нагрузки с хешированием по кольцу/модулю реализует согласованное хеширование для бэкендов. Алгоритм обладает свойством, при котором добавление или удаление узла из набора N узлов влияет только на 1/N запросов.

* RANDOM — балансировщик нагрузки выбирает случайный работоспособный узел.

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

* MAGLEV — используется как прямая замена балансировщику нагрузки с хешированием по кольцу.

Maglev менее стабилен, чем хеширование по кольцу, но обеспечивает более быстрое построение таблиц поиска и выбор узлов. Дополнительные сведения о Maglev см. по адресу https://ai.google/research/pubs/pub44824. Это поле применяется только в том случае, если для load_balancing_scheme задано значение INTERNAL_SELF_MANAGED.

Некоторые допустимые значения: «ROUND_ROBIN», «LEAST_REQUEST», «RING_HASH», «RANDOM», «ORIGINAL_DESTINATION», «MAGLEV»

log_config

dictionary

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

Если ведение журналов включено, журналы будут экспортироваться в Stackdriver.

enable

boolean

Включает ли ведение журналов трафика балансировщика нагрузки, обслуживаемого этой службой бэкенда.

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

  • false
  • true

sample_rate

string

Это поле можно указать только в том случае, если для этой службы бэкенда включено ведение журналов. Значение поля должно находиться в диапазоне [0, 1]. Здесь задается частота выборки запросов к балансировщику нагрузки: значение 1.0 означает, что регистрируются все запросы, а значение 0.0 — что не регистрируется ни один запрос.

Значение по умолчанию — 1.0.

name

string / обязательный

Имя ресурса. Указывается клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, которым не может быть дефис.

outlier_detection

dictionary

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

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

base_ejection_time

dictionary

Базовое время исключения узла. Фактическое время равно базовому времени, умноженному на количество исключений этого узла. Значение по умолчанию — 30000 мс или 30 с.

nanos

integer

Длительность времени, составляющая долю секунды с точностью до наносекунды. Длительности менее одной секунды представляются полем `seconds` со значением 0 и положительным значением поля `nanos`. Значение должно быть в диапазоне от 0 до 999,999,999 включительно.

seconds

integer / обязательный

Длительность времени с точностью до секунды. Значение должно быть в диапазоне от 0 до 315,576,000,000 включительно.

consecutive_errors

integer

Количество ошибок, после которого узел исключается из пула соединений. При обращении к узлу бэкенда по HTTP код ответа 5xx считается ошибкой.

Значение по умолчанию — 5.

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

consecutive_gateway_failure

integer

Количество последовательных сбоев шлюза (статус 502, 503 или 504 либо ошибки соединения, сопоставленные одному из этих кодов состояния), после которого происходит исключение узла из-за последовательных сбоев шлюза. Значение по умолчанию — 5.

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

enforcing_consecutive_errors

integer

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

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

enforcing_consecutive_gateway_failure

integer

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

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

enforcing_success_rate

integer

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

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

interval

dictionary

Интервал времени между проверками для анализа исключения узлов. В результате могут исключаться новые узлы, а ранее исключенные узлы могут возвращаться к работе. Значение по умолчанию — 10 секунд.

nanos

integer

Длительность времени, составляющая долю секунды с точностью до наносекунды. Длительности менее одной секунды представляются полем `seconds` со значением 0 и положительным значением поля `nanos`. Значение должно быть в диапазоне от 0 до 999,999,999 включительно.

seconds

integer / обязательный

Длительность времени с точностью до секунды. Значение должно быть в диапазоне от 0 до 315,576,000,000 включительно.

max_ejection_percent

integer

Максимальный процент узлов в пуле балансировки нагрузки службы бэкенда, которые могут быть исключены. Значение по умолчанию — 10%.

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

success_rate_minimum_hosts

integer

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

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

success_rate_request_volume

integer

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

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

success_rate_stdev_factor

integer

Этот коэффициент используется для определения порога исключения узла при обнаружении аномалий по показателю успешности. Порог исключения — это разница между средним показателем успешности и произведением этого коэффициента на стандартное отклонение среднего показателя успешности: mean - (stdev * success_rate_stdev_factor). Чтобы получить число с плавающей точкой, этот коэффициент делится на тысячу. Например, если требуемый коэффициент равен 1.9, в среде выполнения следует указать значение 1900. Значение по умолчанию — 1900.

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

port_name

string

Имя порта бэкенда. Такое же имя должно присутствовать в группах экземпляров, на которые ссылается эта служба. Обязательно, если схема балансировки нагрузки — EXTERNAL.

project

string

Проект Google Cloud Platform, который следует использовать.

protocol

string

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

По умолчанию используется HTTP. **ПРИМЕЧАНИЕ**: HTTP2 допустим только для бета-версий типов балансировщиков нагрузки HTTP/2 и может приводить к ошибкам при использовании с API GA.

Некоторые допустимые значения: «HTTP», «HTTPS», «HTTP2», «TCP», «SSL», «GRPC»

scopes

list / elements=string

Массив используемых областей доступа

security_policy

string

Политика безопасности, связанная с этой службой бэкенда.

service_account_contents

jsonarg

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

service_account_email

string

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

service_account_file

path

Путь к JSON-файлу учетной записи службы, если в качестве типа выбрано serviceaccount.

session_affinity

string

Тип привязки сеанса. По умолчанию — NONE. Привязка сеанса не применяется, если используется протокол UDP.

Некоторые допустимые значения: «NONE», «CLIENT_IP», «CLIENT_IP_PORT_PROTO», «CLIENT_IP_PROTO», «GENERATED_COOKIE», «HEADER_FIELD», «HTTP_COOKIE»

state

string

Должен ли указанный объект существовать в GCP

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

  • "present" ← (по умолчанию)
  • "absent"

timeout_sec

псевдонимы: timeout_seconds

integer

Сколько секунд ожидать ответа от бэкенда, прежде чем считать запрос неудачным. Значение по умолчанию — 30 секунд. Допустимый диапазон — [1, 86400].

Примечания

Примечание

  • Справочник API: https://cloud.google.com/compute/docs/reference/v1/backendServices
  • Официальная документация: https://cloud.google.com/compute/docs/load-balancing/http/backend-service
  • Для аутентификации можно задать service_account_file с помощью переменной среды GCP_SERVICE_ACCOUNT_FILE.
  • Для аутентификации можно задать service_account_contents с помощью переменной среды GCP_SERVICE_ACCOUNT_CONTENTS.
  • Для аутентификации можно задать service_account_email с помощью переменной среды GCP_SERVICE_ACCOUNT_EMAIL.
  • Для аутентификации можно задать access_token с помощью переменной среды GCP_ACCESS_TOKEN.
  • Для аутентификации можно задать auth_kind с помощью переменной среды GCP_AUTH_KIND.
  • Для аутентификации можно задать scopes с помощью переменной среды GCP_SCOPES.
  • Значения переменных среды используются, только если значения не заданы в сценарии.
  • Параметры service_account_email и service_account_file являются взаимоисключающими.

Примеры

- name: create a instance group
  google.cloud.gcp_compute_instance_group:
    name: instancegroup-backendservice
    zone: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: instancegroup

- name: create a HTTP health check
  google.cloud.gcp_compute_http_health_check:
    name: httphealthcheck-backendservice
    healthy_threshold: 10
    port: 8080
    timeout_sec: 2
    unhealthy_threshold: 5
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: healthcheck

- name: create a backend service
  google.cloud.gcp_compute_backend_service:
    name: test_object
    backends:
    - group: "{{ instancegroup.selfLink }}"
    health_checks:
    - "{{ healthcheck.selfLink }}"
    enable_cdn: 'true'
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

affinityCookieTtlSec

integer

Срок действия файлов cookie в секундах, если session_affinity имеет значение GENERATED_COOKIE. Если установлено значение 0, файл cookie не является постоянным и действует только до конца сеанса браузера (или аналогичного периода). Максимально допустимое значение TTL — один день.

Если схема балансировки нагрузки имеет значение INTERNAL, это поле не используется.

Возвращается: при успехе

backends

complex

Набор серверных частей, обслуживающих этот BackendService.

Возвращается: при успехе

balancingMode

string

Задает режим балансировки для этой серверной части.

Для глобальной балансировки нагрузки HTTP(S) или TCP/SSL по умолчанию используется UTILIZATION. Допустимые значения: UTILIZATION, RATE (для HTTP(S)) и CONNECTION (для TCP/SSL).

Возвращается: при успехе

capacityScaler

string

Множитель, применяемый к максимальной пропускной способности группы (на основе UTILIZATION, RATE или CONNECTION).

Значение по умолчанию — 1, что означает, что группа будет обслуживать нагрузку до 100% настроенной емкости (в зависимости от balancingMode). Значение 0 означает, что группа полностью выведена из обслуживания и не использует доступную емкость. Допустимый диапазон: [0.0,1.0].

Возвращается: при успехе

description

string

Необязательное описание этого ресурса.

Укажите это свойство при создании ресурса.

Возвращается: при успехе

group

string

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

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

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

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

Возвращается: при успехе

maxConnections

integer

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

Для режима CONNECTION необходимо задать либо maxConnections, либо maxConnectionsPerInstance или maxConnectionsPerEndpoint — в зависимости от типа группы.

Возвращается: при успехе

maxConnectionsPerEndpoint

integer

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

Для режима CONNECTION необходимо задать либо maxConnections, либо maxConnectionsPerEndpoint.

Возвращается: при успехе

maxConnectionsPerInstance

integer

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

Для режима CONNECTION необходимо задать либо maxConnections, либо maxConnectionsPerInstance.

Возвращается: при успехе

maxRate

integer

Максимальное количество запросов в секунду (RPS) для группы.

Можно использовать в режимах балансировки RATE или UTILIZATION, но для режима RATE это значение обязательно. Для режима RATE необходимо задать либо maxRate, либо maxRatePerInstance или maxRatePerEndpoint — в зависимости от типа группы.

Возвращается: при успехе

maxRatePerEndpoint

string

Максимальное количество запросов в секунду (RPS), которое может обработать одна сетевая конечная точка серверной части. Это значение используется для вычисления емкости группы. Можно использовать в любом режиме балансировки. Для режима RATE необходимо задать либо maxRate, либо maxRatePerEndpoint.

Возвращается: при успехе

maxRatePerInstance

string

Максимальное количество запросов в секунду (RPS), которое может обработать один экземпляр серверной части. Это значение используется для вычисления емкости группы. Можно использовать в любом режиме балансировки. Для режима RATE необходимо задать либо maxRate, либо maxRatePerInstance.

Возвращается: при успехе

maxUtilization

string

Используется, когда balancingMode имеет значение UTILIZATION. Это отношение задает целевое использование ЦП для группы. Допустимый диапазон: [0.0, 1.0].

Возвращается: при успехе

cdnPolicy

complex

Конфигурация Cloud CDN для этого BackendService.

Возвращается: при успехе

cacheKeyPolicy

complex

Политика CacheKeyPolicy для этой CdnPolicy.

Возвращается: при успехе

includeHost

boolean

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

Возвращается: при успехе

includeProtocol

boolean

Если значение true, запросы HTTP и HTTPS будут кэшироваться отдельно.

Возвращается: при успехе

includeQueryString

boolean

Если значение true, параметры строки запроса включаются в ключ кэша в соответствии с query_string_whitelist и query_string_blacklist. Если ни один из этих параметров не задан, в ключ включается вся строка запроса.

Если значение false, строка запроса полностью исключается из ключа кэша.

Возвращается: при успехе

queryStringBlacklist

list / elements=string

Имена параметров строки запроса, которые следует исключить из ключей кэша.

Все остальные параметры будут включены. Укажите либо query_string_whitelist, либо query_string_blacklist, но не оба параметра одновременно.

Символы ‘&’ и ‘=’ будут закодированы в процентах и не будут рассматриваться как разделители.

Возвращается: при успехе

queryStringWhitelist

list / elements=string

Имена параметров строки запроса, которые следует включить в ключи кэша.

Все остальные параметры будут исключены. Укажите либо query_string_whitelist, либо query_string_blacklist, но не оба параметра одновременно.

Символы ‘&’ и ‘=’ будут закодированы в процентах и не будут рассматриваться как разделители.

Возвращается: при успехе

cacheMode

string

Задает параметры кэширования для всех ответов от этой серверной части.

Возможные значения: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL и CACHE_ALL_STATIC .

Возвращается: при успехе

clientTtl

integer

Задает максимально допустимый TTL для кэшированного содержимого, предоставляемого этим источником.

Возвращается: при успехе

defaultTtl

integer

Задает TTL по умолчанию для кэшированного содержимого, предоставляемого этим источником, в ответах, для которых не задан действующий TTL (max-age или s-max-age).

Возвращается: при успехе

maxTtl

integer

Задает максимально допустимый TTL для кэшированного содержимого, предоставляемого этим источником.

Возвращается: при успехе

negativeCaching

boolean

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

Возвращается: при успехе

negativeCachingPolicy

complex

Задает TTL кэша для указанного кода состояния HTTP. Для настройки negativeCachingPolicy необходимо включить negativeCaching.

Если не указывать политику, но оставить negativeCaching включенным, будут использоваться TTL кэша Cloud CDN по умолчанию.

Возвращается: при успехе

code

integer

Код состояния HTTP, для которого задается TTL. В качестве значений можно указывать только коды состояния HTTP 300, 301, 308, 404, 405, 410, 421, 451 и 501. Каждый код состояния можно указать только один раз.

Возвращается: при успехе

ttl

integer

TTL (в секундах), в течение которого кэшируются ответы с соответствующим кодом состояния. Максимально допустимое значение — 1800 с (30 минут); при этом редко используемые объекты могут быть удалены из кэша до истечения заданного TTL.

Возвращается: при успехе

serveWhileStale

integer

Предоставлять уже имеющееся в кэше содержимое (если оно доступно) во время его проверки у источника или при возникновении ошибки при обновлении кэша.

Возвращается: при успехе

signedUrlCacheMaxAgeSec

integer

Максимальное количество секунд, в течение которого ответ на запрос с подписанным URL считается свежим. По умолчанию — 1 час (3600 с). По истечении этого периода ответ будет проверен повторно перед отправкой.

При отправке ответов на запросы с подписанным URL Cloud CDN будет внутренне обрабатывать все ответы от этой серверной части так, как если бы они содержали заголовок «Cache-Control: public, max-age=[TTL]», независимо от имеющихся заголовков Cache-Control. Фактические заголовки в отправляемых ответах изменяться не будут.

Возвращается: при успехе

circuitBreakers

complex

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

Возвращается: при успехе

maxConnections

integer

Максимальное количество подключений к кластеру серверной части.

По умолчанию — 1024.

Возвращается: при успехе

maxPendingRequests

integer

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

По умолчанию — 1024.

Возвращается: при успехе

maxRequests

integer

Максимальное количество параллельных запросов к кластеру серверной части.

По умолчанию — 1024.

Возвращается: при успехе

maxRequestsPerConnection

integer

Максимальное количество запросов для одного подключения к серверной части. Этот параметр применяется как в реализации HTTP/1.1, так и в реализации HTTP/2. Если значение не задано, ограничение отсутствует. Значение 1 фактически отключает постоянное соединение.

Возвращается: при успехе

maxRetries

integer

Максимальное количество параллельных повторных попыток для кластера серверной части.

По умолчанию — 3.

Возвращается: при успехе

connectionDraining

complex

Параметры плавного отключения подключений.

Возвращается: при успехе

drainingTimeoutSec

integer

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

Возвращается: при успехе

consistentHash

complex

Балансировку нагрузки на основе согласованного хэширования можно использовать для обеспечения мягкой привязки сеанса на основе заголовков HTTP, файлов cookie или других свойств. Эта политика балансировки нагрузки применяется только к HTTP-подключениям. Привязка к определенному целевому хосту теряется при добавлении или удалении одного или нескольких хостов из целевой службы. Это поле задает параметры управления согласованным хэшированием. Поле применяется только в том случае, если для load_balancing_scheme задано значение INTERNAL_SELF_MANAGED. Поле применяется только при значении MAGLEV или RING_HASH для locality_lb_policy.

Возвращается: при успехе

httpCookie

complex

Хэш основывается на файле cookie HTTP. В этом поле описывается файл cookie HTTP, который будет использоваться в качестве ключа хэширования для балансировщика нагрузки с согласованным хэшированием. Если файл cookie отсутствует, он будет создан.

Это поле применяется, если для sessionAffinity задано значение HTTP_COOKIE.

Возвращается: при успехе

name

string

Имя файла cookie.

Возвращается: при успехе

path

string

Путь, который будет задан для файла cookie.

Возвращается: при успехе

ttl

complex

Срок действия файла cookie.

Возвращается: при успехе

nanos

integer

Промежуток времени, составляющий долю секунды и заданный с точностью до наносекунд. Длительности менее одной секунды представляются полем seconds со значением 0 и положительным значением поля nanos. Значение должно находиться в диапазоне от 0 до 999,999,999 включительно.

Возвращается: при успехе

seconds

integer

Промежуток времени с точностью до секунды.

Значение должно находиться в диапазоне от 0 до 315,576,000,000 включительно.

Возвращается: при успехе

httpHeaderName

string

Хэш основывается на значении указанного поля заголовка.

Это поле применяется, если для sessionAffinity задано значение HEADER_FIELD.

Возвращается: при успехе

minimumRingSize

integer

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

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

По умолчанию — 1024.

Возвращается: успешно

creationTimestamp

string

Временная метка создания в текстовом формате RFC3339.

Возвращается: успешно

customRequestHeaders

list / elements=string

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

Возвращается: успешно

customResponseHeaders

list / elements=string

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

Возвращается: успешно

description

string

Необязательное описание этого ресурса.

Возвращается: успешно

enableCDN

boolean

Если значение равно true, включить Cloud CDN для этой службы BackendService.

Возвращается: успешно

fingerprint

string

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

Возвращается: успешно

healthChecks

list / elements=string

Набор URL-адресов ресурсов HttpHealthCheck или HttpsHealthCheck для проверки состояния этой службы BackendService. В настоящее время можно указать не более одной проверки состояния.

Проверка состояния обязательна, если служба backend не использует в качестве backend интернет- или бессерверный NEG.

Для внутренней балансировки нагрузки вместо этого необходимо указать URL-адрес ресурса HealthCheck.

Возвращается: успешно

iap

complex

Параметры включения Cloud Identity-Aware Proxy.

Возвращается: успешно

enabled

boolean

Включает IAP.

Возвращается: успешно

oauth2ClientId

string

Идентификатор клиента OAuth2 для IAP.

Возвращается: успешно

oauth2ClientSecret

string

Секрет клиента OAuth2 для IAP.

Возвращается: успешно

oauth2ClientSecretSha256

string

Хеш SHA-256 секрета клиента OAuth2 для IAP.

Возвращается: успешно

id

integer

Уникальный идентификатор ресурса.

Возвращается: успешно

loadBalancingScheme

string

Указывает, будет ли служба backend использоваться для внутренней или внешней балансировки нагрузки. Службу backend, созданную для одного типа балансировки нагрузки, нельзя использовать с другим типом.

Возвращается: успешно

localityLbPolicy

string

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

Возможные значения: * ROUND_ROBIN — простая политика, при которой каждый работоспособный backend выбирается по очереди.

* LEAST_REQUEST — алгоритм, который выбирает два случайных работоспособных хоста и отдает предпочтение хосту с меньшим количеством активных запросов.

* RING_HASH — балансировщик нагрузки с хешированием по кольцу/модулю реализует согласованное хеширование для backend-серверов. Алгоритм обладает свойством: добавление или удаление хоста из набора из N хостов влияет только на 1/N запросов.

* RANDOM — балансировщик нагрузки выбирает случайный работоспособный хост.

* ORIGINAL_DESTINATION — backend-хост выбирается на основе метаданных подключения клиента; то есть соединения открываются с тем же адресом, что и адрес назначения входящего соединения до его перенаправления на балансировщик нагрузки.

* MAGLEV — используется как прямая замена балансировщика нагрузки с хешированием по кольцу.

Maglev менее стабилен, чем хеширование по кольцу, но быстрее строит таблицу и выбирает хосты. Дополнительную информацию о Maglev см. в https://ai.google/research/pubs/pub44824. Это поле применимо только в том случае, если для load_balancing_scheme задано значение INTERNAL_SELF_MANAGED.

Возвращается: успешно

logConfig

complex

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

Если ведение журналов включено, журналы будут экспортироваться в Stackdriver.

Возвращается: успешно

enable

boolean

Определяет, включено ли ведение журналов для трафика балансировщика нагрузки, обслуживаемого этой службой backend.

Возвращается: успешно

sampleRate

string

Это поле можно указать, только если для этой службы backend включено ведение журналов. Значение поля должно находиться в диапазоне [0, 1]. Параметр задает частоту выборки запросов к балансировщику нагрузки: значение 1.0 означает, что регистрируются все запросы, а 0.0 — что не регистрируется ни один запрос.

Значение по умолчанию — 1.0.

Возвращается: успешно

name

string

Имя ресурса. Передается клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, которым не может быть дефис.

Возвращается: успешно

outlierDetection

complex

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

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

Возвращается: успешно

baseEjectionTime

complex

Базовое время исключения хоста. Фактическое время равно базовому времени, умноженному на количество исключений хоста. По умолчанию — 30000 мс или 30 с.

Возвращается: успешно

nanos

integer

Промежуток времени, выраженный в долях секунды с точностью до наносекунды. Длительность менее одной секунды представляется полем `seconds` со значением 0 и положительным значением поля `nanos`. Значение должно быть от 0 до 999,999,999 включительно.

Возвращается: успешно

seconds

integer

Промежуток времени с точностью до секунды. Значение должно быть от 0 до 315,576,000,000 включительно.

Возвращается: успешно

consecutiveErrors

integer

Количество ошибок, после которого хост исключается из пула соединений. При обращении к backend-хосту по HTTP код ответа 5xx считается ошибкой.

По умолчанию — 5.

Возвращается: успешно

consecutiveGatewayFailure

integer

Количество последовательных сбоев шлюза (статусы 502, 503, 504 или ошибки подключения, преобразуемые в один из этих кодов статуса), после которого происходит исключение из-за последовательных сбоев шлюза. По умолчанию — 5.

Возвращается: успешно

enforcingConsecutiveErrors

integer

Вероятность в процентах того, что хост будет фактически исключен при обнаружении аномального состояния по последовательным ответам 5xx. Этот параметр можно использовать для отключения исключения или его постепенного включения. По умолчанию — 100.

Возвращается: успешно

enforcingConsecutiveGatewayFailure

integer

Вероятность в процентах того, что хост будет фактически исключен при обнаружении аномального состояния по последовательным сбоям шлюза. Этот параметр можно использовать для отключения исключения или его постепенного включения. По умолчанию — 0.

Возвращается: успешно

enforcingSuccessRate

integer

Вероятность в процентах того, что хост будет фактически исключен при обнаружении аномального состояния по статистике успешности. Этот параметр можно использовать для отключения исключения или его постепенного включения. По умолчанию — 100.

Возвращается: успешно

interval

complex

Интервал между проверками для анализа исключения хостов. В результате могут быть исключены новые хосты, а ранее исключенные хосты могут быть возвращены в работу. По умолчанию — 10 секунд.

Возвращается: успешно

nanos

integer

Промежуток времени, выраженный в долях секунды с точностью до наносекунды. Длительность менее одной секунды представляется полем `seconds` со значением 0 и положительным значением поля `nanos`. Значение должно быть от 0 до 999,999,999 включительно.

Возвращается: успешно

seconds

integer

Промежуток времени с точностью до секунды. Значение должно быть от 0 до 315,576,000,000 включительно.

Возвращается: успешно

maxEjectionPercent

integer

Максимальный процент хостов в пуле балансировки нагрузки службы backend, которые могут быть исключены. По умолчанию — 10%.

Возвращается: успешно

successRateMinimumHosts

integer

Количество хостов в кластере, которые должны обработать достаточный объем запросов для обнаружения аномалий успешности. Если количество хостов меньше этого значения, обнаружение аномалий по статистике успешности не выполняется ни для одного хоста кластера. По умолчанию — 5.

Возвращается: успешно

successRateRequestVolume

integer

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

Возвращается: успешно

successRateStdevFactor

integer

Этот коэффициент используется для определения порога исключения при обнаружении аномалий успешности. Порог исключения — это разница между средним уровнем успешности и произведением этого коэффициента на стандартное отклонение среднего уровня успешности: mean - (stdev * success_rate_stdev_factor). Чтобы получить число с плавающей запятой, коэффициент делится на тысячу. То есть, если требуемый коэффициент равен 1.9, значение во время выполнения должно быть 1900. По умолчанию — 1900.

Возвращается: успешно

portName

string

Имя порта backend. Это же имя должно присутствовать в группах экземпляров, на которые ссылается эта служба. Обязательно, если схема балансировки нагрузки — EXTERNAL.

Возвращается: успешно

protocol

string

Протокол, который эта служба BackendService использует для связи с backend-серверами.

По умолчанию используется HTTP. **ПРИМЕЧАНИЕ**: HTTP2 допустим только для бета-версий типов балансировщиков нагрузки HTTP/2 и может привести к ошибкам при использовании с общедоступным API (GA).

Возвращается: успешно

securityPolicy

string

Политика безопасности, связанная с этой службой backend.

Возвращается: успешно

sessionAffinity

string

Тип используемой привязки сеанса. По умолчанию — NONE. Привязка сеанса не применяется, если протокол — UDP.

Возвращается: успешно

timeoutSec

integer

Время ожидания ответа от backend в секундах, после которого запрос считается неудачным. По умолчанию — 30 секунд. Допустимый диапазон: [1, 86400].

Возвращается: успешно

Авторы

  • Google Inc. (@googlecloudplatform)

Ссылки на коллекцию

  • Отслеживание проблем
  • Домашняя страница
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_backend_service_module.html

Spec-Zone.ru

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