“ ValueError:协议消息DeidentifyTemplate没有'deidentifyTemplate'字段。”

时间:2019-10-15 05:33:40

标签: python-3.x google-cloud-platform google-cloud-dlp

我正在尝试使用GCP DLP API客户端库(Python 3)创建DE标识模板。我已经使用POST方法成功创建了取消身份验证模板。 DE-identification模板使用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 :协议消息DeidentifyTemplate没有“ deidentifyTemplate”字段。

2 个答案:

答案 0 :(得分:1)

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

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

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

对于DeidentiftTemplate is defined,您缺少一些参数:

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

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

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

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

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

创建时间 栏位google.privacy.dlp.v2.DeidentifyTemplate.create_time

deidentify_config 栏位google.privacy.dlp.v2.DeidentifyTemplate.deidentify_config

说明 栏位google.privacy.dlp.v2.DeidentifyTemplate.description

显示名称 栏位google.privacy.dlp.v2.DeidentifyTemplate.display_name

名称 栏位google.privacy.dlp.v2.DeidentifyTemplate.name

更新时间 栏位google.privacy.dlp.v2.DeidentifyTemplate.update_time

答案 1 :(得分:0)

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

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

}

您必须为python DLP api调用将“ deidentifyConfig”更改为“ deidentify_config”。

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