Cloud Storage
2
Create a PubSub Topic:
Terraform
Variable
Description
Example
resource "google_project_iam_member" "teleskope" {
for_each = toset([
"roles/storage.objectViewer",
"roles/pubsub.subscriber",
"roles/pubsub.viewer",
"roles/storage.bucketViewer",
"roles/storage.legacyBucketOwner"
])
project = "project_id"
role = each.key
member = "serviceAccount:${google_service_account.teleskope.email}"
}
resource "google_pubsub_topic" "pubsub_teleskope" {
project = "project_id"
name = "teleskope"
}
resource "google_pubsub_subscription" "pubsub_teleskope" {
name = "teleskope"
project = "project_id"
topic = "${google_pubsub_topic.pubsub_teleskope.name}"
}data "google_storage_project_service_account" "gcs_account" {
}
resource "google_storage_notification" "notification" {
bucket = "bucket_name"
payload_format = "JSON_API_V1"
topic = "${google_pubsub_topic.pubsub_teleskope.name}"
event_types = ["OBJECT_FINALIZE", "OBJECT_METADATA_UPDATE"]
depends_on = [google_pubsub_topic_iam_binding.binding]
}
resource "google_pubsub_topic_iam_member" "pubsub_member" {
member = "serviceAccount:${data.google_storage_project_service_account.gcs_service_account.email_address}"
role = "roles/pubsub.publisher"
topic = google_pubsub_topic.pubsub_teleskope.id
}Last updated
Was this helpful?
