我尝试使用 Azure WebJobs SDK 在队列上发布消息时触发函数。
当使用存储帐户 key 将 StorageConnectionString 设置为连接字符串时,这可以正常工作。
我想使用共享访问 token (SAS),它可以访问 StorageConnectionString 中的该队列(并且只能访问该队列),但出现错误:
Message=Failed to validate Microsoft Azure WebJobs SDK Storage connection string. The Microsoft Azure Storage account connection string is not formatted correctly. Please visit http://msdn.microsoft.com/en-us/library/windowsazure/ee758697.aspx for details about configuring Microsoft Azure Storage connection strings.
还有:
Message=The account credentials for '' are incorrect. Source=Microsoft.Azure.WebJobs.Host StackTrace: at Microsoft.Azure.WebJobs.Host.Executors.DefaultStorageCredentialsValidator.<ValidateCredentialsAsyncCore>d__4.MoveNext()
我使用的连接字符串的格式如下: BlobEndpoint= https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccoount.queue.core.windows.net/queuename;SharedAccessSignature=token
StorageConnectionString 是否有可能需要访问整个存储帐户?如果是这样,你知道我能做什么吗?
最佳答案
查看WebjobSDK代码:https://github.com/Azure/azure-webjobs-sdk/tree/dev/src看起来您面临的异常是由存储帐户解析器引发的。看代码,解析如下:
public static StorageAccountParseResult TryParseAccount(string connectionString, out CloudStorageAccount account)
{
if (String.IsNullOrEmpty(connectionString))
{
account = null;
return StorageAccountParseResult.MissingOrEmptyConnectionStringError;
}
CloudStorageAccount possibleAccount;
if (!CloudStorageAccount.TryParse(connectionString, out possibleAccount))
{
account = null;
return StorageAccountParseResult.MalformedConnectionStringError;
}
account = possibleAccount;
return StorageAccountParseResult.Success;
}
我检查了您使用 CloudStorageAccount 发送的格式,它似乎通过了。请注意,blob 端点后面有一个不必要的“/”,也许您丢失了一些文本,这导致解析失败。
关于c# - AzureWebjobSDK 中的 StorageConnectionString 是否需要访问整个存储帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322863/