Python3:Azure密钥保险库密钥,创建RAS密钥:TypeError

Python3:Azure密钥保险库密钥,创建RAS密钥:TypeError,python,python-3.x,azure,azure-keyvault,Python,Python 3.x,Azure,Azure Keyvault,以下是中的示例: 每当我运行以下代码时: rsa_key = key_client.create_rsa_key("rsa-key-demo", size=2048) print(rsa_key.name) print(rsa_key.key_type) 密钥将在我的Azure keyVult中创建,但我始终会遇到以下错误: 回溯(最近一次调用上次):文件 “c:/Users/user/Desktop/azure_keyValut_demo.py”,第152行,rsa_密钥= 创建rsa密钥

以下是中的示例:

每当我运行以下代码时:

rsa_key = key_client.create_rsa_key("rsa-key-demo", size=2048)
print(rsa_key.name)
print(rsa_key.key_type)
密钥将在我的Azure keyVult中创建,但我始终会遇到以下错误:

回溯(最近一次调用上次):文件 “c:/Users/user/Desktop/azure_keyValut_demo.py”,第152行,rsa_密钥= 创建rsa密钥(“rsa密钥演示”,大小=2048)文件 “C:\Users\user\AppData\Local\Programs\Python36\lib\site packages\azure\core\tracing\decorator.py”, 第62行,在wrapper_use_tracer return func(*args,**kwargs)#中键入: 忽略文件 “C:\Users\user\AppData\Local\Programs\Python36\lib\site packages\azure\keyvault\keys\u client.py”, 第131行,在create_rsa_key return self.create_key(name, key_type=“RSA-HSM”如果HSM为“RSA”,则为**kwargs)文件 “C:\Users\user\AppData\Local\Programs\Python36\lib\site packages\azure\core\tracing\decorator.py”, 第62行,在wrapper_use_tracer return func(*args,**kwargs)#中键入: 忽略文件 “C:\Users\user\AppData\Local\Programs\Python36\lib\site packages\azure\keyvault\keys\u client.py”, 第96行,创建_键 **kwargs文件“C:\Users\user\AppData\Local\Programs\Python\36\lib\site packages\azure\keyvault\keys\u shared\u generated\v7\u 0\operations\u key\u vault\u client\u operations.py”, 第96行,在create_key deserialized=self._deserialize('KeyBundle')中, 响应)文件 “C:\Users\user\AppData\Local\Programs\Python36\lib\site packages\msrest\serialization.py”, 第1180行,在调用数据=self.\u解包内容(响应数据, 内容(U类型)文件 “C:\Users\user\AppData\Local\Programs\Python36\lib\site packages\msrest\serialization.py”, 第1334行,在unpack_content return json.loads(数据)文件中 “C:\Users\user\AppData\Local\Programs\Python36\lib\json\u init.py”, 第348行,加载'not{!r}'。格式(s.class.name))TypeError: JSON对象必须是str、bytes或bytearray,而不是“method”


我不太明白为什么会抛出这个异常

我在stackoverflow上发现了这个,但仍然无法理解发生了什么:


Python2.7的代码运行成功,没有任何问题

将为所有键操作(创建、删除、获取)引发异常。


所有加密操作也会发生这种情况

根据我的测试,如果我们在0.6.x版本下使用
msrest
,我们将得到错误。 我的测试步骤如下

我的
requirements.txt

azure-common==1.1.23
azure-core==1.1.1
azure-identity==1.1.0
azure-keyvault-keys==4.0.0
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
cryptography==2.8
idna==2.8
isodate==0.6.0
msal==1.0.0
msal-extensions==0.1.3
msrest==0.5.5
oauthlib==3.1.0
portalocker==1.5.2
pycparser==2.19
PyJWT==1.7.1
pywin32==227
requests==2.22.0
requests-oauthlib==1.3.0
six==1.13.0
urllib3==1.25.7

我的代码

from azure.identity import ClientSecretCredential
from azure.keyvault.keys import KeyClient

tenant_id=''
client_id=''
client_secret=''
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
client = KeyClient("https://testkey08.vault.azure.net/", credential)

key = client.create_rsa_key("rsa-key-demo", size=2048)
print(key.name)
print(key.key_type)

因此,请将
merest
更新为0.6.x。具体步骤如下

  • 创建项目
  • 安装SDK 我的
    requirements.txt
  • 代码

  • 根据我的测试,如果我们在版本0.6.x下使用
    msrest
    ,我们将得到错误。 我的测试步骤如下

    我的
    requirements.txt

    azure-common==1.1.23
    azure-core==1.1.1
    azure-identity==1.1.0
    azure-keyvault-keys==4.0.0
    certifi==2019.11.28
    cffi==1.13.2
    chardet==3.0.4
    cryptography==2.8
    idna==2.8
    isodate==0.6.0
    msal==1.0.0
    msal-extensions==0.1.3
    msrest==0.5.5
    oauthlib==3.1.0
    portalocker==1.5.2
    pycparser==2.19
    PyJWT==1.7.1
    pywin32==227
    requests==2.22.0
    requests-oauthlib==1.3.0
    six==1.13.0
    urllib3==1.25.7
    
    
    我的代码

    from azure.identity import ClientSecretCredential
    from azure.keyvault.keys import KeyClient
    
    tenant_id=''
    client_id=''
    client_secret=''
    credential = ClientSecretCredential(tenant_id, client_id, client_secret)
    client = KeyClient("https://testkey08.vault.azure.net/", credential)
    
    key = client.create_rsa_key("rsa-key-demo", size=2048)
    print(key.name)
    print(key.key_type)
    
    

    因此,请将
    merest
    更新为0.6.x。具体步骤如下

  • 创建项目
  • 安装SDK 我的
    requirements.txt
  • 代码

  • 非常感谢,我升级了软件包,效果很好。我很好奇你是怎么弄明白的,我正在努力学习如何在将来调试类似的问题。非常感谢你,我升级了软件包,它工作得很好。我很好奇你们是怎么弄明白的,我正在努力学习将来如何调试类似的问题。
    pip install -r requirements.txt
    
    from azure.identity import ClientSecretCredential
    from azure.keyvault.keys import KeyClient
    
    tenant_id=''
    client_id=''
    client_secret=''
    credential = ClientSecretCredential(tenant_id, client_id, client_secret)
    client = KeyClient("https://testkey08.vault.azure.net/", credential)
    
    key = client.create_rsa_key("rsa-key-demo", size=2048)
    print(key.name)
    print(key.key_type)