当前位置: 首页 > 知识库问答 >
问题:

ARM模板资源Microsoft.Web/Sites http请求不能为空

弘浩瀚
2023-03-14

尝试使用多个主机名从Azure密钥库应用证书,我在ARM模板的属性部分迭代,但失败了,出现消息“HTTP request body must not be Empty”。

我的ARM模板是这样的:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appServiceName": {
      "type": "string",
      "metadata": {
        "description": "Name of app service to apply SSL to."
      }
    },
    "certificateName": {
      "type": "string",
      "metadata": {
        "description": "User friendly certificate resource name"
      }
    },
    "appServicePlan": {
      "type": "string",
      "metadata": {
        "description": "App Service Plan Name"
      }
    },
    "keyVaultId": {
      "type": "string",
      "metadata": {
        "description": "Existing Key Vault resource Id with an access policy to allow Microsoft.Web RP to read Key Vault secrets (Checkout README.md for more information)"
      }
    },
    "hostname": {
      "type": "array",
      "metadata": {
        "description": "Custom hostname for creating SSL binding. This hostname should already be assigned to the Web App"
      }
    }
  },
  "resources": [
    {
      "apiVersion": "2016-03-01",
      "type": "Microsoft.Web/sites",
      "name": "[parameters('appServiceName')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[resourceId('Microsoft.Web/certificates', parameters('certificateName'))]"
      ],
      "properties": {
        "copy": [
          {
            "name": "hostnames",
            "count": "[length(parameters('hostname'))]",
            "input": {
              "name": "[copyIndex('hostnames')]",
              "properties": {
                "hostNameSslStates": [
                  {
                    "name": "[parameters('hostname')[copyIndex('hostnames')]]",
                    "sslState": "SniEnabled",
                    "thumbprint": "[reference(resourceId('Microsoft.Web/certificates', parameters('certificateName'))).Thumbprint]",
                    "toUpdate": true
                  }
                ]
              }
            }
          }
        ]
      }
    },
    {
      "type": "Microsoft.Web/certificates",
      "name": "[parameters('certificateName')]",
      "apiVersion": "2016-03-01",
      "location": "[resourceGroup().location]",
      "properties": {
        "keyVaultId": "[parameters('keyVaultId')]",
        "keyVaultSecretName": "[parameters('certificateName')]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms',parameters('appServicePlan'))]"
      }
    }
  ]
}

你们有没有人对是什么引起的有什么建议?提前道谢!

共有1个答案

濮阳君浩
2023-03-14

请使用此方法代替您的副本:

"copy": [
    {
        "name": "hostNameSslStates",
        "count": "[length(parameters('hostname'))]",
        "input": {
            "name": "[parameters('hostname')[copyIndex('hostNameSslStates')]]",
            "sslState": "SniEnabled",
            "thumbprint": "[reference(resourceId('Microsoft.Web/certificates', parameters('certificateName'))).Thumbprint]",
            "toUpdate": true
        }
    }
]
 类似资料:
  • 我试图用PS和ARM来取代SQL Server逻辑服务器。我可以成功地在portal上创建具有贡献者权限的逻辑服务器,但不知道这里出了什么问题。 我在Windows上有PowerShell ISE。 错误:New-AzResourceGroupDeployment:17.35.18-error:code=InvalidTemplateDeployment;Message=模板部署失败,错误为:“模

  • 我正在尝试编写我的第一个JSF应用程序,但在Apache Tomcat 8.0/GlassFish 4服务器上部署它时遇到了问题。 例如,我使用了Horstmann的Core Java Server Faces中描述的应用程序(它来自这里的源代码ch01)。根据这本书,我应该做(对于Win 7 x64): < li >从路径ch01/login/src/java使用以下命令行命令编译项目: 如果使

  • 我正在Azure中部署一个虚拟机。用户名和密码将自动创建,并在部署时作为参数传递。部署vm的资源组也作为参数传递,所以可以是任何参数。 我的Keyvault在一个特定的资源组中,vm的用户名和密码应该存储在这里。

  • 移动设备 我们为移动设备提供了 10 种模版,你可以使用这些模版来规范设计。 Layout Mobile Whiteframe - 2 MB(.ai) 平板设备 我们为平板设备提供了 14 种模版,你可以使用这些模版来规范设计。 Layout Tablet Whiteframe - 3 MB(.ai) 桌面环境 我们为桌面环境提供了 4 种模板,每种都包含 4 个不同屏幕尺寸,你可以使用这些模版来

  • 这是一个常用的资源控制器模板,使用时可以复制直接使用,复制后把相应命名空间,类名改掉就可以用了; <?php // +---------------------------------------------------------------------- // | ThinkCMF [ WE CAN DO IT MORE SIMPLE ] // +-----------------------