Azure 使用ARM模板部署API管理服务及其API时出现问题

Azure 使用ARM模板部署API管理服务及其API时出现问题,azure,api,azure-devops,azure-api-management,arm-template,Azure,Api,Azure Devops,Azure Api Management,Arm Template,我正在尝试使用ARM模板部署一个Azure API管理服务及其相关API。这里的目标是能够使用API管理服务的关联API及其所有设置轻松地提供新的API管理服务实例,但能够使用参数更改后端url。为此,我使用Azure门户导出了一个模板,并根据需要将其更改为,以便能够作为参数传入后端url。但是,我遇到了几个问题: 模板部署返回了以下错误: 更新:评论帮助我解决了这个问题。请立即忽略此错误 最初的路线是: "scope": "[concat(resourceId('Microso

我正在尝试使用ARM模板部署一个Azure API管理服务及其相关API。这里的目标是能够使用API管理服务的关联API及其所有设置轻松地提供新的API管理服务实例,但能够使用参数更改后端url。为此,我使用Azure门户导出了一个模板,并根据需要将其更改为,以便能够作为参数传入后端url。但是,我遇到了几个问题:

模板部署返回了以下错误:

更新:评论帮助我解决了这个问题。请立即忽略此错误

最初的路线是:

        "scope": "[concat(resourceId('Microsoft.ApiManagement/master', parameters('service_testAPITalha_name')), '/')]",

我改为:

        "scope": "[concat(resourceId('Microsoft.ApiManagement/apis', parameters('service_testAPITalha_name')), '/')]",
这也没有解决问题

错误:订阅作用域应为“/API”、“/API/{APID}”和“/products/{productId}”中的一个

    {
      "type": "Microsoft.ApiManagement/service/subscriptions",
      "apiVersion": "2019-01-01",
      "name": "[concat(parameters('service_testAPITalha_name'), '/master')]",
      "dependsOn": [
        "[resourceId('Microsoft.ApiManagement/service', parameters('service_testAPITalha_name'))]"
      ],
      //Changed from master to apis
      "properties": {
        "scope": "[concat(resourceId('Microsoft.ApiManagement/apis', parameters('service_testAPITalha_name')), '/')]",
        "displayName": "Built-in all-access subscription",
        "state": "active",
        "primaryKey": "a4a0311b7af34f8fad57cdf8e06723fb",
        "secondaryKey": "3bfb52667eb443a0a430e298b402da03",
        "allowTracing": true
      }
    }
错误:MethodNotAllowed:无法修改具有内置角色的用户的属性

 {
      "type": "Microsoft.ApiManagement/service/users",
      "apiVersion": "2019-01-01",
      "name": "[concat(parameters('service_testAPITalha_name'), '/1')]",
      "dependsOn": [
        "[resourceId('Microsoft.ApiManagement/service', parameters('service_testAPITalha_name'))]"
      ],
      "properties": {
        "firstName": "Administrator",
        "email": "xxx@hotmail.com",
        "state": "active",
        "identities": [
          {
            "provider": "Azure",
            "id": "xxx@hotmail.com"
          }
        ],
        "lastName": "[parameters('users_1_lastName')]"
      }
    }

我取出的电子邮件是Azure帐户注册的主要电子邮件

如果我删除这段代码,我会遇到更多关于找不到资源的失败,因此我相信我的ARM模板中存在对这段特定代码/资源的依赖


这里的最终目标是能够使用ARM模板轻松地从开发到测试再到登台再到生产,并使API管理服务和它的API保持完整,并且只需更改后端URL即可。我相信我就快到了,只要试着调试这个脚本,任何帮助都将不胜感激

找到了此资源,这将很有帮助:

试一试


找到此资源,这将很有帮助:

试一试


我遇到了同样的问题,但问题已经解决了。 很可能,您已经基于“导出模板”功能生成了ARM模板

这将生成两个“默认”订阅和一个默认用户管理员。 删除这三个选项,您的模板就可以正常运行了。 管理员的“入门”和“无限”订阅总是在没有ARM模板说明的情况下创建的

因此,请删除Microsoft.ApiManagement/service/users部分,其中包括:

"[concat(parameters('service_testAPITalha_name'), '/1')]"
以及包含以下内容的两个订阅部分:

"ownerId": "[resourceId('Microsoft.ApiManagement/service/users', parameters('service_testAPITalha_name'), '1')]",
"scope": "[resourceId('Microsoft.ApiManagement/service/products', parameters('service_testAPITalha_name'), 'starter')]
以及:


我遇到了同样的问题,但问题已经解决了。 很可能,您已经基于“导出模板”功能生成了ARM模板

这将生成两个“默认”订阅和一个默认用户管理员。 删除这三个选项,您的模板就可以正常运行了。 管理员的“入门”和“无限”订阅总是在没有ARM模板说明的情况下创建的

因此,请删除Microsoft.ApiManagement/service/users部分,其中包括:

"[concat(parameters('service_testAPITalha_name'), '/1')]"
以及包含以下内容的两个订阅部分:

"ownerId": "[resourceId('Microsoft.ApiManagement/service/users', parameters('service_testAPITalha_name'), '1')]",
"scope": "[resourceId('Microsoft.ApiManagement/service/products', parameters('service_testAPITalha_name'), 'starter')]
以及:


非常感谢。这修复了其中一个错误,但现在我得到了这个错误:17:42:12-模板部署返回了以下错误:17:42:12-5:41:50 PM-Resource Microsoft.apimagement/service/groups/users'testAPITalha-latest/administrators/1'失败,消息为{17:42:12-错误:{17:42:12-代码:MethodNotAllowed,17:42:12-消息:无法更改系统组成员身份,17:42:12-详细信息:null 17:42:12-}17:42:12-}'请查看更新后的帖子以查看仍需修复的错误。感谢您的帮助您可能需要删除标识参数并添加确认:invite param。请参阅此处和此处,这似乎不起作用:09:53:36-9:53:13 AM-ResSource Microsoft.ApiManagement/service/subscriptions“testAPITalha-latest/master”失败,消息为“{09:53:36-错误:{09:53:36-代码:ValidationError,09:53:36-消息:一个或多个字段包含不正确的值:,09:53:36-详细信息:[09:53:36-{09:53:36-代码:ValidationError,09:53:36-目标:作用域,09:53:36-消息:无法修改全局订阅09:53:36-9:53:18 AM-Resource Microsoft.ApiManagement/service/groups/users'testAPITalha-latest/developers/1'失败,消息为{09:53:36-错误:{09:53:36-代码:MethodNotAllowed,09:53:36-消息:无法更改系统组成员身份,09:53:36-详细信息:null 09:53:36-}09:53:36-}'谢谢!修复了其中一个错误,但现在我收到了此错误:17:42:12-模板部署返回以下错误:17:42:12-5:41:50 PM-Resource Microsoft.apimagement/service/groups/users'testAPITalha-latest/administrators/1'失败,并显示消息'{17:42:12-错误:{17:42:12-代码:MethodNotAllowed,17:42:12-消息:无法更改系统组成员身份,17:42:12-详细信息:null 17:42:12-}17:42:12-}'请查看
更新post以查看有待修复的错误。感谢您的帮助您可能需要删除Identifications参数并添加确认:invite param。请看此处,此处似乎不起作用:09:53:36-9:53:13 AM-Resource Microsoft.apimagement/service/subscriptions“testAPITalha-latest/master”失败,并显示消息“{09:53:36-错误:{09:53:36-代码:ValidationError,09:53:36-消息:一个或多个字段包含不正确的值:,09:53:36-详细信息:[09:53:36-{09:53:36-代码:ValidationError,09:53:36-目标:作用域,09:53:36-消息:无法修改全局订阅09:53:36-9:53:18 AM-Resource Microsoft.ApiManagement/service/groups/users'testAPITalha-latest/developers/1'失败,消息为{09:53:36-错误:{09:53:36-代码:MethodNotAllowed,09:53:36-消息:无法更改系统组成员身份,09:53:36-详细信息:null 09:53:36-}09:53:36-}'
"ownerId": "[resourceId('Microsoft.ApiManagement/service/users', parameters('service_testAPITalha_name'), '1')]",
"scope": "[resourceId('Microsoft.ApiManagement/service/products', parameters('service_testAPITalha_name'), 'unlimited')]