使用云部署管理器解析部署数据流
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 中得到了解决。
我用命令注册了数据流: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 中得到了解决。