我想使用python脚本将我创建的策略检索到BigQuery中。该问题与丢失所需的身份验证凭据有关。据说该脚本需要OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。但我不确定在哪里可以找到它,也不确定在我的剧本中应该放在哪里。有人可以帮我。
我的代码:
导入请求
response = requests.get("https://bigquery.googleapis.com/bigquery/v2/projects/project123/datasets/Dataset123/tables/Test/rowAccessPolicies")
response.json()
所需输出:
{
"rowAccessPolicies": [
{
"rowAccessPolicyReference": {
"projectId": "project123",
"datasetId": "Dataset123",
"tableId": "Test",
"policyId": "test_2"
},
"filterPredicate": "gender = "M"",
"creationTime": "2021-11-09T09:45:35.181602Z",
"lastModifiedTime": "2021-11-09T09:45:35.181602Z"
}
]
}
实际输出:
{'error': {'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',
'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo',
'reason': 'CREDENTIALS_MISSING',
'domain': 'googleapis.com',
'metadata': {'method': 'google.cloud.bigquery.v2.RowAccessPolicyService.ListRowAccessPolicies',
'service': 'bigquery.googleapis.com'}}]}}
正如您的消息中所说:"请求缺少所需的身份验证凭证";。您应该在请求中提供凭据。你有几种方法可以做到这一点:
- 在标头中添加凭据(取决于您的身份验证类型(
- 使用Google Api Core(https://googleapis.dev/python/google-api-core/latest/auth.html)
- 或者使用Google Cloud Python库,该库包含以下过程(https://github.com/googleapis/google-cloud-python)