使用云部署管理器解析部署数据流

Resolved deployment dataflow with cloud deployment manager

我用命令注册了数据流:gcloud deployment-manager type-providers create dataflow --descriptor-url='https://dataflow.googleapis.com/$discovery/rest?version=v1b3'

当我运行这个脚本

- name: "my-topic-to-avro"
  type: 'project_id/dataflow:dataflow.projects.locations.templates.launch'
  properties:
    projectId: project_id
    gcsPath: "gs://test-create-123"
    jobName: "my-topic-to-avro"
    location: "europe-west1"
    parameters:
      inputTopic: "projects/project_id/topics/test"
      outputDirectory: "gs://test-create-123/"
      avroTempDirectory: "gs://test-create-123/"

在输出中我有这个:

ERROR: (gcloud.beta.deployment-manager.deployments.update) Error in Operation [operation-1598980583c2a0ec69]: errors:
- code: RESOURCE_ERROR
  location: /deployments/quick-deployment/resources/my-topic-to-avro
  message: '{"ResourceType":"project_id/dataflow:dataflow.projects.locations.templates.launch","ResourceErrorCode":"401","ResourceErrorMessage":{"code":401,"message":"Request
    is missing required authentication credential. Expected OAuth 2 access token,
    login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.","status":"UNAUTHENTICATED","statusMessage":"Unauthorized","requestPath":"https://dataflow.googleapis.com/v1b3/projects/project_id/locations/europe-west1/templates:launch","httpMethod":"POST"}}'

我可以使用我的令牌 运行 命令:gcloud auth print-access-token,但我不知道在哪里插入我的值以及我的 yaml 的架构以插入所有值以创建数据流。

感谢任何帮助。

向数据流 API 发出 POST 请求时触发的“401 - 请求缺少必需的身份验证凭据”错误消息是由于缺少凭据。下面public reference详细说明如何使用OAuth 2.0访问GoogleAPI。请仔细阅读并确保按照提到的步骤进行操作,以免出现任何错误。

检查这个的另一个地方是仔细检查数据流 API 是否已启用并尝试将“GOOGLE_APPLICATION_CREDENTIALS”设置为指向您 service account 的 JSON正在使用。

我找到了这个 Authentication 文档,其中提到您可以使用授权 header 从项目的服务帐户提供访问令牌,您也可以尝试使用此方法,但它很重要澄清这是 GKE 集群的示例。

我注意到这个问题在 post 中得到了解决。