根据条件Azure Arm模板动态添加允许的CORSOrigins

问题描述 投票:0回答:1

我正在尝试根据产品或非产品环境动态添加allowedOrigin。尝试了几种方法,但是这些都不起作用。对于Prod,我们只允许3个域,但对于较低环境,我们希望允许任何源。有人可以帮忙。

"variables": { 
   "corsAllowedUrls": [
        "https://www.example.com",
        "https://app2.example.com",
        "https://m2.example.com"
    ]
 }
 .......
 "type": "Microsoft.Web/sites",
 "siteConfig": {
      "cors": {
        "allowedOrigins": [
          "[if(equals(parameters('azureEnvironment'),'prod'), variables('corsAllowedUrls'), '*')]"
        ]
      },

第二个选项,这适用于产品,但是对于其他环境,它添加了三行,它们随机起作用而随机不起作用。

"siteConfig": {
      "cors": {
        "allowedOrigins": [
          "[if(equals(parameters('azureEnvironment'),'prod'), 'https://ww2.example.com', '*')]",
          "[if(equals(parameters('azureEnvironment'),'prod'), 'https://app2.example.com', '')]",
          "[if(equals(parameters('azureEnvironment'),'prod'), 'https://m2.example.com', '')]"
        ]
      }

我也尝试过发送逗号分隔的字符串并使用split函数。理想的情况是拥有通配符,但似乎Azure中不支持这些通配符。

感谢您的任何帮助。

azure arm-template
1个回答
1
投票

请尝试这个:

"variables": { 
  "corsAllowedProdUrls": [
    "https://www.example.com",
    "https://app2.example.com",
    "https://m2.example.com"
  ],
  "corsAllowedDevUrls": [
    "*"
  ]
}
.......
"type": "Microsoft.Web/sites",
"siteConfig": {
  "cors": {
    "allowedOrigins": "[if(equals(parameters('azureEnvironment'),'prod'), variables('corsAllowedProdUrls'), variables('corsAllowedDevUrls'))]"
  },
© www.soinside.com 2019 - 2024. All rights reserved.