小编tas*_*sha的帖子

如何正确创建具有 terraform 角色的 gcp 服务帐户

这是我用来创建服务帐户并为其绑定角色的 terraform 代码:

resource "google_service_account" "sa-name" {
  account_id = "sa-name"
  display_name = "SA"
}

resource "google_project_iam_binding" "firestore_owner_binding" {
  role               = "roles/datastore.owner"
  members = [
    "serviceAccount:sa-name@${var.project}.iam.gserviceaccount.com",
  ]
  depends_on = [google_service_account.sa-name]
}
Run Code Online (Sandbox Code Playgroud)

上面的代码效果很好......除了它datastore.owner从之前分配给该角色的项目中的任何其他服务帐户中删除了。我们有一个多个团队使用的单个项目,并且有不同团队管理的服务帐户。我的 terraform 代码只有我们团队的服务帐户,我们最终可能会破坏其他团队的服务帐户。

有没有另一种方法可以在 terraform 中做到这一点?

这当然可以通过 GCP UI 或 gcloud cli 完成,而不会出现任何问题或影响其他 SA。

service-accounts google-cloud-platform terraform terraform-provider-gcp

7
推荐指数
2
解决办法
4821
查看次数

如何正确地将 kafka 流 pyspark 作业提交到 Google Dataproc

我尝试通过 Dataproc UI 提交 pyspark 作业并不断收到错误,看起来它没有加载 kafka 流包。

这是我的工作中 UI 提供的 REST 命令: POST /v1/projects/projectname/regions/global/jobs:submit/ { "projectId": "projectname", "job": { "placement": { "clusterName": "cluster-main" }, "reference": { "jobId": "job-33ab811a" }, "pysparkJob": { "mainPythonFileUri": "gs://projectname/streaming.py", "args": [ "--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.2.0" ], "jarFileUris": [ "gs://projectname/spark-streaming-kafka-0-10_2.11-2.2.0.jar" ] } } }

我尝试将 kafka 包作为 args 和 jar 文件传递​​。

这是我的代码(streaming.py):

from pyspark import SparkContext
from pyspark.sql import SparkSession
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
import json


sc = SparkContext()

spark = SparkSession.builder.master("local").appName("Spark-Kafka-Integration").getOrCreate() …
Run Code Online (Sandbox Code Playgroud)

python google-cloud-platform pyspark google-cloud-dataproc

1
推荐指数
1
解决办法
1346
查看次数