Ресурс google_compute_backend_service
Синтаксис
Для тестирования ресурса Google BackendService используется google_compute_backend_service
Ресурс бета-версии
Этот ресурс имеет доступные поля бета-версии. Для получения этих полей включите beta: true в конструктор ресурса.
Примеры
describe google_compute_backend_service(project: 'chef-gcp-inspec', name: 'inspec-gcp-backend-service') do
it { should exist }
its('description') { should eq 'A description' }
its('port_name') { should eq 'http' }
its('protocol') { should eq 'HTTP' }
its('timeout_sec') { should eq '10' }
its('enable_cdn') { should eq 'true' }
end
describe google_compute_backend_service(project: 'chef-gcp-inspec', name: 'nonexistent') do
it { should_not exist }
end
Свойства
Свойства, доступные для ресурса google_compute_backend_service:
affinity_cookie_ttl_sec- Срок действия cookie в секундах, если session_affinity — GENERATED_COOKIE. Если значение равно 0, cookie не сохраняется и действует только до конца сессии браузера (или эквивалента). Максимальное допустимое значение TTL — один день. Если схема балансировки нагрузки — INTERNAL, это поле не используется.
backends- Набор бэкендов, которые обслуживают этот BackendService.
balancing_mode- Указывает режим балансировки для этого бэкенда. Для глобальной HTTP(S) или TCP/SSL балансировки нагрузки по умолчанию используется UTILIZATION. Допустимые значения: UTILIZATION, RATE (для HTTP(S)) и CONNECTION (для TCP/SSL).
Возможные значения:
- UTILIZATION
- RATE
- CONNECTION
capacity_scaler- Множитель, применяемый к максимальной емкости обслуживания группы (на основе UTILIZATION, RATE или CONNECTION). Значение по умолчанию — 1, что означает, что группа будет обслуживать до 100% своей конфигурированной емкости (в зависимости от balancingMode). Значение 0 означает полную остановку группы, предоставляя 0% доступной емкости. Допустимый диапазон — [0.0, 1.0].
description- Необязательное описание этого ресурса. Укажите это свойство при создании ресурса.
group- Полный URL ресурса группы экземпляров или группы сетевых конечных точек. В случае группы экземпляров это определяет список экземпляров, которые обслуживают трафик. Виртуальные машины-члены из каждой группы экземпляров должны находиться в той же зоне, что и сама группа экземпляров. Два бэкенда в одной службе бэкенда не могут использовать один и тот же ресурс группы экземпляров. Для групп сетевых конечных точек это определяет список конечных точек. Все конечные точки группы сетевых конечных точек должны размещаться на экземплярах, расположенных в той же зоне, что и сама группа сетевых конечных точек. Службы бэкендов не могут смешивать бэкенды групп экземпляров и групп сетевых конечных точек. Обратите внимание, что вы должны указать ресурс группы экземпляров или группы сетевых конечных точек с помощью полного URL-адреса, а не частичного.
max_connections- Максимальное количество одновременных подключений для группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо установить либо maxConnections, либо maxConnectionsPerInstance или maxConnectionsPerEndpoint, соответствующее типу группы.
max_connections_per_instance- Максимальное количество одновременных подключений, которое может обрабатывать один экземпляр бэкенда. Это используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо установить либо maxConnections, либо maxConnectionsPerInstance.
max_connections_per_endpoint- Максимальное количество одновременных подключений, которое может обрабатывать одна сетевая конечная точка бэкенда. Это используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо установить либо maxConnections, либо maxConnectionsPerEndpoint.
max_rate- Максимальное количество запросов в секунду (RPS) группы. Может использоваться в режимах балансировки RATE или UTILIZATION, но обязательно при использовании RATE. Для режима RATE необходимо установить либо maxRate, либо maxRatePerInstance или maxRatePerEndpoint, соответствующее типу группы.
max_rate_per_instance- Максимальное количество запросов в секунду (RPS), которое может обрабатывать один экземпляр бэкенда. Это используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо установить либо maxRate, либо maxRatePerInstance.
max_rate_per_endpoint- Максимальное количество запросов в секунду (RPS), которое может обработать одна сетевая конечная точка бэкенда. Это используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо установить либо maxRate, либо maxRatePerEndpoint.
max_utilization- Используется при balancingMode = UTILIZATION. Это отношение определяет целевую загрузку процессора для группы. По умолчанию — 0,8. Допустимый диапазон — [0,0, 1,0].
circuit_breakers- Настройки, контролирующие объем подключений к службе бэкенда. Это поле применимо только тогда, когда load_balancing_scheme установлено в INTERNAL_SELF_MANAGED.
connect_timeout- (Только бета-версия) Таймаут для новых сетевых подключений к хостам.
seconds- Продолжительность времени с разрешением в секунду. Должно быть в диапазоне от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени в долях секунды с разрешением в наносекунды. Продолжительности менее одной секунды представляются значением поля seconds равным 0 и положительным значением nanos. Должно быть в диапазоне от 0 до 999 999 999 включительно.
max_requests_per_connection- Максимальное количество запросов для одного подключения к бэкенду. Этот параметр учитывается как реализациями HTTP/1.1, так и HTTP/2. Если не указано, ограничений нет. Установка этого параметра в 1 фактически отключает keep-alive.
max_connections- Максимальное количество подключений к кластеру бэкенда. По умолчанию — 1024.
max_pending_requests- Максимальное количество ожидающих запросов к кластеру бэкенда. По умолчанию — 1024.
max_requests- Максимальное количество параллельных запросов к кластеру бэкенда. По умолчанию — 1024.
max_retries- Максимальное количество параллельных повторных попыток к кластеру бэкенда. По умолчанию — 3.
consistent_hash- Балансировка нагрузки на основе консистентного хэширования может использоваться для предоставления мягкого сродства к сессиям на основе заголовков HTTP, cookie или других свойств. Эта политика балансировки нагрузки применима только для HTTP-соединений. Сродство к определенному хосту назначения будет потеряно при добавлении или удалении одного или нескольких хостов из службы назначения. Это поле указывает параметры, контролирующие консистентное хэширование. Это поле применимо только если load_balancing_scheme установлено в INTERNAL_SELF_MANAGED. Это поле применимо только в случае, когда locality_lb_policy установлено в MAGLEV или RING_HASH.
http_cookie- Хэширование основано на HTTP-cookie. Это поле описывает HTTP-cookie, который будет использоваться в качестве ключа хэширования для балансировщика консистентного хэширования. Если cookie отсутствует, он будет сгенерирован. Это поле применимо, если sessionAffinity установлено в HTTP_COOKIE.
ttl- Срок действия cookie.
seconds- Продолжительность времени с разрешением в секунду. Должно быть в диапазоне от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени в долях секунды с разрешением в наносекунды. Продолжительности менее одной секунды представляются значением поля seconds равным 0 и положительным значением nanos. Должно быть в диапазоне от 0 до 999 999 999 включительно.
name- Имя cookie.
path- Путь для cookie.
http_header_name- Хэширование на основе значения указанного поля заголовка. Это поле применимо, если sessionAffinity установлено в HEADER_FIELD.
minimum_ring_size- Минимальное количество виртуальных узлов для использования для кольца хэширования. Более крупные размеры кольца приводят к более тонким распределениям нагрузки. Если количество хостов в пуле балансировки нагрузки больше размера кольца, каждому хосту будет назначен один виртуальный узел. По умолчанию — 1024.
cdn_policy- Настройка Cloud CDN для этого BackendService.
cache_key_policy- CacheKeyPolicy для этой CdnPolicy.
include_host- Если true, запросы к различным хостам будут кэшироваться раздельно.
include_protocol- Если true, запросы http и https будут кэшироваться раздельно.
include_query_string- Если true, параметры строки запроса будут включаться в ключ кэша в соответствии с query_string_whitelist и query_string_blacklist. Если ни то, ни другое не задано, вся строка запроса будет включена. Если false, строка запроса будет полностью исключена из ключа кэша.
query_string_blacklist- Имена параметров строки запроса, которые следует исключить из ключей кэша. Все остальные параметры будут включены. Укажите либо query_string_whitelist, либо query_string_blacklist, но не оба. Символы ‘&’ и ‘=’ будут закодированы в процентах и не будут обрабатываться как разделители.
query_string_whitelist- Имена параметров строки запроса, которые следует включить в ключи кэша. Все остальные параметры будут исключены. Укажите либо query_string_whitelist, либо query_string_blacklist, но не оба. Символы ‘&’ и ‘=’ будут закодированы в процентах и не будут обрабатываться как разделители.
signed_url_cache_max_age_sec- Максимальное количество секунд, в течение которого ответ на запрос подписанной ссылки будет считаться свежим, по умолчанию 1 час (3600 с). После этого периода ответ будет перепроверен перед подачей. При обслуживании ответов на запросы подписанных URL-адресов Cloud CDN будет внутренне вести себя так, как если бы все ответы от этого бэкенда имели заголовок «Cache-Control: public, max-age=[TTL]», независимо от наличия существующего заголовка Cache-Control. Фактические заголовки, подаваемые в ответах, не будут изменены.
connection_draining- Настройки для отключения соединений.
draining_timeout_sec- Время, в течение которого экземпляр будет отключаться (не принимать новые соединения, но по-прежнему работать над завершением начатых).
creation_timestamp- Дата и время создания в формате RFC3339.
custom_request_headers- Заголовки, которые балансировщик HTTP/S должен добавить к проксированным запросам.
fingerprint- Отпечаток этого ресурса. Хэш содержимого, хранящегося в этом объекте. Это поле используется в оптимистической блокировке.
description- Необязательное описание этого ресурса.
enable_cdn- Если true, включить Cloud CDN для этого BackendService.
health_checks- Набор URL-адресов ресурсов HttpHealthCheck или HttpsHealthCheck для проверки работоспособности этого BackendService. В настоящее время можно указать не более одного средства проверки работоспособности, и средство проверки работоспособности необходимо. Для внутренней балансировки необходимо указать URL-адрес ресурса HealthCheck.
id- Уникальный идентификатор ресурса.
iap- Настройки для включения Cloud Identity Aware Proxy.
enabled- Включает IAP.
oauth2_client_id- Идентификатор клиента OAuth2 для IAP.
oauth2_client_secret- Секрет клиента OAuth2 для IAP.
oauth2_client_secret_sha256- Секрет клиента OAuth2 SHA-256 для IAP.
load_balancing_scheme- Указывает, будет ли служба бэкенда использоваться с внутренней или внешней балансировкой. Служба бэкенда, созданная для одного типа балансировки, не может использоваться с другим типом.
Возможные значения:
- EXTERNAL
- INTERNAL_SELF_MANAGED
locality_lb_policy
- Алгоритм балансировки нагрузки, используемый в рамках локальности. Возможные значения: - ROUND_ROBIN — простая политика, в которой каждый здоровый бэкенд выбирается по кругу. LEAST_REQUEST — алгоритм O(1), который выбирает два случайных здоровых хоста и выбирает хост с меньшим количеством активных запросов. RING_HASH — балансировщик нагрузки с кольцевым/модульным хешированием, реализующий консистентное хеширование для бэкэндов. Алгоритм обладает свойством, что добавление/удаление хоста из набора из N хостов затрагивает только 1/N запросов. RANDOM — балансировщик нагрузки выбирает случайный здоровый хост. ORIGINAL_DESTINATION — бэкенд-хост выбирается на основе метаданных соединения клиента, т. е. соединения открываются по тому же адресу, что и адрес назначения входящего соединения, прежде чем соединение было перенаправлено на балансировщик нагрузки. MAGLEV — используется как замена балансировщику нагрузки ring hash. Maglev не такой стабильный, как ring hash, но имеет более быстрые времена построения таблицы и выбора хоста. Дополнительную информацию о Maglev можно найти по адресу https://ai.google/research/pubs/pub44824. Это поле применимо только в том случае, если load_balancing_scheme установлено в INTERNAL_SELF_MANAGED.
Возможные значения:
- ROUND_ROBIN
- LEAST_REQUEST
- RING_HASH
- RANDOM
- ORIGINAL_DESTINATION
- MAGLEV
name- Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению
[a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. outlier_detection- Параметры, управляющие удалением неисправных хостов из пула балансировки нагрузки. Это поле применимо только в том случае, если load_balancing_scheme установлено в INTERNAL_SELF_MANAGED.
base_ejection_time- Базовое время, на которое хост выводится из строя. Реальное время равно базовому времени, умноженному на количество раз, когда хост был выведен из строя. По умолчанию 30000 мс или 30 с.
seconds- Продолжительность времени с разрешением в секунду. Должна быть от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени, которая является дробью секунды с разрешением в наносекунды. Продолжительности меньше одной секунды представлены полем 0
secondsи положительным полемnanos. Должна быть от 0 до 999 999 999 включительно.
consecutive_errors- Количество ошибок перед выводом хоста из пула соединений. При доступе к бэкенд-хосту через HTTP код возврата 5xx считается ошибкой. По умолчанию 5.
consecutive_gateway_failure- Количество последовательных сбоев шлюза (состояния 502, 503, 504 или ошибки соединения, которые отображаются в одном из этих кодов состояния) перед выводом из строя вследствие последовательного сбоя шлюза. По умолчанию 5.
enforcing_consecutive_errors- Вероятность того, что хост фактически будет выведен из строя при обнаружении аномального состояния посредством последовательных кодов 5xx. Этот параметр можно использовать для отключения вывода из строя или постепенного его включения. По умолчанию 100.
enforcing_consecutive_gateway_failure- Вероятность того, что хост фактически будет выведен из строя при обнаружении аномального состояния посредством последовательных сбоев шлюза. Этот параметр можно использовать для отключения вывода из строя или постепенного его включения. По умолчанию 0.
enforcing_success_rate- Вероятность того, что хост фактически будет выведен из строя при обнаружении аномального состояния по статистике успешности. Этот параметр можно использовать для отключения вывода из строя или постепенного его включения. По умолчанию 100.
interval- Интервал времени между анализом вывода из строя. Это может привести к новым выводам из строя, а также к возвращению хостов в рабочее состояние. По умолчанию 10 секунд.
seconds- Продолжительность времени с разрешением в секунду. Должна быть от 0 до 315 576 000 000 включительно.
nanos- Продолжительность времени, которая является дробью секунды с разрешением в наносекунды. Продолжительности меньше одной секунды представлены полем 0
secondsи положительным полемnanos. Должна быть от 0 до 999 999 999 включительно.
max_ejection_percent- Максимальный процент хостов в пуле балансировки нагрузки для бэкенд-службы, которые могут быть выведены из строя. По умолчанию 10%.
success_rate_minimum_hosts- Количество хостов в кластере, которые должны иметь достаточный объем запросов для обнаружения аномалий успешности. Если количество хостов меньше этого параметра, обнаружение аномалий по статистике успешности не выполняется ни для одного хоста в кластере. По умолчанию 5.
success_rate_request_volume- Минимальное количество общих запросов, которые должны быть собраны за один интервал (как определено выше интервалом продолжительности), чтобы включить этот хост в обнаружение аномалий на основе успешности. Если объем ниже этого значения, обнаружение аномалий по статистике успешности не выполняется для этого хоста. По умолчанию 100.
success_rate_stdev_factor- Этот коэффициент используется для определения порога вывода из строя при обнаружении аномалий по статистике успешности. Порог вывода из строя — это разность между средней успешностью и произведением этого коэффициента и стандартного отклонения от средней успешности: среднее — (stdev * success_rate_stdev_factor). Этот коэффициент делится на тысячу, чтобы получить double. То есть, если требуемый коэффициент равен 1,9, значение runtime должно быть 1900. По умолчанию 1900.
port_name- Имя бэкенд-порта. Это же имя должно присутствовать в группах экземпляров, на которые ссылается эта служба. Требуется, когда схема балансировки нагрузки — EXTERNAL.
protocol- Протокол, используемый BackendService для связи с бэкендами. По умолчанию HTTP. ПРИМЕЧАНИЕ: HTTP2 допустим только для типов балансировщиков HTTP/2 бета-версии и может привести к ошибкам, если используется с API GA.
Возможные значения:
- HTTP
- HTTPS
- HTTP2
- TCP
- SSL
security_policy- Политика безопасности, связанная с этой бэкенд-службой.
session_affinity- Тип сродства сессии для использования. По умолчанию NONE. Сродство сессии неприменимо, если протокол — UDP.
Возможные значения:
- NONE
- CLIENT_IP
- CLIENT_IP_PORT_PROTO
- CLIENT_IP_PROTO
- GENERATED_COOKIE
- HEADER_FIELD
- HTTP_COOKIE
timeout_sec- Сколько секунд ждать бэкенд, прежде чем считать запрос неудачным. По умолчанию 30 секунд. Допустимый диапазон [1, 86400].
log_config- Это поле обозначает параметры протоколирования для трафика балансировщика нагрузки, обслуживаемого этой бэкенд-службой. Если протоколирование включено, журналы будут экспортированы в Stackdriver.
enable- Включить ли протоколирование трафика балансировщика нагрузки, обслуживаемого этой бэкенд-службой.
sample_rate- Это поле может быть указано только в том случае, если протоколирование включено для этой бэкенд-службы. Значение поля должно быть в диапазоне [0, 1]. Это настраивает скорость выборки запросов к балансировщику нагрузки, где 1.0 означает, что все запросы, подлежащие протоколированию, сообщаются, а 0.0 означает, что запросы, подлежащие протоколированию, не сообщаются. Значение по умолчанию 1.0.
Разрешения GCP
Убедитесь, что для текущего проекта включен API Compute Engine по адресу https://console.cloud.google.com/apis/library/compute.googleapis.com/.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_compute_backend_service/