我正在尝试使用适用于Google Cloud Data Catalog API beta 1的Python客户端来创建分类和策略标签。这是我的代码:
from google.cloud.datacatalog_v1beta1 import PolicyTagManagerClient, enums, types
from google.oauth2 import service_account
key_path = "./xxxxx.json"
credentials = service_account.Credentials.from_service_account_file(
key_path,
scopes=["https://www.googleapis.com/auth/cloud-platform"],
)
client = PolicyTagManagerClient(credentials=credentials)
resource_name = '//bigquery.googleapis.com/projects/{}/locations/us/taxonomies/{}'.format('3xxxxxxxx58','50xxxxxxxxx14')
taxonomy = client.get_taxonomy(resource_name)
print(taxonomy)
pt_taxonomy = types.Taxonomy()
pt_taxonomy.display_name = 'PHI'
response = client.create_taxonomy(parent=<project_id>, taxonomy=pt_taxonomy)
get_taxonomy()出现以下错误
google.api_core.exceptions.MethodNotImplemented: 501 Operation is not implemented, or supported, or enabled.
对于create_taxonomy()我得到了:
"Received http2 header with status: 404","grpc_status":1,"value":"404"}"
有什么主意吗? 谢谢您的帮助!
顺便说一句google api调用确实可以正常工作,下面的示例返回200。
所以我将代码更改为:
pt_taxonomy1 = types.Taxonomy()
pt_taxonomy1.display_name = 'PHI1'
response = client.create_taxonomy('projects/39xxxxx/locations/us', pt_taxonomy1)
仍然是501错误
答案 0 :(得分:0)
从文档click here中注意到,此处已描述了错误消息NOT_IMPLEMENTED(501)。我猜您需要在client.get_taxonomy()上使用诸如project_id,region和cluster之类的参数,因为资源具有这些参数。您可以查看文章click here的授权范围,也可以查看click here的API方法。
答案 1 :(得分:0)
@hdu,我提交了一个错误,描述了客户端库存储库https://github.com/googleapis/python-datacatalog/issues/33中的501
错误。
尽管存在501
错误,但我认为您的脚本中还有另一个小问题:
resource_name ='//bigquery.googleapis.com/projects/{}/locations/us/taxonomies/{}'.format('3xxxxxxxx58','50xxxxxxxxx14') 分类法= client.get_taxonomy(资源名称)
获取分类标准,期望所请求分类标准的资源名称作为参数,格式为projects/{project_id}/locations/{location_id}/taxonomies/{taxonomies_id}
(source)。