"ValueError: Protocol message DeidentifyTemplate has no 'deidentifyTemplate' field."

"ValueError: Protocol message DeidentifyTemplate has no 'deidentifyTemplate' field."

我正在尝试使用 GCP DLP API 客户端库(Python 3)创建 DE-identification 模板。我已经使用 POST 方法成功创建了去标识化模板。 DE 身份识别模板的作用是使用 Google KMS 包装密钥对一些 PII 字段进行加密。

      client.create_deidentify_template(
          parent=parent,
          deidentify_template=deidentify_template,
          template_id=templateId,
          retry=google.api_core.gapic_v1.method.DEFAULT,
          timeout=google.api_co
          re.gapic_v1.method.DEFAULT,
          metadata=None)

错误:

ValueError: Protocol message DeidentifyTemplate has no 'deidentifyTemplate' field.

我认为您的参数 deidentify_template=deidentify_template 是问题所在。 来自 Google DLP API Python Client 文档:

deidentify_template (Union[dict, DeidentifyTemplate]) – 要创建的 DeidentifyTemplate。

如果提供了dict,它必须与protobuf消息DeidentifyTemplate的格式相同

为什么 DeidentiftTemplate is defined 你缺少一些参数:

display_name 显示名称(最多 256 个字符)。

描述 简短说明(最多 256 个字符)。

create_time inspectTemplate 的创建时间戳,仅输出字段。

update_time inspectTemplate 的最后更新时间戳,仅输出字段。

deidentify_config ///////////// //模板核心内容 //////////////

create_time 字段 google.privacy.dlp.v2.DeidentifyTemplate.create_time

deidentify_config 字段 google.privacy.dlp.v2.DeidentifyTemplate.deidentify_config

描述 字段 google.privacy.dlp.v2.DeidentifyTemplate.description

display_name 字段 google.privacy.dlp.v2.DeidentifyTemplate.display_name

姓名 字段 google.privacy.dlp.v2.DeidentifyTemplate.name

update_time 字段 google.privacy.dlp.v2.DeidentifyTemplate.update_time

deidentify_template: DLP api 采用字段名称而不是字段类型。 例如:

{
    "display_name" : "de_identification_template",
    "description" : "masking sensitive data",
    "deidentify_config" : {
             "info_type_transformations" : {
                      #your specification here.
                }

}

您必须将 "deidentifyConfig" 更改为 "deidentify_config" 以便您 python DLP api 调用。

https://cloud.google.com/dlp/docs/creating-templates-deid 具有误导性。它仅适用于 Web DLP API POST,不适用于 python 客户端库。