Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >找不到ARM模板部署资源命名空间

找不到ARM模板部署资源命名空间
EN

Stack Overflow用户
提问于 2020-02-17 17:13:45
回答 1查看 400关注 0票数 0

我有一个自定义的ARM模板,它部署了一个带有子EventHub的EventHub命名空间,而子AuthorizationRules又有两个AuthorizationRules和一个ConsumerGroup作为子。验证通过了,但我得到了一个部署错误。似乎Azure资源管理器在命名空间存在之前就开始尝试部署授权规则,即使我添加了必需的"dependsOn“属性,但随后部署从头到尾都在进行,并成功部署了每个资源。如果我只从门户部署它,这是可以容忍的,但是当我以编程方式部署这个模板时,即使部署“成功”并且我的回滚机制触发,我也会得到一个错误。

以下是门户网站提供的错误链接:

Deployment Steps

Error Messages

这是我的ARM模板(注释仅用于帮助您查找资源):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "namespaceName": {
      "type": "string"
    },
    "eventHubName": {
      "type": "string"
    }
  },

  "variables": {
    "SharedAccessKeyName": "Event-Dispatcher-Send-Access-Key",
    "ReadOnlySharedAccessKeyName": "Plugin-Listen-Access-Key",
    "ConsumerGroup": "plugin"
  },

  "resources": [
    {
      // Event Hub Namespace
      "type": "Microsoft.EventHub/namespaces",
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('namespaceName')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard",
        "tier": "Standard",
        "capacity": 1
      },
      "properties": {
        "zoneRedundant": false,
        "isAutoInflateEnabled": false,
        "maximumThroughputUnits": 0,
        "kafkaEnabled": true
      },
      "resources": [
        {
          // Event Hub
          "name": "[concat(parameters('namespaceName'), '/', parameters('eventHubName'))]",
          "type": "Microsoft.EventHub/namespaces/eventhubs",
          "apiVersion": "2017-04-01",
          "location": "[resourceGroup().location]",
          "properties": {
            "messageRetention": 1
          },
          "dependsOn": [
            "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaceName'))]"
          ],
          "resources": [
            {
              // Shared Access Key
              "name": "[concat(parameters('namespaceName'), '/', parameters('eventHubName'), '/', variables('SharedAccessKeyName'))]",
              "type": "Microsoft.EventHub/namespaces/eventhubs/authorizationRules",
              "apiVersion": "2017-04-01",
              "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaceName'))]",
                "[resourceId('Microsoft.EventHub/namespaces/eventhubs', parameters('namespaceName'), parameters('eventHubName'))]"
              ],
              "properties": {
                "rights": [
                  "Send",
                  "Listen"
                ]
              }
            },
            {
              // Read-only Shared Access Key
              "name": "[concat(parameters('namespaceName'), '/', parameters('eventHubName'), '/', variables('ReadOnlySharedAccessKeyName'))]",
              "type": "Microsoft.EventHub/namespaces/eventhubs/authorizationRules",
              "apiVersion": "2017-04-01",
              "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaceName'))]",
                "[resourceId('Microsoft.EventHub/namespaces/eventhubs', parameters('namespaceName'), parameters('eventHubName'))]"
              ],
              "properties": {
                "rights": [
                  "Listen"
                ]
              }
            },
            {
              // Consumer Groups
              "name": "[concat(parameters('namespaceName'), '/', parameters('eventHubName'), '/', variables('ConsumerGroup'))]",
              "type": "Microsoft.EventHub/namespaces/eventhubs/consumergroups",
              "apiVersion": "2017-04-01",
              "dependsOn": [
                "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaceName'))]",
                "[resourceId('Microsoft.EventHub/namespaces/eventhubs', parameters('namespaceName'), parameters('eventHubName'))]"
              ],
              "properties": {}
            }
          ]
        }
      ]
    }
  ],

  "outputs": {
    "SharedAccessKey": {
      "type": "string",
      "value": "[listKeys(concat(parameters('namespaceName'), '/', parameters('eventHubName'), '/', variables('SharedAccessKeyName')), '2017-04-01').primaryKey.value]"
    },
    "SharedAccessKeyName": {
      "type": "string",
      "value": "[variables('SharedAccessKeyName')]"
    },
    "ReadOnlySharedAccessKey": {
      "type": "string",
      "value": "[listKeys(concat(parameters('namespaceName'), '/', parameters('eventHubName'), '/', variables('ReadOnlySharedAccessKeyName')), '2017-04-01').primaryKey.value]"
    },
    "ReadOnlySharedAccessKeyName": {
      "type": "string",
      "value": "[variables('ReadOnlySharedAccessKeyName')]"
    },
    "ConsumerGroup": {
      "type": "string",
      "value": "[variables('ConsumerGroup')]"
    }
  }
}

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-19 06:45:26

下面的例子类似于你的要求,我已经测试了这个模板,它工作得很好。因此,您可以根据此示例修改模板并使其正常工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespaceName": {
            "type": "String",
            "metadata": {
                "description": "Name of EventHub namespace"
            }
        },
        "namespaceAuthorizationRuleName": {
            "type": "String",
            "metadata": {
                "description": "Name of Namespace Authorization Rule"
            }
        },
        "isAutoInflateEnabled": {
            "defaultValue": "True",
            "allowedValues": [
                "True",
                "False"
            ],
            "type": "String",
            "metadata": {
                "description": "Enable or disable AutoInflate"
            }
        },
        "maximumThroughputUnits": {
            "defaultValue": 0,
            "minValue": 0,
            "maxValue": 20,
            "type": "Int",
            "metadata": {
                "description": "Enable or disable AutoInflate"
            }
        },
        "eventHubName": {
            "type": "String",
            "metadata": {
                "description": "Name of Event Hub"
            }
        },
        "eventhubAuthorizationRuleName": {
            "type": "String",
            "metadata": {
                "description": "Name of Eventhub Authorization Rule"
            }
        },
        "eventhubAuthorizationRuleName1": {
            "type": "String",
            "metadata": {
                "description": "Name of Eventhub Authorization Rule"
            }
        },
        "consumerGroupName": {
            "type": "String",
            "metadata": {
                "description": "Name of Consumer Group"
            }
        },
        "messageRetentionInDays": {
            "defaultValue": 1,
            "minValue": 1,
            "maxValue": 7,
            "type": "Int",
            "metadata": {
                "description": "How long to retain the data in Event Hub"
            }
        },
        "partitionCount": {
            "defaultValue": 4,
            "minValue": 2,
            "maxValue": 32,
            "type": "Int",
            "metadata": {
                "description": "Number of partitions chosen"
            }
        },
        "location": {
            "defaultValue": "[resourceGroup().location]",
            "type": "String",
            "metadata": {
                "description": "Location for all resources."
            }
        }
    },
    "variables": {
        "defaultSASKeyName": "RootManageSharedAccessKey",
        "authRuleResourceId": "[resourceId('Microsoft.EventHub/namespaces/authorizationRules', parameters('namespaceName'), variables('defaultSASKeyName'))]",
        "nsAuthorizationRuleId": "[resourceId('Microsoft.EventHub/namespaces/authorizationRules', parameters('namespaceName'), parameters('namespaceAuthorizationRuleName'))]",
        "ehAuthorizationRuleId1": "[resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', parameters('namespaceName'),parameters('eventHubName'), parameters('eventhubAuthorizationRuleName'))]",
        "ehAuthorizationRuleId2": "[resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', parameters('namespaceName'),parameters('eventHubName'), parameters('eventhubAuthorizationRuleName1'))]"
    },
    "resources": [
        {
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2017-04-01",
            "name": "[parameters('namespaceName')]",
            "location": "[parameters('location')]",
            "sku": {
                "name": "Standard"
            },
            "properties": {
                "isAutoInflateEnabled": true,
                "maximumThroughputUnits": 7
            },
            "resources": [
                {
                    "type": "eventhubs",
                    "apiVersion": "2017-04-01",
                    "name": "[parameters('eventHubName')]",
                    "dependsOn": [
                        "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'))]"
                    ],
                    "properties": {
                        "messageRetentionInDays": 4,
                        "partitionCount": 4
                    },
                    "resources": [
                        {
                            "type": "consumergroups",
                            "apiVersion": "2017-04-01",
                            "name": "[parameters('consumerGroupName')]",
                            "dependsOn": [
                                "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'),'/eventhubs/',parameters('eventHubName'))]"
                            ],
                            "properties": {
                                "userMetadata": "User Metadata"
                            }
                        },
                        {
                            "type": "authorizationRules",
                            "apiVersion": "2017-04-01",
                            "name": "[parameters('eventhubAuthorizationRuleName')]",
                            "dependsOn": [
                                "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'),'/eventhubs/',parameters('eventHubName'))]"
                            ],
                            "properties": {
                                "rights": [
                                    "Send",
                                    "Listen",
                                    "Manage"
                                ]
                            }
                        },
                        {
                            "type": "authorizationRules",
                            "apiVersion": "2017-04-01",
                            "name": "[parameters('eventhubAuthorizationRuleName1')]",
                            "dependsOn": [
                                "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'),'/eventhubs/',parameters('eventHubName'))]"
                            ],
                            "properties": {
                                "rights": [
                                    "Send"
                                ]
                            }
                        }
                    ]
                }
            ]
        },
        {
            "type": "Microsoft.EventHub/namespaces/AuthorizationRules",
            "apiVersion": "2017-04-01",
            "name": "[concat(parameters('namespaceName'), '/', parameters('namespaceAuthorizationRuleName'))]",
            "dependsOn": [
                "[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'))]"
            ],
            "properties": {
                "rights": [
                    "Send",
                    "Listen",
                    "Manage"
                ]
            }
        }
    ],
    "outputs": {
        "defaultNamespaceConnectionString": {
            "type": "String",
            "value": "[listkeys(variables('authRuleResourceId'), '2017-04-01').primaryConnectionString]"
        },
        "defaultSharedAccessPolicyPrimaryKey": {
            "type": "String",
            "value": "[listkeys(variables('authRuleResourceId'), '2017-04-01').primaryKey]"
        },
        "NamespaceConnectionString": {
            "type": "String",
            "value": "[listkeys(variables('nsAuthorizationRuleId'), '2017-04-01').primaryConnectionString]"
        },
        "SharedAccessPolicyPrimaryKey": {
            "type": "String",
            "value": "[listkeys(variables('nsAuthorizationRuleId'), '2017-04-01').primaryKey]"
        },
        "EventHubConnectionString": {
            "type": "String",
            "value": "[listkeys(variables('ehAuthorizationRuleId1'), '2017-04-01').primaryConnectionString]"
        },
        "EventHubSharedAccessPolicyPrimaryKey": {
            "type": "String",
            "value": "[listkeys(variables('ehAuthorizationRuleId1'), '2017-04-01').primaryKey]"
        },
        "EventHub1ConnectionString": {
            "type": "String",
            "value": "[listkeys(variables('ehAuthorizationRuleId2'), '2017-04-01').primaryConnectionString]"
        },
        "EventHub1SharedAccessPolicyPrimaryKey": {
            "type": "String",
            "value": "[listkeys(variables('ehAuthorizationRuleId2'), '2017-04-01').primaryKey]"
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60267448

复制
相关文章
WPF 使用 Resharper 更改命名空间后生成文件引用找不到的命名空间
在 Resharper 更改全部命名空间之后,在 xx.g.cs 文件里面的 using 用了一个之前的命名空间,但是代码里面没有地方使用,此时构建不通过,原因是 xaml 里面存在引用
林德熙
2020/07/06
1K0
命名空间
c++基础_命名空间namespace 命名空间是用来组织和重用代码的编译单元 在编写代码时写的程序不可能所有的标识符都没有重名现象, 在多人协作开发时更加不可控, 尤其对于库来说问题更加严重. 为了解决重名现象, 通过命名空间来避免冲突! ---- 命名空间的定义: namespace 命名空间标识符 { ...命名空间成员(普通变量成员,函数成员,类成员...) } 注意: 命名空间标识符必须满足标识符命名规则和命名规范, 习惯名字唯一, 通常以开发团队的名字(项目名) 来命名. 命名
木杉乀
2021/05/06
1.4K0
命名空间介绍之七:网络命名空间
自从上次我们研究 Linux 命名空间以来已经有一段时间了。我们的系列缺少了一篇,现在补上:网络命名空间。顾名思义,网络命名空间将网络设备、地址、端口、路由、防火墙规则等的使用划分在不同的盒子,基本上是在一个单独运行的内核实例中虚拟化网络。网络命名空间在 2.6.24 版进入内核,约 5 年前;大概一年后,它们才进入黄金时段。从那以后,它们似乎在很大程度上被开发人员忽略了。
谛听
2019/11/03
3.5K0
命名空间介绍之七:网络命名空间
命名空间介绍之三:PID 命名空间
接着前两篇命名空间文章,现在看一下 PID 命名空间。与 PID 命名空间相关的全局资源就是进程 ID 数字空间。这意味着在不同 PID 命名空间中的进程可以有相同的进程 ID。PID 命名空间实现的容器可在主机之间迁移,并保持容器内的进程 ID 不变。
谛听
2019/10/29
3.5K0
命名空间介绍之三:PID 命名空间
命名空间介绍之五:用户命名空间
继续我们的命名空间系列文章,本文看一下用户命名空间,大部分实现于 Linux 3.8。(剩余的工作是 XFS 和其它文件系统中的一些改动;后者合并于 3.9)。用户命名空间与用户和组 ID 相映射。这意味着一个进程在某个用户命名空间内的用户和组 ID 可以与用户命名空间外的不同。最重要的是,一个进程可以在一个命名空间外有一个非 0 的用户 ID ,同时在命名空间内有一个为 0 的用户 ID;换句话说,进程在一个用户命名空间外没有特权,但在用户命名空间内有 root 特权。
谛听
2019/11/01
3.4K0
命名空间介绍之五:用户命名空间
【C++】命名空间 namespace 与 标准流 iostream ( 命名空间概念简介 | 命名空间定义 | 命名空间使用 | iostream 中的命名空间分析 )
命名空间 namespace 又称为 名字空间 , 名称空间 , 名域 , 作用域 , 是 C++ 语言 对 C 语言 的扩展 之一 ;
韩曙亮
2023/10/15
8190
【C++】命名空间 namespace 与 标准流 iostream ( 命名空间概念简介 | 命名空间定义 | 命名空间使用 | iostream 中的命名空间分析 )
PHP命名空间
概述 什么是命名空间呢? 这个概念我第一次知道是在C++中. 首先, 为什么要用到命名空间呢? 当然是为了解决重名的问题了, 其实命名空间和Java中的包有着异曲同工之妙, Java中 a包下的Tes
烟草的香味
2019/07/25
2.3K0
PHP命名空间
js命名空间
start和stop在car下以名称空间命名:car.start()和car.stop()。
IT工作者
2021/12/29
1.7K0
PHP命名空间
本文是复习所写,并不会涵盖一些基础知识点 定义 命名空间就相当于操作系统中目录的概念 主要是为了解决以下两个问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突 为很
码一
2022/06/06
2.5K0
PHP命名空间
Kubernetes命名空间
Kubernetes中提供了命名空间,但是如果你的团队规模比较小并且集群规模也不大,完全可以不用Namespaces而使用labels来区分不同的资源,随着项目增多、集群规模扩大、人员的增加,你才需要使用Namespaces,通过namespace你可以创建多个虚拟的集群。
大江小浪
2018/09/19
2.3K0
python命名空间
ke1th
2018/01/02
1.5K0
命名空间介绍之六:用户命名空间的延伸
本文中,继续上周关于用户命名空间的讨论。特别的,我们看一下更多有关与用户命名空间、capabilities 的交互及用户命名空间与其它类型的命名空间的结合。本文是命名空间系列的最后一篇。
谛听
2019/11/02
1.9K0
命名空间介绍之六:用户命名空间的延伸
命名空间介绍之四:PID 命名空间的延伸
在本文中,我们将继续上周关于 PID 命名空间的讨论(并扩展我们正在进行的关于命名空间的系列文章)。PID 命名空间的一个用途是实现一个进程包(容器),其行为类似于一个自包含的 Linux系统。init 进程是传统系统和 PID 命名空间容器的关键部分。因此,我们将研究 init 进程的特殊角色,并着重于它与传统 init 进程不同的几个方面。此外,我们还将研究命名空间 API 应用于 PID 命名空间时的一些其他细节。
谛听
2019/10/30
2.2K0
命名空间介绍之四:PID 命名空间的延伸
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )
在 C++ 代码中 , 经常遇到 #include "c_extern.h" 和 using namespace std; 代码 , 两种方式都可以声明可使用的若干变量和方法 ;
韩曙亮
2023/03/27
2.3K0
【C++ 语言】命名空间 ( namespace | 命名空间定义 | 命名空间嵌套 | 域作用符 | 与 include 对比 )
命名空间介绍之八:挂载命名空间和共享子树
挂载命名空间是创建每-用户和每-容器文件系统树的强大而灵活的工具。本文中,我们将仔细研究共享子树特性,它可通过自动、可控的方式在挂载命名空间之间传播挂载和卸载事件。
谛听
2019/11/03
4.1K0
命名空间介绍之八:挂载命名空间和共享子树
C++命名空间
C++ 命名空间 C++为了区分多个xyz的函数的时候,需要使用命名空间进行区分。 定义命名空间 #include <iostream> using namespace std; // 第一个命名空间 namespace first_space{ void func(){ cout << "func_first_space" << endl; } } // 第二个命名空间 namespace second_space{ void func(){ cout << "second_space_
mySoul
2018/11/10
1.6K0
python-命名空间
通俗的来说,Python中所谓的命名空间可以理解为一个容器。在这个容器中可以装许多标识符。不同容器中的同名的标识符是不会相互冲突的。理解python的命名空间需要掌握三条规则:
py3study
2020/01/10
9130
HBase 命名空间 Namespace
命名空间是表的逻辑分组,类似于关系数据库系统中的数据库。这种抽象为多租户相关功能奠定了基础:
smartsi
2019/11/27
5.7K0
【Javascript】基础-命名空间
Javascript 首先就不像其他语言(C#、Java、Go 等)有 Namespace 或者 Package的语法支持和管理
林小帅
2019/09/05
7290
【Javascript】基础-命名空间
Python命名空间包
命名空间包是对相关的包或模块进行分组的一种方法,通常是一个被忽略的功能,它对于在较大的项目中构建打包生态系统非常有用。 如果你的应用组件的开发、打包和版本化都是独立的,但仍然希望从同一个命名空间访问它们,那么命名空间包特别有用,它有利于明确每个包所属的组织或项目。 例如,假设有一个 Acme 公司,该公司中使用共同的 acme 命名空间,同时创建通用的 acme 命名空间包作为该组织的其他包的容器。如果 Acme 公司中的某人想要向这个命名空间贡献一个与 SQL 相关的库,那么他需要在 acme 中注册自己新的 acme.sql 包,整个文件结构如下所示:
狼啸风云
2020/02/11
1.9K0

相似问题

使用ARM模板部署资源

115

使用ARM模板部署多个资源

14

ARM嵌套模板“无效模板找不到模板资源”

10

销毁由ARM模板部署创建的资源

16

部署ARM:模板资源的sql授权失败

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文