在使用terraform尝试使用google_bigquery_data_transfer_config复制数据时出现错



我正在尝试使用terraform设置bigquery数据传输配置。我用的是我的个人gcp账户。我在我的笔记本电脑上设置了terraform,以便terraform和gcp可以一起工作。

在main.tf中尝试下面的代码,

terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "4.18.0"
}
}
}
provider "google" {
# Configuration options
project="gcp-project-100"
region="us-central1"
zone="us-central1-a"
credentials = "keys.json"
}
data "google_project" "project" {
}
resource "google_project_iam_member" "permissions" {
project = data.google_project.project.project_id
role   = "roles/iam.serviceAccountShortTermTokenMinter"
member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com"
}
resource "google_bigquery_data_transfer_config" "query_config" {
depends_on = [google_project_iam_member.permissions]
display_name           = "my-query"
location               = "US"
data_source_id         = "scheduled_query"
schedule               = "every wednesday 09:30"
service_account_name   = "service-${data.google_project.project.number}@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com"
destination_dataset_id = "practice"
params = {
destination_table_name_template = "test_gsod"
write_disposition               = "WRITE_TRUNCATE"
query                           = "select station_number , year , month,day, mean_temp,mean_dew_point ,mean_visibility from `bigquery-public-data.samples.gsod`"
}
}

地形应用失败,详情如下

google_bigquery_data_transfer_config。query_config:创建…╷│错误:创建配置错误:googleapi:错误403:调用者没有权限││with google_bigquery_data_transfer_config.query_config;│on main。第27行,在资源google_bigquery_data_transfer_config;"query_config"│27:resource "google_bigquery_data_transfer_config;"query_config"{

有没有人可以帮我,如何正确地做这个设置。

问题现已解决。我已经使用了下面的代码片段以及bigquery admin角色为我的terraform服务帐户。

terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "4.18.0"
}
}
}

provider "google" {
# Configuration options
project="gcp-project-100"
region="us-central1"
zone="us-central1-a"
credentials = "keys.json"
}

resource "google_bigquery_data_transfer_config" "query_config" {
display_name           = "my-query"
location               = "US"
data_source_id         = "scheduled_query"
schedule               = "every 15 mins"
destination_dataset_id = "practice"
params = {
destination_table_name_template = "test_gsod"
write_disposition               = "WRITE_TRUNCATE"
query                           = "select station_number , year , month,day, mean_temp,mean_dew_point ,mean_visibility from `bigquery-public-data.samples.gsod`"
}
} 
Now it is working fine. Thanks.

相关内容

最新更新