正如我所读到的,Azure Webjobs需要在应用程序服务的连接字符串部分中定义AzureWebJobsDashboard的值。如果我通过转到门户网站并配置值来手动完成此操作,我的webjob就能正常工作。
我现在想要的是在KeyVault中提供connectionString的值,并在应用程序服务的ApplicationSettings中提供KeyVault提供的secretURI。然后,我希望SDK解析secretURI并获取存储在KeyVault中的秘密。
我试过这样做,但没有得到一个明确的解决方案。有没有办法做到这一点,或者目前还不受支持?
发布于 2018-07-07 05:44:56
以下是Mike建议的工作示例:
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
else
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var vaultBaseUrl = ConfigurationManager.AppSettings["KeyVaultUri"];
var client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
config.DashboardConnectionString = client.GetSecretAsync(vaultBaseUrl, "DashboardConnectionString").Result.Value;;
config.StorageConnectionString = client.GetSecretAsync(vaultBaseUrl, "StorageConnectionString").Result.Value;;
}
config.UseTimers();
var host = new JobHost(config);
参考文献:
发布于 2017-12-15 10:01:17
WebJobs SDK将不会自动从KeyVault获取。
但您也可以自己从密钥库获取,然后以编程方式在JobHostConfiguration.Dashboard属性上设置结果。
您可以在此处提交请求,以进行更直接的集成:https://github.com/Azure/azure-webjobs-sdk
https://stackoverflow.com/questions/47671164
复制相似问题