Create a Pub/Sub notification on a Bucket
Stay organized with collections
Save and categorize content based on your preferences.
This sample creates a Pub/Sub notification configuration on a Bucket that sends notifications for all supported events.
Explore further
For detailed documentation that includes this code sample, see the following:
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License
, and code samples are licensed under the Apache 2.0 License
. For details, see the Google Developers Site Policies
. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# Create a Pub/Sub notification on a Bucket\n\nThis sample creates a Pub/Sub notification configuration on a Bucket that sends notifications for all supported events.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Configure Pub/Sub notifications for Cloud Storage](/storage/docs/reporting-changes)\n\nCode sample\n-----------\n\n### Terraform\n\n\nTo learn how to apply or remove a Terraform configuration, see\n[Basic Terraform commands](/docs/terraform/basic-commands).\n\n\nFor more information, see the\n[Terraform provider reference documentation](https://registry.terraform.io/providers/hashicorp/google/latest/docs).\n\n // Create a Pub/Sub notification.\n resource \"google_storage_notification\" \"notification\" {\n provider = google-beta\n bucket = google_storage_bucket.bucket.name\n payload_format = \"JSON_API_V1\"\n topic = google_pubsub_topic.topic.id\n depends_on = [google_pubsub_topic_iam_binding.binding]\n }\n\n // Enable notifications by giving the correct IAM permission to the unique service account.\n data \"google_storage_project_service_account\" \"gcs_account\" {\n provider = google-beta\n }\n\n // Create a Pub/Sub topic.\n resource \"google_pubsub_topic_iam_binding\" \"binding\" {\n provider = google-beta\n topic = google_pubsub_topic.topic.id\n role = \"roles/pubsub.publisher\"\n members = [\"serviceAccount:${data.google_storage_project_service_account.gcs_account.email_address}\"]\n }\n\n resource \"random_id\" \"bucket_prefix\" {\n byte_length = 8\n }\n\n // Create a new storage bucket.\n resource \"google_storage_bucket\" \"bucket\" {\n name = \"${random_id.bucket_prefix.hex}-example-bucket-name\"\n provider = google-beta\n location = \"US\"\n uniform_bucket_level_access = true\n }\n\n resource \"google_pubsub_topic\" \"topic\" {\n name = \"your_topic_name\"\n provider = google-beta\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=storage)."]]