gcp_compute_backend_service – Создаёт GCP BackendService
Новая версия с 2.6.
Описание
- Сервис обратной связи определяет группу виртуальных машин, которые будут обслуживать трафик для балансировки нагрузки. Этот ресурс — глобальный сервис обратной связи, подходящий для внешней балансировки нагрузки или самонастраиваемой внутренней балансировки нагрузки.
- Для управляемой внутренней балансировки нагрузки используйте региональный сервис обратной связи.
- В настоящее время самонастраиваемая внутренняя балансировка нагрузки доступна только в бета-версии.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| affinity_cookie_ttl_sec целое число | Срок жизни cookie в секундах, если session_affinity — GENERATED_COOKIE. Если значение равно 0, cookie не сохраняется и действует только до закрытия сеанса браузера (или эквивалента). Максимально допустимое значение TTL — один день. При использовании схемы балансировки INTERNAL это поле не используется. | |||
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | ||
| backends список | Набор бэкендов, обслуживаемых этим BackendService. | |||
| balancing_mode строка | Значение по умолчанию: "UTILIZATION" | Указывает режим балансировки для этого бэкенда. Для глобальной HTTP(S) или TCP/SSL балансировки по умолчанию используется UTILIZATION. Допустимые значения — UTILIZATION, RATE (для HTTP(S)) и CONNECTION (для TCP/SSL). Некоторые допустимые варианты включают: "UTILIZATION", "RATE", "CONNECTION" | ||
| capacity_scaler строка | Значение по умолчанию: "1.0" | Множитель, применяемый к максимальной пропускной способности группы (на основе 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_endpoint целое число добавлен в 2.9 | Максимальное количество одновременных подключений, которые может обрабатывать одна сетевая конечная точка бэкенда. Это используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо указать либо maxConnections, либо maxConnectionsPerEndpoint. | |||
| max_connections_per_instance целое число | Максимальное количество одновременных подключений, которые может обрабатывать один экземпляр бэкенда. Это используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо указать либо maxConnections, либо maxConnectionsPerInstance. | |||
| max_rate целое число | Максимальное количество запросов в секунду (RPS) группы. Может использоваться с режимами балансировки RATE или UTILIZATION, но обязательно при использовании режима RATE. Для режима RATE необходимо указать либо maxRate, либо maxRatePerInstance или maxRatePerEndpoint, в зависимости от типа группы. | |||
| max_rate_per_endpoint строка добавлен в 2.9 | Максимальное количество запросов в секунду (RPS), которое может обрабатывать одна сетевая конечная точка бэкенда. Это используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо указать либо maxRate, либо maxRatePerEndpoint. | |||
| max_rate_per_instance строка | Максимальное количество запросов в секунду (RPS), которое может обрабатывать один экземпляр бэкенда. Это используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо указать либо maxRate, либо maxRatePerInstance. | |||
| max_utilization строка | Значение по умолчанию: "0.8" | Используется при балансировке по UTILIZATION. Эта величина определяет целевую загрузку ЦП для группы. Значение по умолчанию равно 0,8. Допустимый диапазон — [0.0, 1.0]. | ||
| 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 целое число добавлен в 2.8 | Значение по умолчанию: "3600" | Максимальное количество секунд, в течение которых ответ на запрос с подписанным URL будет считаться свежим, по умолчанию 1 час (3600 секунд). По истечении этого периода ответ будет повторно проверен перед отправкой. При обслуживании ответов на запросы с подписанными URL-адресами Cloud CDN будет вести себя так, как будто все ответы с этого бэкенда имели заголовок «Cache-Control: public, max-age=[TTL]», независимо от наличия существующего заголовка Cache-Control. Фактические заголовки, предоставляемые в ответах, не будут изменены. | ||
| connection_draining словарь | Настройки для отключения подключений. | |||
| draining_timeout_sec целое число | Значение по умолчанию: "300" | Время, в течение которого экземпляр будет выводиться из работы (не будет принимать новые подключения, но продолжит работу по завершению начатых). | ||
| description строка | Необязательное описание этого ресурса. | |||
| enable_cdn boolean |
| Если true, включить Cloud CDN для этого BackendService. | ||
| env_type string | Указывает, в какой среде Ansible вы выполняете этот модуль. Не следует устанавливать этот параметр, если вы не знаете, что делаете. Это изменяет только строку User Agent для всех запросов API. | |||
| health_checks list / обязательно | Набор URL-адресов ресурсов HttpHealthCheck или HttpsHealthCheck для проверки работоспособности этого BackendService. В настоящее время можно указать не более одного средства проверки работоспособности, и средство проверки работоспособности обязательно. Для внутренней балансировки нагрузки необходимо указать URL-адрес ресурса HealthCheck. | |||
| iap dictionary добавлено в 2.7 | Параметры для включения Cloud Identity Aware Proxy. | |||
| enabled boolean |
| Включает IAP. | ||
| oauth2_client_id string / обязательно | OAuth2 Client ID для IAP. | |||
| oauth2_client_secret string / обязательно | OAuth2 Client Secret для IAP. | |||
| load_balancing_scheme string добавлено в 2.7 | По умолчанию: "EXTERNAL" | Указывает, будет ли обратный сервер использоваться с внутренней или внешней балансировкой нагрузки. Обратный сервер, созданный для одного типа балансировки нагрузки, не может использоваться с другим. Должно быть `EXTERNAL` или `INTERNAL_SELF_MANAGED` для глобального обратного сервера. По умолчанию `EXTERNAL`. Некоторые допустимые значения: "EXTERNAL", "INTERNAL_SELF_MANAGED" | ||
| name string / обязательно | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть, длина должна быть от 1 до 63 символов, и имя должно соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |||
| port_name string | Имя порта обратного сервера. То же имя должно быть указано в группах экземпляров, на которые ссылается этот сервер. Требуется, когда схема балансировки нагрузки — EXTERNAL. | |||
| project string | Используемый проект Google Cloud Platform. | |||
| protocol string | Протокол, используемый этим BackendService для связи с обратными серверами. Возможные значения — HTTP, HTTPS, HTTP2, TCP и SSL. По умолчанию — HTTP. **ПРИМЕЧАНИЕ**: HTTP2 допустимо только для бета-версии типов балансировщиков HTTP/2 и может привести к ошибкам, если используется с API GA. Некоторые допустимые значения: "HTTP", "HTTPS", "HTTP2", "TCP", "SSL" | |||
| scopes list | Массив используемых областей. | |||
| security_policy string добавлено в 2.8 | Политика безопасности, связанная с этим обратным сервером. | |||
| service_account_contents jsonarg | Содержание файла JSON учетной записи службы, либо в виде словаря, либо в виде JSON-строки, его представляющей. | |||
| service_account_email string | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |||
| service_account_file path | Путь к файлу JSON учетной записи службы, если в качестве типа выбран serviceaccount. | |||
| session_affinity string | Тип аффинитета сеанса. По умолчанию — NONE. При схеме балансировки нагрузки EXTERNAL может быть NONE, CLIENT_IP или GENERATED_COOKIE. При протоколе UDP этот параметр не используется. Некоторые допустимые значения: "NONE", "CLIENT_IP", "GENERATED_COOKIE" | |||
| state string |
| Указывает, должен ли данный объект существовать в GCP | ||
| timeout_sec integer | Количество секунд ожидания обратного сервера перед признанием запроса неудачным. По умолчанию 30 секунд. Допустимый диапазон — [1, 86400]. псевдонимы: timeout_seconds | |||
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/v1/backendServices
- Официальная документация: https://cloud.google.com/compute/docs/load-balancing/http/backend-service
- для аутентификации можно установить service_account_file с помощью переменной среды c(gcp_service_account_file).
- для аутентификации можно установить service_account_contents с помощью переменной среды c(GCP_SERVICE_ACCOUNT_CONTENTS).
- для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в книге сценариев не установлены.
- Параметры service_account_email и service_account_file взаимоисключают друг друга.
Примеры
- name: create a instance group
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
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
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 целое число | успех | Срок действия cookie в секундах, если session_affinity равен GENERATED_COOKIE. Если значение равно 0, cookie не сохраняется и действует только до конца сессии браузера (или эквивалента). Максимально допустимое значение TTL составляет один день. При схеме балансировки INTERNAL это поле не используется. | ||
| backends сложный тип | успех | Набор бэкэндов, которые обслуживают этот BackendService. | ||
| balancingMode строка | успех | Указывает режим балансировки для данного бэкэнда. Для глобальной балансировки HTTP(S) или TCP/SSL по умолчанию используется UTILIZATION. Допустимые значения: UTILIZATION, RATE (для HTTP(S)) и CONNECTION (для TCP/SSL). | ||
| capacityScaler строка | успех | Множитель, применяемый к максимальной пропускной способности группы (на основе UTILIZATION, RATE или CONNECTION). Значение по умолчанию — 1, что означает, что группа будет обслуживать до 100% своей конфигурированной пропускной способности (в зависимости от balancingMode). Значение 0 означает, что группа полностью отключена, предлагая 0% своей доступной пропускной способности. Допустимый диапазон значений: [0.0, 1.0]. | ||
| description строка | успех | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | ||
| group строка | успех | Полный URL ресурса группы экземпляров (Instance Group) или группы сетевых конечных точек (Network Endpoint Group). В случае группы экземпляров это определяет список экземпляров, которые обслуживают трафик. Виртуальные машины-члены каждой группы экземпляров должны находиться в той же зоне, что и сама группа экземпляров. Два бэкэнда в службе бэкэндов не могут использовать один и тот же ресурс группы экземпляров. Для групп сетевых конечных точек это определяет список конечных точек. Все конечные точки группы сетевых конечных точек должны размещаться на экземплярах, расположенных в той же зоне, что и сама группа сетевых конечных точек. Служба бэкэндов не может содержать смесь бэкэндов группы экземпляров и группы сетевых конечных точек. Обратите внимание, что вы должны указать ресурс группы экземпляров или группы сетевых конечных точек с помощью полного URL, а не частичного URL. | ||
| maxConnections целое число | успех | Максимальное количество одновременных подключений для группы. Может использоваться с режимами балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо указать либо maxConnections, либо maxConnectionsPerInstance или maxConnectionsPerEndpoint, в зависимости от типа группы. | ||
| maxConnectionsPerEndpoint целое число | успех | Максимальное количество одновременных подключений, которые может обрабатывать одна сетевая конечная точка бэкэнда. Используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо указать либо maxConnections, либо maxConnectionsPerEndpoint. | ||
| maxConnectionsPerInstance целое число | успех | Максимальное количество одновременных подключений, которые может обрабатывать один экземпляр бэкэнда. Используется для расчета емкости группы. Может использоваться в режимах балансировки CONNECTION или UTILIZATION. Для режима CONNECTION необходимо указать либо maxConnections, либо maxConnectionsPerInstance. | ||
| maxRate целое число | успех | Максимальное количество запросов в секунду (RPS) группы. Может использоваться с режимами балансировки RATE или UTILIZATION, но обязательно, если используется режим RATE. Для режима RATE необходимо указать либо maxRate, либо maxRatePerInstance или maxRatePerEndpoint, в зависимости от типа группы. | ||
| maxRatePerEndpoint строка | успех | Максимальное количество запросов в секунду (RPS), которое может обрабатывать одна сетевая конечная точка бэкэнда. Используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо указать либо maxRate, либо maxRatePerEndpoint. | ||
| maxRatePerInstance строка | успех | Максимальное количество запросов в секунду (RPS), которое может обрабатывать один экземпляр бэкэнда. Используется для расчета емкости группы. Может использоваться в любом режиме балансировки. Для режима RATE необходимо указать либо maxRate, либо maxRatePerInstance. | ||
| maxUtilization строка | успех | Используется, когда balancingMode равен UTILIZATION. Это отношение определяет целевое значение использования ЦП для группы. По умолчанию 0.8. Допустимый диапазон значений: [0.0, 1.0]. | ||
| cdnPolicy сложный тип | успех | Настройка Cloud CDN для этого BackendService. | ||
| cacheKeyPolicy сложный тип | успех | CacheKeyPolicy для этого CdnPolicy. | ||
| includeHost булево | успех | Если true, запросы к различным хостам будут кэшироваться раздельно. | ||
| includeProtocol булево | успех | Если true, запросы http и https будут кэшироваться раздельно. | ||
| includeQueryString булево | успех | Если true, параметры строки запроса будут включены в ключ кэша в соответствии с query_string_whitelist и query_string_blacklist. Если ни то, ни другое не установлено, вся строка запроса будет включена. Если false, строка запроса будет полностью исключена из ключа кэша. | ||
| queryStringBlacklist список | успех | Имена параметров строки запроса, которые следует исключить из ключей кэша. Все остальные параметры будут включены. Укажите либо query_string_whitelist, либо query_string_blacklist, но не оба. '&' и '=' будут закодированы в проценты и не будут рассматриваться как разделители. | ||
| queryStringWhitelist список | успех | Имена параметров строки запроса, которые следует включить в ключи кэша. Все остальные параметры будут исключены. Укажите либо query_string_whitelist, либо query_string_blacklist, но не оба. '&' и '=' будут закодированы в проценты и не будут рассматриваться как разделители. | ||
| signedUrlCacheMaxAgeSec целое число | успех | Максимальное количество секунд, в течение которого ответ на запрос подписанного URL-адреса будет считаться актуальным, по умолчанию 1 час (3600 с). По истечении этого периода ответ будет перепроверен перед предоставлением. При предоставлении ответов на запросы подписанных URL-адресов Cloud CDN будет внутренне вести себя так, как если бы все ответы от этого бэкэнда имели заголовок «Cache-Control: public, max-age=[TTL]», независимо от наличия существующего заголовка Cache-Control. Фактические заголовки, предоставленные в ответах, не будут изменены. | ||
| connectionDraining сложный тип | успех | Настройки для отключения подключения. | ||
| drainingTimeoutSec целое число | успех | Время, в течение которого экземпляр будет выводиться из работы (не будет принимать новые подключения, но продолжит работу для завершения уже начатых). | ||
| creationTimestamp строка | успех | Дата и время создания в формате RFC3339. | ||
| description строка | успех | Необязательное описание этого ресурса. | ||
| enableCDN булево | успех | Если true, включите Cloud CDN для этого BackendService. | ||
| fingerprint строка | успех | Отпечаток пальца этого ресурса. Хэш содержимого, хранящегося в этом объекте. Это поле используется для оптимистической блокировки. | ||
| healthChecks список | успех | Набор URL-адресов к ресурсам HttpHealthCheck или HttpsHealthCheck для проверки работоспособности этого BackendService. В настоящее время можно указать не более одного контроллера работоспособности, и контроллер работоспособности обязателен. Для внутренней балансировки вместо этого необходимо указать URL к ресурсу HealthCheck. | ||
| iap complex | success | Настройки для включения Cloud Identity Aware Proxy. | ||
| enabled boolean | success | Включает IAP. | ||
| oauth2ClientId string | success | Идентификатор клиента OAuth2 для IAP. | ||
| oauth2ClientSecret string | success | Секрет клиента OAuth2 для IAP. | ||
| oauth2ClientSecretSha256 string | success | Секрет клиента OAuth2 SHA-256 для IAP. | ||
| id integer | success | Уникальный идентификатор ресурса. | ||
| loadBalancingScheme string | success | Указывает, будет ли служба обратного подключения использоваться с внутренней или внешней балансировкой нагрузки. Служба обратного подключения, созданная для одного типа балансировки нагрузки, не может использоваться с другим. Для глобальной службы обратного подключения должно быть `EXTERNAL` или `INTERNAL_SELF_MANAGED`. По умолчанию - `EXTERNAL`. | ||
| name string | success | Имя ресурса. Предоставляется клиентом при создании ресурса. Длина имени должна быть от 1 до 63 символов и соответствовать RFC1035. В частности, длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | ||
| portName string | success | Имя порта обратного подключения. То же имя должно присутствовать в группах экземпляров, на которые ссылается эта служба. Требуется, когда схема балансировки нагрузки - EXTERNAL. | ||
| protocol string | success | Протокол, используемый этой службой обратного подключения для связи с серверами. Возможные значения: HTTP, HTTPS, HTTP2, TCP и SSL. По умолчанию - HTTP. **ПРИМЕЧАНИЕ**: HTTP2 допустим только для типов бета-балансировщиков HTTP/2 и может привести к ошибкам, если используется с API GA. | ||
| securityPolicy string | success | Политика безопасности, связанная с этой службой обратного подключения. | ||
| sessionAffinity string | success | Тип сродства сессий для использования. По умолчанию - NONE. Когда схема балансировки нагрузки EXTERNAL, может быть NONE, CLIENT_IP или GENERATED_COOKIE. Когда протокол UDP, это поле не используется. | ||
| timeoutSec integer | success | Сколько секунд ждать сервер обратного подключения перед признанием запроса неудачным. По умолчанию 30 секунд. Допустимый диапазон - [1, 86400]. | ||
Статус
- Для этого модуля не гарантируется обратная совместимость интерфейса. [preview]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Google Inc. (@googlecloudplatform)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/gcp_compute_backend_service_module.html