Ресурс google_pubsub_subscription
Синтаксис
Используется для проверки ресурса подписки Google.
Примеры
describe google_pubsub_subscription(project: 'chef-gcp-inspec', name: 'inspec-gcp-subscription') do
it { should exist }
end
describe google_pubsub_subscription(project: 'chef-gcp-inspec', name: 'nonexistent') do
it { should_not exist }
end
Свойства
Свойства, доступные для ресурса google_pubsub_subscription:
name- Имя подписки.
topic- Ссылка на ресурс темы.
labels- Набор пар ключ-значение меток для этой подписки.
push_config- Если для этой подписки используется доставка push, это поле используется для ее настройки. Пустое значение pushConfig означает, что подписчик будет получать и подтверждать сообщения с помощью методов API.
oidc_token- Если указано, Pub/Sub сгенерирует и прикрепит токен OIDC JWT в качестве заголовка Authorization в HTTP-запросе для каждого отправляемого сообщения.
service_account_email- Электронная почта учетной записи сервиса, которая будет использоваться для генерации токена OIDC. Вызывающий абонент (для RPC-вызовов subscriptions.create, subscriptions.patch и subscriptions.modifyPushConfig) должен иметь разрешение iam.serviceAccounts.actAs для учетной записи сервиса.
audience- Аудитория, которая будет использоваться при генерации токена OIDC. Поле аудитории в заявлении JWT идентифицирует получателей, для которых предназначен JWT. Значение аудитории — строка с одним регистром. Не поддерживается использование нескольких значений (массива) для поля аудитории. Дополнительная информация о поле аудитории токена OIDC JWT: https://tools.ietf.org/html/rfc7519#section-4.1.3 Примечание: если не указано, в качестве URL-адреса точки завершения push будет использоваться URL-адрес конечной точки.
push_endpoint- URL-адрес конечной точки, на которую должны отправляться сообщения. Например, веб-хук-конечная точка может использовать «https://example.com/push".
attributes- Атрибуты конфигурации конечной точки. Каждая конечная точка имеет набор поддерживаемых API атрибутов, которые могут быть использованы для управления различными аспектами доставки сообщений. В настоящее время поддерживается атрибут x-goog-version, который можно использовать для изменения формата отправляемого сообщения. Этот атрибут указывает версию данных, ожидаемых конечной точкой. Это определяет структуру отправляемого сообщения (т. е. его поля и метаданные). Версия конечной точки основана на версии API Pub/Sub. Если при вызове subscriptions.create этот атрибут отсутствует, он будет по умолчанию иметь значение версии API, использованного для этого вызова. Если при вызове subscriptions.modifyPushConfig этот атрибут отсутствует, его значение не изменится. Вызовы subscriptions.get всегда возвращают допустимую версию, даже если подписка была создана без этого атрибута. Возможные значения этого атрибута: - v1beta1: использует формат push, определенный в API Pub/Sub v1beta1. - v1 или v1beta2: использует формат push, определенный в API Pub/Sub v1.
ack_deadline_seconds- Это значение является максимальным интервалом времени после того, как подписчик получает сообщение, прежде чем подписчик должен подтвердить сообщение. После доставки сообщения, но до истечения срока действия подтверждения и до подтверждения сообщения, это — ожидаемое сообщение и оно не будет повторно доставлено в течение этого времени (в порядке наилучшего соответствия). Для подписок pull это значение используется как начальное значение срока действия подтверждения. Чтобы переопределить это значение для конкретного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим ackId, если используется pull. Минимальное настраиваемое значение срока действия — 10 секунд. Максимальное настраиваемое значение срока действия — 600 секунд (10 минут). Если это значение равно 0, используется значение по умолчанию — 10 секунд. Для доставки push это значение также используется для установки таймаута запроса для вызова конечной точки push. Если подписчик никогда не подтверждает сообщение, система Pub/Sub в конечном итоге повторно доставит сообщение.
message_retention_duration- Сколько времени хранить неоповещенные сообщения в очереди подписки с момента публикации сообщения. Если retainAckedMessages true, это также настраивает хранение подтвержденных сообщений, и таким образом настраивает, насколько далеко в прошлое можно выполнить поиск subscriptions.seek. По умолчанию — 7 дней. Не может быть больше 7 дней (
"604800s") или меньше 10 минут ("600s"). Продолжительность в секундах с до девяти десятичных знаков, завершенная символом ’s’. Пример:"600.5s". retain_acked_messages- Указывает, нужно ли сохранять подтвержденные сообщения. Если
true, то сообщения не удаляются из очереди подписки, даже если они подтверждены, пока не выйдут за пределы временного интервала messageRetentionDuration. expiration_policy- Политика, определяющая условия истечения срока действия этой подписки. Подписка считается активной, пока любой подключенный подписчик успешно получает сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не задано, будет использоваться политика по умолчанию с ttl в 31 день. Если она задана, но ttl пустое, ресурс никогда не истекает. Минимальное разрешенное значение для expirationPolicy.ttl — 1 день.
ttl- Указывает продолжительность «срока действия» для связанного ресурса. Ресурс истекает, если он неактивен в течение периода ttl. Если ttl не задано, связанный ресурс никогда не истекает. Продолжительность в секундах с до девяти десятичных знаков, завершенная символом ’s’. Пример — «3.5s».
dead_letter_policy- Политика, определяющая условия для направления сообщений в эту подписку. Если dead_letter_policy не задано, направление в мертвую почту отключено. Учетная запись сервиса Cloud Pub/Sub, связанная с родительским проектом этой подписки (т. е., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение Acknowledge() для сообщений в этой подписке.
dead_letter_topic- Имя темы, в которую должны публиковаться сообщения мертвой почты. Формат —
projects/{project}/topics/{topic}. Учетная запись сервиса Cloud Pub/Sub, связанная с родительским проектом подписки (т. е., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение Publish() в эту тему. Операция завершится ошибкой, если тема не существует. Пользователи должны убедиться, что к этой теме прикреплена подписка, так как сообщения, опубликованные в тему без подписок, теряются. max_delivery_attempts- Максимальное количество попыток доставки для любого сообщения. Значение должно быть от 5 до 100. Количество попыток доставки определяется как 1 + (сумма количества NACK и количества раз, когда срок подтверждения сообщения истекал). NACK — это любой вызов ModifyAckDeadline со сроком действия 0. Обратите внимание, что клиентские библиотеки могут автоматически продлевать сроки подтверждения. Это поле будет учтено в порядке наилучшего соответствия. Если это значение равно 0, используется значение по умолчанию — 5.
Разрешения GCP
Убедитесь, что для текущего проекта включен API Cloud Pub/Sub: https://console.cloud.google.com/apis/library/pubsub.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_pubsub_subscription/