首页 > 解决方案 > 如何从 paged.SecretItemPaged 类型对象中获取秘密值

问题描述

我想使用 Python API 从给定的 SecretID 中获取 Secret 值。我有以下代码。在最后一行,我尝试使用 get_secret_versions 函数获取 SECRET_VERSION。该函数返回 SecretItemPaged 类型的 Object。有人可以帮忙从这个对象中检索 secret_version。

#!/usr/bin/python
from azure.keyvault import KeyVaultClient
    from azure.common.credentials import ServicePrincipalCredentials
    import pprint
    #from msrestazure.azure_active_directory import 
    ServicePrincipalCredentials



credentials = ServicePrincipalCredentials(
      client_id = 'XXX',
      secret = 'XXX',
      tenant = 'XXX'
)

client = KeyVaultClient(credentials)

    VAULT_URL='https://xxxxxxx.vault.azure.net'
    SECRET_ID='https://xxxxxxxx.vault.azure.net/secrets/2345mat'
    SECRET_VERSION= client.get_secret_versions(VAULT_URL , SECRET_ID)

标签: pythonazure-keyvaultazure-sdk-python

解决方案


SecretItemPaged 是对象的迭代器,遵循 Python 协议: https ://docs.python.org/3/glossary.html#term-iterable https://docs.python.org/3/glossary.html#term -迭代器

话虽这么说,然后您可以使用 alist来使用它,或者next调用直到您获得一个StopIteration对象等。

最简单的方法是将其作为列表使用:

list(client.get_secret_versions(VAULT_URL , SECRET_ID))

推荐阅读