在VSTS中部署带源控制链接的功能应用程序时,“参数x-ms-client-principal-name为空或空”

时间:2016-11-27 12:58:02

标签: azure azure-devops azure-resource-manager azure-functions

我想在DEV / TEST / PROD实例中自动部署基于消费计划的功能应用程序。为此我开始在Portal中手动创建一个Function App,复制/粘贴自动化脚本并将其合并到我的ARM模板项目中。 要将我的源代码自动部署到功能应用程序,我将链接集成到模板中的repo / branch:

        "resources": [
            {
                "apiVersion": "2015-08-01",
                "name": "web",
                "type": "sourcecontrols",
                "dependsOn": [
                    "[concat('Microsoft.Web/sites/', parameters('name'))]"
                ],
                "tags": {
                    "displayName": "fnSourceControl"
                },
                "properties": {
                    "repoUrl": "[parameters('repoUrl')]",
                    "branch": "[parameters('repoBranch')]",
                    "isManualIntegration": false
                }
            }
        ]

从VS或命令行部署时,它可以正常工作。资源组是使用功能应用程序创建的,代码部署在其中: Magic!但是,从VSTS版本定义部署时,部署失败并显示:

Resource Microsoft.Web/sites/sourcecontrols 'myFunctionApp/web' failed with message '{
  "Code": "BadRequest",
  "Message": "Parameter x-ms-client-principal-name is null or empty.",
  "Target": null,
  "Details": [
    {
      "Message": "Parameter x-ms-client-principal-name is null or empty."
    },
    {
      "Code": "BadRequest"
    },
    {
      "ErrorEntity": {
        "Code": "BadRequest",
        "Message": "Parameter x-ms-client-principal-name is null or empty.",
        "ExtendedCode": "51011",
        "MessageTemplate": "Parameter {0} is null or empty.",
        "Parameters": [
          "x-ms-client-principal-name"
        ],
        "InnerErrors": null
      }
    }
  ],
  "Innererror": null
}

此问题与my other question有关'Microsoft.Storage/storageAccounts/providers/locks'部署问题有关。我想它会走向同一个方向。我不想超过一个混合两个问题的问题。

1 个答案:

答案 0 :(得分:0)

我和我们的专家交谈过,回答是不支持使用服务主体进行VSTS设置。原因是,对于VSTS,我们模拟呼叫者并代表用户呼叫VSTS api。为此,调用者需要是有效的VSTS帐户。在使用服务主体时,您拥有的身份不是有效的VSTS帐户。

请注意,它与您从VSTS版本定义部署的事实无关。使用服务主体身份在本地部署时也会发生同样的情况。