gpt4 book ai didi

azure - ServiceBusNamespace 在部署时无效

转载 作者:行者123 更新时间:2023-12-03 01:00:45 25 4
gpt4 key购买 nike

我正在尝试通过 ARM 模板部署 ServiceBus。我尝试了所有这些版本作为 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": "The specified service namespace is invalid. CorrelationId: 43105e81-4248-41d6-ba91-9070e8ac4637", "code": "BadRequest" } }

这是迄今为止唯一有效的:“sbnslau-1fa155e2-b3fb-48b9-a204-af1d2a02f40c”

所以我需要了解当我尝试使用 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"
}
}
}

最佳答案

当我尝试使用您在 Azure 门户中提供的名称 (sbns_1fa155e2-b3fb-48b9-a204-af1d2a02f40c) 创建服务总线命名空间时,出现以下错误:

The namespace can contain only letters, numbers, and hyphens. The namespace must start with a letter, and it must end with a letter or number

基本上,问题在于命名空间名称中包含下划线 (_),这是不允许的。请删除它或将其更改为连字符 (-),这样您就不会收到错误消息。

您可以在此处找到服务总线命名空间的命名规则:https://learn.microsoft.com/en-us/rest/api/servicebus/create-namespace .

<小时/>

正如评论中所讨论的,问题的出现是因为您在参数文件中定义了一个变量。您需要做的就是在主模板文件的变量部分中定义它们。

例如,以下是我使用的 ArmDeploy.json 和Parameters.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"
}
}
}

关于azure - ServiceBusNamespace 在部署时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60799045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com