获取对 Azure 存储帐户中所有队列的访问权限
Get access to all queues in Azure Storage Account
我正在按照 Microsoft 文档上的建议使用 Azure.Storage.Queues 包。我正在使用 Queue Client 连接到队列,如下所示,
public class QueueClientSingleton : IQueueClientSingleton
{
private readonly Lazy<QueueClient> _queueClientXyz;
private readonly IConfiguration _configuration;
public QueueClientSingleton(IConfiguration configuration)
{
_configuration = configuration;
_queueClientXyz = new Lazy<QueueClient>(() => new QueueClient(_configuration.ConnectionString, "QueueXyz");
}
}
以上代码未经测试,但应该可以提供对 QueueXyz 的访问。我有一个用例,其中我想通过连接字符串连接到存储帐户一次然后
- 读取不同的队列(传递队列名称并从该队列获取消息)
- 列出该存储帐户中存在的所有队列
我发现了类似下面的内容,但这是使用已弃用的包:Microsoft.WindowsAzure.Storage 我们的解决方案中未使用该包。有什么我们可以用类似的新包做的吗:Azure.Storage.Queues
public static void CreateKnownAzureQueues(string azureConnectionString)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
foreach (var queueName in AzureQueues.KnownQueues)
{
queueClient.GetQueueReference(queueName).CreateIfNotExists();
}
}
此外,在 link 下方找到请求存储帐户中所有队列的列表。但是,它没有提供任何示例。
https://docs.microsoft.com/en-us/rest/api/storageservices/list-queues1#request
使用Azure.Storage.Queues
包时,可以使用下面的代码来达到目的:
QueueServiceClient serviceClient = new QueueServiceClient(conn_str);
//list all queues in the storage account
var myqueues = serviceClient.GetQueues().AsPages();
//then you can write code to list all the queue names
foreach (Azure.Page<QueueItem> queuePage in myqueues)
{
foreach (QueueItem q in queuePage.Values)
{
Console.WriteLine(q.Name);
}
}
//get a queue client
var myqueue_client = serviceClient.GetQueueClient("the queue name");
我正在按照 Microsoft 文档上的建议使用 Azure.Storage.Queues 包。我正在使用 Queue Client 连接到队列,如下所示,
public class QueueClientSingleton : IQueueClientSingleton
{
private readonly Lazy<QueueClient> _queueClientXyz;
private readonly IConfiguration _configuration;
public QueueClientSingleton(IConfiguration configuration)
{
_configuration = configuration;
_queueClientXyz = new Lazy<QueueClient>(() => new QueueClient(_configuration.ConnectionString, "QueueXyz");
}
}
以上代码未经测试,但应该可以提供对 QueueXyz 的访问。我有一个用例,其中我想通过连接字符串连接到存储帐户一次然后
- 读取不同的队列(传递队列名称并从该队列获取消息)
- 列出该存储帐户中存在的所有队列
我发现了类似下面的内容,但这是使用已弃用的包:Microsoft.WindowsAzure.Storage 我们的解决方案中未使用该包。有什么我们可以用类似的新包做的吗:Azure.Storage.Queues
public static void CreateKnownAzureQueues(string azureConnectionString)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
foreach (var queueName in AzureQueues.KnownQueues)
{
queueClient.GetQueueReference(queueName).CreateIfNotExists();
}
}
此外,在 link 下方找到请求存储帐户中所有队列的列表。但是,它没有提供任何示例。
https://docs.microsoft.com/en-us/rest/api/storageservices/list-queues1#request
使用Azure.Storage.Queues
包时,可以使用下面的代码来达到目的:
QueueServiceClient serviceClient = new QueueServiceClient(conn_str);
//list all queues in the storage account
var myqueues = serviceClient.GetQueues().AsPages();
//then you can write code to list all the queue names
foreach (Azure.Page<QueueItem> queuePage in myqueues)
{
foreach (QueueItem q in queuePage.Values)
{
Console.WriteLine(q.Name);
}
}
//get a queue client
var myqueue_client = serviceClient.GetQueueClient("the queue name");