我想在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'部署问题有关。我想它会走向同一个方向。我不想超过一个混合两个问题的问题。
答案 0 :(得分:0)
我和我们的专家交谈过,回答是不支持使用服务主体进行VSTS设置。原因是,对于VSTS,我们模拟呼叫者并代表用户呼叫VSTS api。为此,调用者需要是有效的VSTS帐户。在使用服务主体时,您拥有的身份不是有效的VSTS帐户。
请注意,它与您从VSTS版本定义部署的事实无关。使用服务主体身份在本地部署时也会发生同样的情况。