我已经使用apache beam开发了一个单词计数管道,并且我能够在我的机器上本地运行python代码。但是当尝试在Dataflow上这样做时得到这个错误。
apitools.base.py.exceptions。HttpForbiddenError:访问http错误https://dataflow.googleapis.com/v1b3/projects/mw-da-training/locations/%3Dus-central/jobs?alt=json:{'vary': 'Origin, X-Origin, Referer', 'content-type':application/json的;charset=UTF-8', 'date': 'Fri, 27 May 2022 11:56:56 .'server': 'ESF', 'cache-control': 'private', 'x-xss-protection':'0', 'x-frame-options': 'SAMEORIGIN', 'x-content-type-options':'nosniff', 'alt-svc': 'h3=";马= 2592000,h3-29 =":443";;马= 2592000,h3-Q050 =":443";;马= 2592000,h3-Q046 =":443";;马= 2592000,h3-Q043 =":443";;马= 2592000,quic =":443";;马= 2592000;v ="46,43个"、"传输编码":"分块"、"状态":"403","内容长度":"158","内容编码":gzip}祝辞,内容& lt; {
"error" {"code" 403,message": " 'locations/=us-central'的权限被拒绝(或者可能不存在)。"status"PERMISSION_DENIED"}}
您可能需要使用Google Cloud验证您的管道。有几种方法可以做到这一点:
使用GOOGLE_APPLICATION_CREDENTIALS
这是一个环境变量,Google应用程序使用它与Google Cloud进行身份验证。你会:
- 下载服务帐号密钥并保存为文件(例如
my_credential.json
) - 将
GOOGLE_APPLICATION_CREDENTIALS
变量指向该文件(即export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my_credentials.json
)。你可以走了。运行您的管道!
使用gcloud
登录
- 使用
gcloud auth application-default login
登录您自己的用户帐号。这将为您的会话设置应用程序的默认登录。你可以走了。运行您的管道!