ServiceBusNamespace недопустим при развертывании - PullRequest
1 голос
/ 22 марта 2020

Я пытаюсь развернуть ServiceBus через шаблон ARM. Я пробовал все эти версии как значение serviceBusNamespaceName с тем же сообщением об ошибке:

Не работает (используется группа ресурсов с именем: 'INT001-TestOrderStore-Cert'):

  • "[ concat ('INT1001-ServiceBus-', uniqueString (resourceGroup (). id))] "
  • " [concat ('INT1001-ServiceBus', uniqueString (resourceGroup (). id))] "
  • "[concat ('INT1001-MyOwnName', uniqueString (resourceGroup (). Id))]"
  • "[concat ('int1001-myownname', uniqueString (toLower (resourceGroup (). Id) )] "

, но всегда появляется одно и то же сообщение об ошибке:

2020-03-22T11: 54: 07.2612863Z ## [error] BadRequest: {" error " : {"message": "Указанное недопустимое пространство имен службы. CorrelationId: 43105e81-4248-41d6-ba91-9070e8ac4637", "code": "BadRequest"}}

Это единственное до сих пор это работало: "sbnslau-1fa155e2-b3fb-48b9-a204-af1d2a02f40 c"

Поэтому мне нужно понять, что происходит, когда я пытаюсь использовать concat и уникальные кольцо. Есть ли в любом случае на портале azure я могу оценить выражение, чтобы увидеть, что оно также решает?

Вот как выглядит моя ARM:

sbArmDeploy. json

    {
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serviceBusNamespaceName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Service Bus namespace"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "variables": {},
  "resources": [
    {
      "apiVersion": "2017-04-01",
      "name": "[parameters('serviceBusNamespaceName')]",
      "type": "Microsoft.ServiceBus/namespaces",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard",
        "tier": "Standard"
      }
    }
  ],
  "outputs": {}
}

SbArmDeploy-Parameters. json

    {
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serviceBusNamespaceName": {
      "value": "sbns_1fa155e2-b3fb-48b9-a204-af1d2a02f40c"
    }
  }
}

1 Ответ

3 голосов
/ 22 марта 2020

Когда я пытаюсь создать пространство имен служебной шины, используя имя, которое вы указали (sbns_1fa155e2-b3fb-48b9-a204-af1d2a02f40c) в Azure Portal, я получаю следующую ошибку:

Пространство имен может содержать только буквы, цифры и дефисы. Пространство имен должно начинаться с буквы, и оно должно заканчиваться буквой или цифрой

В основном проблема заключается в том, что у вас есть подчеркивание (_) в имени пространства имен, которое недопустимо. Удалите это или измените его на дефис (-), и вы не получите ошибку.

Правила именования для пространства имен служебной шины можно найти здесь: https://docs.microsoft.com/en-us/rest/api/servicebus/create-namespace.


Как уже говорилось в комментариях, проблема возникает из-за того, что вы определяете переменную в файле параметров. Что вам нужно сделать, это определить их в разделе переменных вашего основного файла шаблона.

Например, вот вам ArmDeploy. json и параметры. json используемые мной файлы:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "defaultValue": "[resourceGroup().location]",
            "type": "String",
            "metadata": {
                "description": "Location for all resources."
            }
        }
    },
    "variables": {
        "serviceBusNamespaceName": "[concat('INT1001-ServiceBus-', uniqueString(resourceGroup().id))]"
    },
    "resources": [
        {
            "type": "Microsoft.ServiceBus/namespaces",
            "apiVersion": "2017-04-01",
            "name": "[variables('serviceBusNamespaceName')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "Standard",
                "tier": "Standard"
            }
        }
    ],
    "outputs": {}
}

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "value": "eastus"
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...