代码之家  ›  专栏  ›  技术社区  ›  pks

使用ARM模板实现应用程序服务的vNet集成

  •  -1
  • pks  · 技术社区  · 2 年前

    我试图使用以下逻辑在azure应用程序服务中添加一个子网,但它不起作用,如果条件工作正常,但resourceId I没有形成子网的正确id,并且没有连接子网,有人能帮我解决这个问题吗,我在azure中有大约10个应用程序服务,其中一些要求添加子网,因此使用if条件,如果应用程序服务名称与appapi匹配,则需要添加名为subceus2report的子网,请给我建议

    "virtualNetworkSubnetId": "[if(contains(variables('appCopyArray')[copyIndex('appCopy')], 'appapi'), resourceId('rgppceus2', 'Microsoft.Network/virtualNetworks/subnets','vntpceus2', 'subpceus2report'), '')]"
    

    需要将子网添加到应用程序服务

    0 回复  |  直到 2 年前
        1
  •  0
  •   Suresh Chikkam    2 年前
    • 为提供的表达式中似乎存在语法错误 virtualNetworkSubnetId 。这是一个改进的版本,以避免出现错误。
    "virtualNetworkSubnetId": "[if(contains(variables('appCopyArray')[copyIndex('appCopy')], 'appapi'), resourceId('Microsoft.Network/virtualNetworks/subnets', 'vntpceus2', 'subpceus2report'), '')]"
    
    • rgppceus2 不是指定子网资源ID所必需的 resourceId 函数应用于构造格式为的资源ID 'Microsoft.Network/virtualNetworks/subnets' .

    在这里,我已经根据您的要求尝试了以下代码:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "appName": {
          "type": "string",
          "metadata": {
            "description": "Name of the Azure App Service."
          }
        }
      },
      "variables": {
        "subnetId": "[if(contains(parameters('appName'), 'appapi'), resourceId('Microsoft.Network/virtualNetworks/subnets', 'vnetIntegration', 'mysub01'), json('null'))]"
      },
      "resources": [
        {
          "name": "[parameters('appName')]",
          "type": "Microsoft.Web/sites",
          "apiVersion": "2021-02-01",
          "location": "[resourceGroup().location]",
          "properties": {
            "name": "[parameters('appName')]",
            "siteConfig": {
              "virtualNetworkConnection": [
                {
                  "name": "vnetIntegration",
                  "properties": {
                    "vnetResourceId": "[resourceId('Microsoft.Network/virtualNetworks', 'vnetIntegration')]",
                    "subnetResourceId": "[if(not(equals(variables('subnetId'), json('null'))), variables('subnetId'), json('null'))]"
                  },
                  "condition": "[not(equals(variables('subnetId'), json('null')))]"
                }
              ]
            }
          }
        }
      ]
    }
    

    部署状态: enter image description here

    输出: enter image description here