0

我想要一个脚本来在 Azurite 中创建一个在 docker 容器中运行的队列。(最好是 PowerShell 脚本)

我的 docker-compose.yml: 在此处输入图像描述

我正在运行的容器信息: 在此处输入图像描述

我不太明白如何实现队列的创建。这是官方文档。这是我的 PowerShell 脚本中的当前代码:

# $url = "https://127.0.0.1:10001/devstoreaccount1/newqueue";
$url = "https://0.0.0.0:10001/devstoreaccount1/newqueue";

# default account credentials
$auth = "SharedKey devstoreaccount1:Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
$date = "Tue, 21 Dec 2021 23:39:12 GMT"

# required headers
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add('Authorization',$auth)
$headers.Add('x-ms-date',$date)

Invoke-RestMethod -Method PUT -Uri $url -Headers $headers;

我既不能使用https://127.0.0.1:10001也不能使用https://0.0.0.0:10001。以下是我在尝试一个和另一个时遇到的相应错误: 在此处输入图像描述 我在尝试发送 http 请求以及http://127.0.0.1:10001时遇到相同的第一个错误。无论如何,我需要使用https。

请帮助我向在容器中运行的 Azurite 发送正确的请求以创建队列。

4

1 回答 1

0

发布此答案,以防万一有一天有人需要它。我最终创建了一个小型 .NET 控制台应用程序并在 PowerShell 中调用它。

# Default Azurite account credentials
$ACCOUNT_NAME = 'devstoreaccount1'
$ACCOUNT_KEY = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=='
$QUEUE_NAME = 'queue-name'

dotnet run --project ..\Scripts\CreateQueues -- $ACCOUNT_NAME $ACCOUNT_KEY $QUEUE_NAME

在控制台应用程序中,您要做的是在创建时配置队列客户端并在其上调用 Create 方法。

// Parse the args
// queueName = "queue-name"
// accountName = "devstoreaccount1"
// accountKey = "# Default Azurite account credentials
var baseUrl = "https://localhost:10001/devstoreaccount1/";
var requestUri = baseUrl + queueName;
var queueClient = QueueClient(new Uri(requestUri), new StorageSharedKeyCredential(accountName, accountKey));
queueClient.Create(); // This may throw an exception. Make sure to handle those cases.

       
于 2022-01-17T20:19:23.603 回答