[英]How to convert a non-templated beam job to templated job and run it on GCP Dataflow runner?
[英]How to run a GCP Cloud Function written in Golang to run a Dataflow job to import text file to Spanner?
我使用了以下示例: https://github.com/apache/beam/blob/master/sdks/go/examples/wordcount/wordcount.go#L82以及 Google Cloud Support 的建議,使用以下內容運行數據流導入作業:
flag.Parse()
flag.Set("runner", "dataflow")
flag.Set("project"xxxx "rp")
flag.Set("region", "us-central1")
flag.Set("staging_location", "gs://xxx/temp")
flag.Set("job_name", "import-delivery_schedule")
beam.Init()
p := beam.NewPipeline()
p.Root()
if err := beamx.Run(context.Background(), p); err != nil {
log.Fatalf("Failed to execute job: %v", err)
}
雲function與數據庫在同一個項目中。 數據流導入作業與數據庫位於同一項目中。 導入作業從控制台成功運行。
但是,我無法讓它工作。
我收到此錯誤:“函數執行耗時 18 毫秒,完成狀態為:‘連接錯誤’”
我對將文本文件導入扳手表的其他方法持開放態度。 你有什么建議?
如果導入數據流作業正在創建並成功運行,那么 GCP 雲 function 似乎沒有問題。
確保數據流工作者有足夠的權限訪問數據庫。 https://cloud.google.com/spanner/docs/import#iam數據流作業需要這些權限才能訪問和寫入 spanner(或其中的一部分,具體取決於您在導入中所做的修改類型) . 將這些角色包含到數據流工作者所承擔的服務帳戶中。 https://cloud.google.com/dataflow/docs/concepts/security-and-permissions#worker-service-account
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.