我正在尝试在新的 GCP 项目中使用 Terraform 创建资源。作为其中的一部分,我想设置roles/storage.legacyBucketWriter
为 Google 托管服务帐户,该project-[project-number]@storage-transfer-service.iam.gserviceaccount.com
帐户为特定存储桶运行存储传输服务作业(模式为 )。我正在使用以下配置:
resource "google_storage_bucket_iam_binding" "publisher_bucket_binding" {
bucket = "${google_storage_bucket.bucket.name}"
members = ["serviceAccount:project-${var.project_number}@storage-transfer-service.iam.gserviceaccount.com"]
role = "roles/storage.legacyBucketWriter"
}
Run Code Online (Sandbox Code Playgroud)
澄清一下,我想这样做,以便当我使用 JSON API 创建一次性传输作业时,它不会通过先决条件检查。
当我运行 Terraform apply 时,我得到以下信息:
Error applying IAM policy for Storage Bucket "bucket":
Error setting IAM policy for Storage Bucket "bucket": googleapi:
Error 400: Invalid argument, invalid
Run Code Online (Sandbox Code Playgroud)
我认为这是因为有问题的服务帐户尚不存在,因为我也无法通过控制台执行此操作。
是否需要启用任何其他服务才能创建服务帐户?
google-cloud-storage google-cloud-platform terraform terraform-provider-gcp
Airflow 允许您将 dag 依赖的依赖项(外部 python 代码到 dag 代码)放在 dag 文件夹中。这意味着这些外部 python 代码中的任何组件/成员或类都可用于 dag 代码。
但是,在执行此操作时(在云组合环境的 GCS dag 文件夹中),依赖项的组件对 dag 不可用。Airflow Web UI 中显示类似于以下内容的错误:Broken DAG: [/home/airflow/gcs/dags/....py] No module named tester. 其中 tester 是 dags 文件夹中的一个单独的 python 文件。
在使用 Google 的 SDK(运行实际的 Airflow 命令)测试这些任务时,任务运行良好,但似乎在 Kubernettes 中的某个地方创建了这些容器作业,它似乎也没有接管依赖项。
我意识到 Cloud Compose 处于测试阶段,但我想知道我是否做错了什么。
google-cloud-platform google-kubernetes-engine airflow google-cloud-composer