bw4*_*4sz 5 python google-cloud-storage gcloud google-cloud-dataflow apache-beam
我正在 Google 云数据流上构建光束管道。
我收到错误消息,指出云数据流无权写入临时目录。
这很令人困惑,因为显然数据流能够写入存储桶,它创建了一个临时文件夹。
为什么我能够写入暂存文件夹,但不能写入临时文件夹?
我正在计算引擎上的 Docker 容器内运行。我已通过我的服务帐户进行了完全身份验证。
PROJECT=$(gcloud config list project --format "value(core.project)")
BUCKET=gs://$PROJECT-testing
python tests/prediction/run.py \
--runner DataflowRunner \
--project $PROJECT \
--staging_location $BUCKET/staging \
--temp_location $BUCKET/temp \
--job_name $PROJECT-deepmeerkat \
--setup_file tests/prediction/setup.py
Run Code Online (Sandbox Code Playgroud)
编辑
回应@alex amato
该存储桶属于该项目还是属于另一个项目?是的,当我进入该项目的主屏幕时,这是列出的四个桶之一。我通常从这个存储桶上传数据并与其他谷歌云服务(云视觉 API)进行交互。
请您提供完整的错误消息。
“(8d8bc4d7fc4a50bd):无法将文件写入临时位置'gs://api-project-773889352370-testing/temp/api-project-773889352370-deepmeerkat.1498771638.913123'。请确保此目录的存储桶存在,并且运行工作流的项目具有写入该工作流所需的权限。”
“8d8bc4d7fc4a5f8f):工作流程失败。原因:(8d8bc4d7fc4a526c):对临时位置或暂存文件的一项或多项访问检查失败。请参阅其他错误消息以了解详细信息。有关安全和权限的更多信息,请参阅https://cloud .google.com/dataflow/security-and-permissions。”
您能否确认尚不存在与您尝试使用的 GCS 文件夹路径名称相匹配的现有 GCS 对象?
是的,存储桶中没有名为 temp 的文件夹。
Bucket权限具有全局管理员权限
与我的 gcloud 身份验证匹配
@chamikara 是正确的。尽管从我的服务帐户继承了凭据,但云数据流需要自己的凭据。
您是否还可以授予对云服务帐户 (
<project-number>@developer.gserviceaccount.com) 的访问权限,如 cloud.google.com/dataflow/security-and-permissions 中所述。