Skip to content

Commit

Permalink
Add explicit dependencies to try make API calls happen after the API …
Browse files Browse the repository at this point in the history
…is turned on
  • Loading branch information
SarahFrench committed Jul 18, 2022
1 parent f740d47 commit 8e4841e
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions mmv1/templates/terraform/examples/cloudfunctions2_full_gcs.tf.erb
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ resource "google_project_service" "enabled_services" {
}

resource "google_service_account" "account" {
depends_on = [
google_project_service.enabled_services["iam.googleapis.com"],
]
provider = google-beta
project = google_project.project.project_id
account_id = "<%= ctx[:vars]['service_account'] %>"
Expand Down Expand Up @@ -64,6 +67,9 @@ data "google_storage_project_service_account" "gcs_account" {
# (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)
resource "google_project_iam_member" "gcs-pubsub-publishing" {
provider = google-beta
depends_on = [
google_project_service.enabled_services["iam.googleapis.com"],
]
project = google_project.project.project_id # Required argument
role = "roles/pubsub.publisher"
member = "serviceAccount:${data.google_storage_project_service_account.gcs_account.email_address}"
Expand All @@ -72,20 +78,30 @@ resource "google_project_iam_member" "gcs-pubsub-publishing" {
# Permissions on the service account for the function and Eventarc trigger
resource "google_project_iam_member" "invoking" {
provider = google-beta
depends_on = [
google_project_service.enabled_services["iam.googleapis.com"],
]
project = google_project.project.project_id # Required argument
role = "roles/run.invoker"
member = "serviceAccount:${google_service_account.account.email}"
}

resource "google_project_iam_member" "event-receiving" {
provider = google-beta
depends_on = [
google_project_service.enabled_services["iam.googleapis.com"],
]
project = google_project.project.project_id # Required argument
role = "roles/eventarc.eventReceiver"
member = "serviceAccount:${google_service_account.account.email}"
}

resource "google_cloudfunctions2_function" "<%= ctx[:primary_resource_id] %>" {
provider = google-beta
depends_on = [
google_project_service.enabled_services["cloudfunctions.googleapis.com"],
google_project_service.enabled_services["eventarc.googleapis.com"],
]
project = google_project.project.project_id
name = "<%= ctx[:vars]['function'] %>"
location = "us-central1"
Expand Down

0 comments on commit 8e4841e

Please sign in to comment.