0

我正在 Azure Durable Function 中实现 Azure Key Vault Managed Identity。

启动.cs

public class Startup : FunctionsStartup
{
    private const string localSettingsJson = "local.settings.json";

    private IConfigurationBuilder GetConfiguration(FunctionsHostBuilderContext context) => new ConfigurationBuilder()
            .SetBasePath(context.ApplicationRootPath)
            .AddJsonFile(localSettingsJson, optional: true, reloadOnChange: true)
            .AddEnvironmentVariables();

    public override void Configure(IFunctionsHostBuilder builder)
    {
        FunctionsHostBuilderContext context = builder.GetContext();
        var configBuilder = GetConfiguration(context);

        DefaultAzureCredential credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = "61063c32-379d-4e9d-8977-4b826c2bc50a" });
        SecretClient secretClient = new SecretClient(new Uri("https://storageaccount.vault.azure.net/"), credential);
        configBuilder.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());

        IConfigurationRoot config = configBuilder.Build();
        var keyVaultConnectionStringValue = config["storageaccount-connectionstring"];

        //Getting the connection string value in keyVaultConnectionStringValue.

        var services = builder.Services;
        services.ConfigureAutoMapper();
    }
}

编排.cs

public class Orchestration
{
    [FunctionName("Orchestrator")]
    public async Task Run([OrchestrationTrigger] IDurableOrchestrationContext context, ILogger logger)
    {
        //Code
    }
}

我在 keyVaultConnectionStringValue 变量中获取连接字符串值。现在我想替换local.settings.json文件中的 keyVaultConnectionStringValue 变量值 => 值部分 =>AzureWebJobsStorage部分值。当前值为“ UseDevelopmentStorage=true”,我想用 Azure Key Vault 连接字符串值替换。

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true", // Replace "UseDevelopmentStorage=true" value with Azure Key Vault connection string value.
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  },
  "WorkflowConfiguration": {
    "Name": "Lilly"
  }
}

注意:我不想使用环境变量。

非常感谢任何帮助。

4

0 回答 0