![](/img/trans.png)
[英]How to use Azure Key Vault Python SDK to add access policy?
[英]How to catch Key Vault SecretClient errors Azure Python SDK?
我是 Python 的新手。 我有一个可以工作的整体程序,我想使用try:
- except:
分解为单个函数 ( def
) 来处理错误。
有哪些方法可以在创建 Key Vault SecretClient
捕获错误?
尝试 1:
kv_name
时,这里什么也没有发生。except:
消息。credentials = DefaultAzureCredential()
def create_kv_client(kv_name, credentials):
try:
kv_uri = 'https://' + kv_name + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
except:
logging.error('####### Failed to create Key Vault Client #######')
return kv_client
kv_client = create_kv_client('notmykeyvaultname', credentials)
尝试 2:
kv_name
时,这里也没有任何kv_name
credentials = DefaultAzureCredential()
def create_kv_client(kv_name, credentials):
try:
kv_uri = 'https://' + kv_name + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
except:
logging.error('####### Failed to create Key Vault Client #######')
return kv_client
kv_client = create_kv_client('notmykeyvaultname', credentials)
if kv_client == None:
raise Exception('Failed to create Key Vault Client')
尝试 3:
try:
- except:
移动到函数调用也没有触发日志消息SecretClient
在这里失败!?credentials = DefaultAzureCredential()
def create_kv_client(kv_name, credentials):
kv_uri = 'https://' + kv_name + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
return kv_client
try:
kv_client = create_kv_client('notmykeyvaultname', credentials)
except:
logging.info('####### Failed to create Key Vault client #######')
完整性检查:
SecretClient
的输出不是None
。SecretClient
已成功创建?credentials = DefaultAzureCredential()
kv_uri = 'https://' + 'notmykeyvaultname' + '.vault.azure.net'
kv_client = SecretClient(vault_url=kv_uri, credential=credentials)
kv_client
`<azure.keyvault.secrets._client.SecretClient at 0x1512046b370>`
构造函数不会检查给定的保险库是否存在,或者您是否可以访问它,因此在您的尝试中它会成功:您获得一个SecretClient
实例,没有引发错误。
如果 URL 是不存在的保管库或您无权访问的保管库的 URL,则在您第一次尝试操作时会看到错误:
>>> vault_url = "https://nonexistentvaultdoesnotexist.vault.azure.net"
>>> client = SecretClient(vault_url, DefaultAzureCredential())
>>> client.get_secret('secret_name')
Traceback (most recent call last):
...
azure.core.exceptions.ServiceRequestError: <urllib3.connection.VerifiedHTTPSConnection object at 0x000001E313946198>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed
失败的操作会引发azure-core 中定义的错误,您可以像往常一样使用 try/except 块处理这些错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.