使用 ARM 模板创建 Azure 存储队列

Ani*_*asu 9 azure azure-storage azure-resource-manager azure-rm-template

有没有办法通过 ARM 模板创建 Azure 存储队列?我可以找到一种创建容器的方法,但找不到与通过 ARM 创建存储队列相关的任何内容。

Oli*_*sen 7

似乎可以提供对它的支持,但截至 2020 年 7 月 29 日可能还没有正式支持。该文档位于:https : //docs.microsoft.com/en-us/azure/templates/microsoft.storage/storageaccounts/queueservices/queues

这是对我有用的:

"variables": {
    "storageAccountName": "[toLower(concat('sa', 'demo', parameters('environmentName')))]"
},
"resources": [
    {
        "type": "Microsoft.Storage/storageAccounts",
        "name": "[variables('storageAccountName')]",
        "location": "[parameters('location')]",
        "apiVersion": "2019-06-01",
        "sku": {
            "name": "[parameters('storageAccountType')]"
        },
        "kind": "StorageV2",
        "properties": {}
    },
    {
        "name": "[concat(variables('storageAccountName'), '/default/myqueue01')]",
        "type": "Microsoft.Storage/storageAccounts/queueServices/queues",
        "apiVersion": "2019-06-01",
        "dependsOn": [
            "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
        ],
        "properties": {
            "metadata": {}

        }
    }
],
Run Code Online (Sandbox Code Playgroud)

请让我知道这对你有没有用。


Mar*_*ndl 5

不,您不能通过 ARM 模板创建 Azure 存储队列,但我怀疑这是必要的,因为当您使用例如 .NET SDK 与队列交互时,您可以调用该CreateIfNotExistsAsync()方法来创建它。例子:

// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create the queue client.
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

// Retrieve a reference to a container.
CloudQueue queue = queueClient.GetQueueReference("myqueue");

// Create the queue async if it doesn't already exist
await queue.CreateIfNotExistsAsync();
Run Code Online (Sandbox Code Playgroud)

来源

  • @MartinBrandl 在创建指向队列的事件订阅时,我们需要能够做到这一点 (3认同)