Azure Web作业要求我在启动时设置AzureWebJobsDashboard和AzureWebJobsStorage属性,但是,我不想在代码中公开AccountKey . 当我尝试使用SAS令牌时,JobHostConfiguration类尝试解析SAS令牌并抛出异常
var config = new JobHostConfiguration();
config.DashboardConnectionString = ConfigurationManager.GetSetting(KeyVaultSecrets.StorageReadWriteConnectionString);
config.StorageConnectionString = ConfigurationManager.GetSetting(KeyVaultSecrets.StorageReadWriteConnectionString);
例外
发生System.InvalidOperationException HResult = 0x80131509消息=无法验证Microsoft Azure WebJobs SDK仪表板连接字符串 . Microsoft Azure存储帐户连接字符串格式不正确 . 有关配置Microsoft Azure存储连接字符串的详细信息,请访问http://msdn.microsoft.com/en-us/library/windowsazure/ee758697.aspx . 源=堆栈跟踪:在Microsoft.Azure.WebJobs.Host.Executors.StorageAccountParser.ParseAccount(字符串的connectionString,字符串的connectionStringName,的IServiceProvider服务)在Microsoft.Azure.WebJobs.Host.Executors.DefaultStorageAccountProvider.set_DashboardConnectionString(字符串值)
在为JobHostConfiguration创建配置时,有没有办法使用SAS令牌?
2 回答
此处尚不支持SAS令牌 . 但是,您不需要在代码中放置连接字符串 . You should be placing them in appsettings instead !像这样:
此外,您可以直接在您的网站上设置您的appsettings .
也就是说,在最新的夜间版本中,我们现在支持在SAS连接字符串上运行[Timer]和[Singleton];您可以通过将config.DashboardConnectionString显式设置为null来禁用日志记录 . 但我们还不支持将[Blob]和其他存储绑定到SAS网址 . 请参阅此提交中的单元测试:https://github.com/Azure/azure-webjobs-sdk/blob/bd2d9ea34f13fc16569e8d8f80bafdb605eeb6f9/test/Microsoft.Azure.WebJobs.Host.EndToEndTests/InternalStorageTests.cs
我们可以在连接字符串中使用SAS . 由于SAS包含验证请求所需的信息,因此具有SAS的连接字符串提供协议,服务 endpoints 以及根据that link访问资源所需的凭据 .
这样, StorageAccountParser.ParseAccount(String connectionString) 就可以解析连接字符串