You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过azure-purview Python包编程管理自定义分类(创建/删除/更新)?

如何通过azure-purview Python包编程管理自定义分类(创建/删除/更新)?

嗨,我来帮你理清这个问题!首先得明确一个关键区别:自定义分类并不是AtlasEntity,它属于Purview里的元数据定义资源,和实体是完全分开的,所以你之前用的create_or_update实体方法是没法直接用来管理分类的,得用专门的分类管理方法来操作。

核心概念澄清

你提到的JSON是实体(比如存储账户)的结构,其中的typeName是实体的类型(比如azure_storage_account),而自定义分类的typeName是你给这个分类本身起的唯一标识名称(比如Custom_Confidential_Data),两者完全不同。


创建自定义分类

要创建自定义分类,你需要先构造分类的定义结构,然后调用Purview SDK中专门的分类定义管理方法。

首先构造自定义分类的定义(这里以基于正则规则的分类为例):

custom_classification_def = {
    "category": "SENSITIVE_DATA",  # 分类所属的类别,比如SENSITIVE_DATA、BUSINESS等
    "name": "Custom_PII_Data",
    "description": "自定义的个人身份信息敏感数据分类",
    "typeName": "Custom_PII_Data",  # 这个就是分类的唯一标识,要和name一致
    "rule": {
        "kind": "Pattern",
        "pattern": {
            "regex": "^[0-9]{18}$",  # 匹配18位身份证号的正则
            "format": "Regex"
        }
    },
    "version": 1
}

然后使用PurviewMetadataClient来创建分类:

from azure.identity import DefaultAzureCredential
from azure.purview.metadata import PurviewMetadataClient

# 初始化客户端
purview_endpoint = "https://your-purview-account-name.purview.azure.com"
client = PurviewMetadataClient(
    endpoint=purview_endpoint,
    credential=DefaultAzureCredential()
)

# 创建自定义分类
response = client.classification_definitions.create_or_update(
    classification_definition_name="Custom_PII_Data",
    body=custom_classification_def
)

print("自定义分类创建成功:", response)

更新自定义分类

更新自定义分类的逻辑很简单,修改分类定义的内容(比如更新规则、描述)后,再次调用create_or_update方法即可(这个方法是幂等的,会根据名称更新已存在的分类):

# 复制原定义并修改
updated_classification_def = custom_classification_def.copy()
updated_classification_def["description"] = "更新后的个人身份信息敏感数据分类"
updated_classification_def["rule"]["pattern"]["regex"] = "^[0-9]{17,18}$"  # 适配17-18位身份证号
updated_classification_def["version"] = 2  # 版本号建议递增

# 执行更新
response = client.classification_definitions.create_or_update(
    classification_definition_name="Custom_PII_Data",
    body=updated_classification_def
)

print("自定义分类更新成功:", response)

删除自定义分类

使用delete方法即可删除指定名称的自定义分类:

client.classification_definitions.delete(
    classification_definition_name="Custom_PII_Data"
)

print("自定义分类删除成功")

额外补充:给实体应用自定义分类

如果你已经创建了自定义分类,想要给某个实体(比如你示例中的存储账户)添加这个分类标签,可以用实体的分类管理方法:

# 假设你已经获取到目标实体的GUID
target_entity_guid = "your-entity-guid-here"

# 给实体添加自定义分类
client.entities.classifications.add(
    entity_guid=target_entity_guid,
    classification_name="Custom_PII_Data"
)

备注:内容来源于stack exchange,提问作者FaCoffee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:13:02