0

我正在尝试通过 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"
}

}

4

1 回答 1

1

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 发送授权令牌。

对于计划 Dataflow 作业,您可以改为查看此答案。

于 2019-03-15T19:12:45.053 回答