1+ locals {
2+ bigquery_table_parts = split (" ." , var. bigquery_table )
3+ bigquery_project_id = local. bigquery_table_parts [0 ]
4+ bigquery_dataset_id = local. bigquery_table_parts [1 ]
5+ bigquery_table_id = local. bigquery_table_parts [2 ]
6+ }
7+
18resource "google_pubsub_subscription" "subscription" {
29 name = var. subscription_name
310 topic = var. topic_id
@@ -8,17 +15,21 @@ resource "google_pubsub_subscription" "subscription" {
815 table = var. bigquery_table
916 }
1017
11- depends_on = [google_project_iam_member . viewer , google_project_iam_member . editor ]
18+ depends_on = [google_bigquery_table_iam_member . viewer , google_bigquery_table_iam_member . editor ]
1219}
1320
14- resource "google_project_iam_member" "viewer" {
15- project = data. google_project . project . project_id
16- role = " roles/bigquery.metadataViewer"
17- member = " serviceAccount:${ var . pubsub_service_account } "
21+ resource "google_bigquery_table_iam_member" "viewer" {
22+ project = local. bigquery_project_id
23+ dataset_id = local. bigquery_dataset_id
24+ table_id = local. bigquery_table_id
25+ role = " roles/bigquery.metadataViewer"
26+ member = " serviceAccount:${ var . pubsub_service_account } "
1827}
1928
20- resource "google_project_iam_member" "editor" {
21- project = data. google_project . project . project_id
22- role = " roles/bigquery.dataEditor"
23- member = " serviceAccount:${ var . pubsub_service_account } "
29+ resource "google_bigquery_table_iam_member" "editor" {
30+ project = local. bigquery_project_id
31+ dataset_id = local. bigquery_dataset_id
32+ table_id = local. bigquery_table_id
33+ role = " roles/bigquery.dataEditor"
34+ member = " serviceAccount:${ var . pubsub_service_account } "
2435}
0 commit comments