当前位置: 首页 > 知识库问答 >
问题:

如何配置Google云平台数据丢失预防客户端库,使python在SSL代理后工作?

冀望
2023-03-14

我正在使用文档中的代码片段:

# Import the client library
import google.cloud.dlp
import os
import subprocess
import json
import requests
import getpass
import urllib.parse

import logging

logging.basicConfig(level=logging.DEBUG)

# Instantiate a client.
dlp_client = google.cloud.dlp.DlpServiceClient()

# The string to inspect
content = 'Robert Frost'

# Construct the item to inspect.
item = {'value': content}

# The info types to search for in the content. Required.
info_types = [{'name': 'FIRST_NAME'}, {'name': 'LAST_NAME'}]

# The minimum likelihood to constitute a match. Optional.
min_likelihood = 'LIKELIHOOD_UNSPECIFIED'

# The maximum number of findings to report (0 = server maximum). Optional.
max_findings = 0

# Whether to include the matching string in the results. Optional.
include_quote = True

# Construct the configuration dictionary. Keys which are None may
# optionally be omitted entirely.
inspect_config = {
    'info_types': info_types,
    'min_likelihood': min_likelihood,
    'include_quote': include_quote,
    'limits': {'max_findings_per_request': max_findings},
}

# Convert the project id into a full resource id.
parent = dlp_client.project_path('my-project-id')

# Call the API.
response = dlp_client.inspect_content(parent, inspect_config, item)

# Print out the results.
if response.result.findings:
    for finding in response.result.findings:
        try:
            print('Quote: {}'.format(finding.quote))
        except AttributeError:
            pass
        print('Info type: {}'.format(finding.info_type.name))
        # Convert likelihood value to string respresentation.
        likelihood = (google.cloud.dlp.types.Finding.DESCRIPTOR
                      .fields_by_name['likelihood']
                      .enum_type.values_by_number[finding.likelihood]
                      .name)
        print('Likelihood: {}'.format(likelihood))
else:
    print('No findings.')

我还设置了以下ENV变量:

GOOGLE_APPLICATION_CREDENTIALS
REQUESTS_CA_BUNDLE
HTTP_PROXY
HTTPS_PROXY
E0920 12:21:49.931000000 24852 src/core/tsi/ssl_transport_security.cc:1229] Handshake failed with fatal error SSL_ERROR_SSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed.
DEBUG:google.api_core.retry:Retrying due to 503 Connect Failed, sleeping 0.0s ...
E0920 12:21:50.927000000 24852 src/core/tsi/ssl_transport_security.cc:1229] Handshake failed with fatal error SSL_ERROR_SSL: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed.
DEBUG:google.api_core.retry:Retrying due to 503 Connect Failed, sleeping 0.0s ...

它似乎与CA证书和握手有关。对于BigQuery和Storage Client python库,相同的CA没有问题。知道吗?

共有1个答案

须衡虑
2023-03-14
GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=path_file.pem  
# for debugging
RPC_TRACE=transport_security,tsi  
GRPC_VERBOSITY=DEBUG
 类似资料:
  • 我正在与谷歌云平台合作。学习和尝试一些东西,比如Bigquery和Google云存储。 我感到困惑的是,所有这些东西都有两个官方API:gcloud API和Google API Python客户端。在google Cloud的“入门”教程中,推荐的API是,gcloud API的文档似乎不是很详细。 简而言之,要以编程方式访问Google云平台, null

  • Google数据丢失预防API支持.pdf还是.docx?我正在尝试在Java中对*.pdf文件做缩减,以隐藏敏感数据。 多谢!EMI

  • 当broker重新启动时,它在第一次工作时很好。但是,这个触发器在第二次重新启动代理时不起作用。我该怎么修好它? 非常感谢。

  • 这里在github上发布的DynamoDB Streams Kinesis Adaptor具有此功能,并带有以下注释: Kinesis模型在父分片合并的情况下提供相邻的父分片ID。由于DynamoDB Streams不支持合并,因此始终返回null。 我对此感到担忧,我将使用7个碎片的示例来描述我的担忧,为了简单起见,让我们将它们命名为0到6。 由于保留策略,0的父级不再可用,1、2、3、4、5是

  • GoBelieve IM云平台,iOS 端,提供了功能齐全,性能健壮,需求完善的 IM 客户端实现,和 GoBelieve IM 云平台配套。 GoBelieve IM云平台特色: 1.一小时接入。专注IM,无冗余功能 几行代码,一小时接入 省时省力。 2.自由定制。提供最新源码, 自行二次开发,业务协议 交互视觉均可根据业务需求 自由定制。   3.完全开源。国内唯一开源IM服务,所有源码在Gi

  • GoBelieve IM云平台  Android端         Android 端,提供了功能齐全,性能健壮,需求完善的IM客户端实现,需和 GoBelieve IM 云平台配套 GoBelieve IM云平台特色: 1.一小时接入。专注IM,无冗余功能 几行代码,一小时接入 省时省力。 2.自由定制。提供最新源码, 自行二次开发,业务协议 交互视觉均可根据业务需求 自由定制。   3.完全开