You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure中ARM模板无法传递包含&的URL的问题

解决ARM模板中包含&的URL传递失败问题

我刚碰到过完全一样的问题,核心根源是你在sasTokenURL变量里用了HTML转义的&,但ARM模板的JSON运行环境中,不需要对&做HTML转义——模板会把&当作字面量字符处理,导致最终拼接出来的URL里全是&而非正确的&,这直接导致请求地址无效。

修正步骤:

  1. 替换转义字符
    你的SAS Token里的URL编码(比如%3A、%2F这类)是正确的,不需要改动,只需要把所有&替换成原始的&即可。

  2. 修正后的变量配置片段

    "variables": { 
        "scriptBaseURL": "https://sample.blob.core.windows.net/test/", 
        "sasTokenURL": "?st=2018-04-11T14%3A00%3A00Z&se=2020-04-13T14%3A00%3A00Z&sp=r&sv=2017-04-17&sr=c&sig=9bzbHSDFEPds1mrTxCdCgaF7wnRh%2FsX8sQeNnVMucE%3D", 
        "filePath": "[concat(variables('scriptBaseURL'), 'test.rpm', variables('sasTokenURL'))]", 
        "mongoDBScript": "[concat(variables('scriptBaseURL'), 'install-mongodb-3.4.sh', variables('sasTokenURL'))]", 
        "oracleJDKScript": "[concat(variables('scriptBaseURL'), 'your-jdk-script.sh', variables('sasTokenURL'))]"
    }
    

额外验证建议:

  • 你可以用ARM模板的部署验证功能先检查拼接后的URL是否正确,或者在模板里添加一个输出参数打印最终的filePath值,确认生成的URL里是正常的&分隔符:
    "outputs": {
        "validatedFilePath": {
            "type": "string",
            "value": "[variables('filePath')]"
        }
    }
    
  • 如果你的SAS Token是从外部传入的参数而非硬编码,确保传入的原始值用的是&而不是&,避免重复转义。

内容的提问来源于stack exchange,提问作者Galet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:24:08