[英]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.