gpt4 book ai didi

azure - 如何从 Azure Key Vault 获取所有 secret ,然后使用 ASP.Net Core 加载到配置对象中

转载 作者:行者123 更新时间:2023-12-03 01:00:24 33 4
gpt4 key购买 nike

我正在致力于将 Azure Key Vault 集成到 ASP.NETCore 2.1 Azure WebJob 中。为此,我尝试对 WebJob 使用以下代码。.NetCore WebJob: Program.cs

        private static IConfiguration GetConfiguration(ServiceCollection services)
{
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
// build config
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
var keyVault = configuration.GetSection("KeyVault");
configuration.AddAzureKeyVault(
$"https://{keyVault["Vault"]}.vault.azure.net/",
keyVault["ClientId"],
keyVault["ClientSecret"]);
return configuration;
}

但我收到以下错误:

IConfigurationBuilder Does Not Contain Definition for AddAzureKeyVault

我使用了以下 NuGet 包:

    <PackageReference Include="Microsoft.Azure.KeyVault" Version="2.3.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.1" />

最佳答案

如果您想在Web作业中使用Azure Key Vault,请引用以下代码

  1. SDK
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="3.0.6" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.10" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.1.0" />
</ItemGroup>

<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>

</Project>
  • 程序.cs
  • class Program
    {
    static async Task Main()
    {
    var builder = new HostBuilder();
    builder.ConfigureWebJobs(b =>
    {

    b.AddAzureStorageCoreServices();
    b.AddAzureStorage();
    });
    builder.ConfigureLogging((context, b) =>
    {
    b.AddConsole();
    });
    var host = builder.Build();
    using (host)
    {
    await host.RunAsync();
    }
    }
    }
  • 函数.cs
  •  public class Functions
    {


    public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
    {
    // create IConfigurationRoot to read appsetting.json
    IConfigurationRoot configuration = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();
    // create IConfigurationRoot to read Azure key vault
    IConfigurationRoot config = new ConfigurationBuilder()
    .AddAzureKeyVault(
    $"https://{configuration["KeyVaultName"]}.vault.azure.net/",
    configuration["AzureADApplicationId"],
    configuration["AzureADCert"],
    new DefaultKeyVaultSecretManager())
    .Build();



    // read one secret in Azure key vault
    var str = config["hurysecret"];
    logger.LogInformation(message + "\n str: " +str);
    }
    }

    enter image description here

    关于azure - 如何从 Azure Key Vault 获取所有 secret ,然后使用 ASP.Net Core 加载到配置对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61361197/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com