【问题标题】:Creating and disposing SecretClient创建和释放 SecretClient
【发布时间】:2022-07-08 05:27:08
【问题描述】:

如何从Azure.Security.KeyVault.Secrets 创建和处置 SecretClient?我正在从 KeyVaultClient 迁移,似乎找不到太多关于此的文档。

【问题讨论】:

    标签: c# .net-core azure-keyvault


    【解决方案1】:

    根据应用程序的用例,SecretClient 提供同步和异步 活动。初始化 SecretClient 后,您可以与 Azure Key Vault 中的机密进行交互。

    创建秘密:

    KeyVaultSecret secret = client.SetSecret("secret-name", "secret-value");
    
    Console.WriteLine(secret.Name);
    Console.WriteLine(secret.Value);
    Console.WriteLine(secret.Properties.Version);
    Console.WriteLine(secret.Properties.Enabled);
    

    StartDeleteSecret 删除存储在 Azure Key Vault 中的机密。如果未为 Azure Key Vault 启用 soft-delete,则会永久释放机密

    DeleteSecretOperation operation = client.StartDeleteSecret("secret-name");
    
    DeletedSecret secret = operation.Value;
    Console.WriteLine(secret.Name);
    Console.WriteLine(secret.Value);
    

    有关详细信息,请参考以下链接:

    Azure.Security.KeyVault.Secrets

    Azure/azure-sdk-for-net

    【讨论】:

      【解决方案2】:

      有一篇非常好的文章解释了 Azure SDK 的客户端如何工作 - Lifetime management for Azure SDK .NET clients

      • 客户端生命周期:Azure SDK 客户端生命周期管理的主要规则是:将客户端视为单例
      • 线程安全:客户端是线程安全的。模型不是线程安全的。
      • 客户端是不可变的
      • 客户端不是一次性的:默认共享 HttpClient:经常出现的一个问题是,为什么基于 HTTP 的 Azure 客户端不实现 IDisposable,而在内部使用一次性的 HttpClient?默认情况下,所有 Azure SDK 客户端都使用一个共享的 HttpClient 实例,并且不会创建任何其他需要主动释放的资源。共享客户端实例在整个应用程序生命周期中都存在。

      来自Azure Key Vault secret client library for .NET,有很多关于如何使用新客户端的示例:

      // Create a new secret client using the default credential from Azure.Identity using environment variables previously set,
      // including AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID.
      var client = new SecretClient(vaultUri: new Uri(vaultUrl), credential: new DefaultAzureCredential());
      
      // Create a new secret using the secret client.
      KeyVaultSecret secret = client.SetSecret("secret-name", "secret-value");
      
      // Retrieve a secret using the secret client.
      secret = client.GetSecret("secret-name");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        • 2013-09-14
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多