gcp datacatalog_v1beta1创建分类和策略标签失败

时间:2020-05-20 15:15:38

标签: google-cloud-platform google-api-python-client google-data-api

我正在尝试使用适用于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。

enter image description here

所以我将代码更改为:

pt_taxonomy1 = types.Taxonomy()
pt_taxonomy1.display_name = 'PHI1'

response = client.create_taxonomy('projects/39xxxxx/locations/us', pt_taxonomy1)

仍然是501错误

2 个答案:

答案 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)。