我正在尝试通过Google Cloud Scheduler执行自定义数据流模板,但是当我执行作业时,出现了UNAUTHENTICATED
异常。
如何授予Google Cloud Scheduler访问权限以使用Dataflow google API?
这是我正在使用的URL和POST正文:
https://dataflow.googleapis.com/v1b3/projects/<<PROJECT>>/templates:launch?gcsPath=gs://<<GCS_BUCKET>>/template
{
"jobName": "job-name-scheduled",
"parameters": {
"param1" : "parmval1"
"environment": {
"tempLocation": "gs://<<BUCKET>>/temp",
"region": "us-east1"
}
}
答案 0 :(得分:0)
Cloud Scheduler文档指出“目标HTTP终结点必须是可公开访问的”。
通常,对于创建这种Dataflow作业,您将提交以下内容:
curl -X POST \
'https://dataflow.googleapis.com/v1b3/projects/<project>/templates:launch?gcsPath=gs://dataflow-templates/latest/Word_Count' \
-H 'Authorization: Bearer '$(gcloud auth application-default print-access-token) \
-H 'Content-Type: application/json' \
--data '{
"jobName": "scheduled_job",
"parameters": {
"inputFile" : "gs://dataflow-samples/shakespeare/kinglear.txt",
"output": "gs://<bucket>/output/my_output"
},
"environment": { "zone": "us-central1-f" }
}'
但是,您无法通过Cloud Scheduler发送授权令牌。
要安排数据流作业,您可以改为查看this answer。