試圖使我的問題盡可能廣泛:使用 TextIO 將無界 PCollection 寫入 GCS 存儲(chǔ)桶時(shí),同時(shí)使用具有最小權(quán)限原則且沒有 GCS 刪除訪問權(quán)限的服務(wù)帳戶,數(shù)據(jù)流中會(huì)出現(xiàn)以下錯(cuò)誤:Error trying to copy gs://[Temporary beam file] to gs://[JSON We expect]: {"code":403,"errors":[{"domain":"global","message":"[Service Account] does not have storage.objects.delete access to [JSONFile]","reason":"forbidden"}],"message":"[Service Account] does not have storage.objects.delete access to [JSON File]"}考慮到我們不允許服務(wù)帳戶對我們正在使用的存儲(chǔ)桶進(jìn)行刪除訪問,并且數(shù)據(jù)流管道正在嘗試清理文件碎片,上述錯(cuò)誤是有道理的。然而,問題是,此時(shí)的最佳做法是提供對數(shù)據(jù)流服務(wù)帳戶的刪除訪問權(quán)限并繼續(xù)使用 TextIO?還是在我們想要攝取的 PCollection 上使用 DoFn 并使用 DoFn 使用 GCS API 將每個(gè)單獨(dú)的元素逐步寫入 GCS 存儲(chǔ)桶會(huì)更好嗎?從而顛覆了碎片清理的問題。
1 回答

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
有一個(gè)withTempDirectory
功能TextIO
應(yīng)該允許您將臨時(shí)存儲(chǔ)桶設(shè)置為服務(wù)帳戶具有更高權(quán)限的存儲(chǔ)桶。
我相信這TextIO
會(huì)將文件放入tempLocation
您的管道中。您可以將tempLocation
管道設(shè)置在安全性不那么關(guān)鍵的存儲(chǔ)桶中,并將結(jié)果寫入安全存儲(chǔ)桶。
如果這些替代方案中的任何一個(gè)有幫助,LMK。
添加回答
舉報(bào)
0/150
提交
取消