现在我没有设法让用于 python 的 Google Cloud Platform Data Loss Prevention (DLP) 客户端库在 SSL 代理后面工作(它可以与其他 GCP 客户端库一起正常工作,例如用于存储或 bigquery): https://cloud .google.com/dlp/docs/libraries#client-libraries-usage-python
所以我尝试使用request.post
SSL 代理背后的 API
url = 'https://dlp.googleapis.com/v2/projects/'+os.environ['PROJECT_ID']+'/content:inspect'
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {}'.format(subprocess.run('gcloud auth print-access-token', shell=True, check=True, stdout=subprocess.PIPE).stdout.decode().replace('\n', '').replace('\r', ''))
}
}
json_response = requests.post(url=url, json=parsed, headers=headers, proxies=proxies, verify=True)
json.loads(json_response.text)
CloudShell
这在我安装的本地机器上工作正常,但不是SDK
。原因在于CloudShell
:
gcloud auth print-access-token
在我的本地机器(Windows 或 Mac)上给我相同的令牌几分钟,每次我执行命令时,我都会得到一个新的令牌。在我的本地机器上,如果我在标头中用令牌替换 gcloud 命令,CloudShell
它工作正常。我的SDK
本地机器和CloudShell
.
问题1:预计每次我们在gcloud auth print-access-token
本地运行时(SDK
),我们都会得到一个新的token?(在CloudShell
几分钟内它是相同的令牌)
问题 2:生成令牌的最简单/最佳方法是什么?因为gcloud auth print-access-token
在使用本地机器和SDK
. 这不是一个高效的应用程序。这只是为了测试 DLP API。