mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-09-07 09:36:44 +00:00
230 lines
7.6 KiB
Markdown
230 lines
7.6 KiB
Markdown
---
|
|
# ----------------------------------------------------------------------------
|
|
#
|
|
# *** AUTO GENERATED CODE *** AUTO GENERATED CODE ***
|
|
#
|
|
# ----------------------------------------------------------------------------
|
|
#
|
|
# This file is automatically generated by Magic Modules and manual
|
|
# changes will be clobbered when the file is regenerated.
|
|
#
|
|
# Please read more about how to change this file in
|
|
# .github/CONTRIBUTING.md.
|
|
#
|
|
# ----------------------------------------------------------------------------
|
|
layout: "google"
|
|
page_title: "Google: google_pubsub_subscription"
|
|
sidebar_current: "docs-google-pubsub-subscription"
|
|
description: |-
|
|
A named resource representing the stream of messages from a single,
|
|
specific topic, to be delivered to the subscribing application.
|
|
---
|
|
|
|
# google\_pubsub\_subscription
|
|
|
|
A named resource representing the stream of messages from a single,
|
|
specific topic, to be delivered to the subscribing application.
|
|
|
|
|
|
To get more information about Subscription, see:
|
|
|
|
* [API documentation](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions)
|
|
* How-to Guides
|
|
* [Managing Subscriptions](https://cloud.google.com/pubsub/docs/admin#managing_subscriptions)
|
|
|
|
## Example Usage - Pubsub Subscription Push
|
|
|
|
|
|
```hcl
|
|
resource "google_pubsub_topic" "example" {
|
|
name = "example-topic"
|
|
}
|
|
|
|
resource "google_pubsub_subscription" "example" {
|
|
name = "example-subscription"
|
|
topic = "${google_pubsub_topic.example.name}"
|
|
|
|
ack_deadline_seconds = 20
|
|
|
|
labels = {
|
|
foo = "bar"
|
|
}
|
|
|
|
push_config {
|
|
push_endpoint = "https://example.com/push"
|
|
|
|
attributes {
|
|
x-goog-version = "v1"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
|
|
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=pubsub_subscription_pull&cloudshell_image=gcr.io%2Fgraphite-cloud-shell-images%2Fterraform%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
|
|
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
|
|
</a>
|
|
</div>
|
|
## Example Usage - Pubsub Subscription Pull
|
|
|
|
|
|
```hcl
|
|
resource "google_pubsub_topic" "example" {
|
|
name = "example-topic"
|
|
}
|
|
|
|
resource "google_pubsub_subscription" "example" {
|
|
name = "example-subscription"
|
|
topic = "${google_pubsub_topic.example.name}"
|
|
|
|
labels = {
|
|
foo = "bar"
|
|
}
|
|
|
|
# 20 minutes
|
|
message_retention_duration = "1200s"
|
|
retain_acked_messages = true
|
|
|
|
ack_deadline_seconds = 20
|
|
}
|
|
```
|
|
## Example Usage - Pubsub Subscription Different Project
|
|
|
|
|
|
```hcl
|
|
resource "google_pubsub_topic" "example" {
|
|
project = "topic-project"
|
|
name = "example-topic"
|
|
}
|
|
|
|
resource "google_pubsub_subscription" "example" {
|
|
project = "subscription-project"
|
|
name = "example-subscription"
|
|
topic = "${google_pubsub_topic.example.id}"
|
|
}
|
|
```
|
|
|
|
## Argument Reference
|
|
|
|
The following arguments are supported:
|
|
|
|
|
|
* `name` -
|
|
(Required)
|
|
Name of the subscription.
|
|
|
|
* `topic` -
|
|
(Required)
|
|
A reference to a Topic resource.
|
|
|
|
|
|
- - -
|
|
|
|
|
|
* `labels` -
|
|
(Optional)
|
|
A set of key/value label pairs to assign to this Subscription.
|
|
|
|
* `push_config` -
|
|
(Optional)
|
|
If push delivery is used with this subscription, this field is used to
|
|
configure it. An empty pushConfig signifies that the subscriber will
|
|
pull and ack messages using API methods. Structure is documented below.
|
|
|
|
* `ack_deadline_seconds` -
|
|
(Optional)
|
|
This value is the maximum time after a subscriber receives a message
|
|
before the subscriber should acknowledge the message. After message
|
|
delivery but before the ack deadline expires and before the message is
|
|
acknowledged, it is an outstanding message and will not be delivered
|
|
again during that time (on a best-effort basis).
|
|
For pull subscriptions, this value is used as the initial value for
|
|
the ack deadline. To override this value for a given message, call
|
|
subscriptions.modifyAckDeadline with the corresponding ackId if using
|
|
pull. The minimum custom deadline you can specify is 10 seconds. The
|
|
maximum custom deadline you can specify is 600 seconds (10 minutes).
|
|
If this parameter is 0, a default value of 10 seconds is used.
|
|
For push delivery, this value is also used to set the request timeout
|
|
for the call to the push endpoint.
|
|
If the subscriber never acknowledges the message, the Pub/Sub system
|
|
will eventually redeliver the message.
|
|
|
|
* `message_retention_duration` -
|
|
(Optional)
|
|
How long to retain unacknowledged messages in the subscription's
|
|
backlog, from the moment a message is published. If
|
|
retainAckedMessages is true, then this also configures the retention
|
|
of acknowledged messages, and thus configures how far back in time a
|
|
subscriptions.seek can be done. Defaults to 7 days. Cannot be more
|
|
than 7 days (`"604800s"`) or less than 10 minutes (`"600s"`).
|
|
A duration in seconds with up to nine fractional digits, terminated
|
|
by 's'. Example: `"600.5s"`.
|
|
|
|
* `retain_acked_messages` -
|
|
(Optional)
|
|
Indicates whether to retain acknowledged messages. If `true`, then
|
|
messages are not expunged from the subscription's backlog, even if
|
|
they are acknowledged, until they fall out of the
|
|
messageRetentionDuration window.
|
|
* `project` - (Optional) The ID of the project in which the resource belongs.
|
|
If it is not provided, the provider project is used.
|
|
|
|
|
|
The `push_config` block supports:
|
|
|
|
* `push_endpoint` -
|
|
(Required)
|
|
A URL locating the endpoint to which messages should be pushed.
|
|
For example, a Webhook endpoint might use
|
|
"https://example.com/push".
|
|
|
|
* `attributes` -
|
|
(Optional)
|
|
Endpoint configuration attributes.
|
|
Every endpoint has a set of API supported attributes that can
|
|
be used to control different aspects of the message delivery.
|
|
The currently supported attribute is x-goog-version, which you
|
|
can use to change the format of the pushed message. This
|
|
attribute indicates the version of the data expected by
|
|
the endpoint. This controls the shape of the pushed message
|
|
(i.e., its fields and metadata). The endpoint version is
|
|
based on the version of the Pub/Sub API.
|
|
If not present during the subscriptions.create call,
|
|
it will default to the version of the API used to make
|
|
such call. If not present during a subscriptions.modifyPushConfig
|
|
call, its value will not be changed. subscriptions.get
|
|
calls will always return a valid version, even if the
|
|
subscription was created without this attribute.
|
|
The possible values for this attribute are:
|
|
- v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.
|
|
- v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.
|
|
|
|
## Attributes Reference
|
|
|
|
In addition to the arguments listed above, the following computed attributes are exported:
|
|
|
|
|
|
|
|
* `path`: Path of the subscription in the format `projects/{project}/subscriptions/{name}`
|
|
|
|
## Timeouts
|
|
|
|
This resource provides the following
|
|
[Timeouts](/docs/configuration/resources.html#timeouts) configuration options:
|
|
|
|
- `create` - Default is 4 minutes.
|
|
- `update` - Default is 4 minutes.
|
|
- `delete` - Default is 4 minutes.
|
|
|
|
## Import
|
|
|
|
Subscription can be imported using any of these accepted formats:
|
|
|
|
```
|
|
$ terraform import google_pubsub_subscription.default projects/{{project}}/subscriptions/{{name}}
|
|
$ terraform import google_pubsub_subscription.default {{project}}/{{name}}
|
|
$ terraform import google_pubsub_subscription.default {{name}}
|
|
```
|
|
|
|
-> If you're importing a resource with beta features, make sure to include `-provider=google-beta`
|
|
as an argument so that Terraform uses the correct provider to import your resource.
|