Параметр x-ms-client-Principal-name имеет значение NULL или пусто при развертывании приложения-функции со ссылкой на систему управления версиями в VSTS.

Я хочу автоматически развернуть приложение-функцию на основе плана потребления в своих экземплярах DEV / TEST / PROD. Для этого я начал создавать приложение-функцию вручную на портале, скопировал / вставил сценарий автоматизации и включил его в свой проект шаблона ARM. Чтобы мой исходный код был автоматически развернут в приложении-функции, я интегрировал ссылку на репо / ветку в шаблоне:

        "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 или из командной строки. Группа ресурсов создается с помощью приложения-функции, и в нее развертывается код: Волшебство! Однако при развертывании из определения выпуска 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
}

Этот вопрос связан с моим другим вопросом относительно проблемы развертывания Microsoft.Storage/storageAccounts/providers/locks. Я думаю, это идет в том же направлении. Я не хотел перегружать один вопрос, смешивая обе проблемы.


person Kai Walter    schedule 27.11.2016    source источник
comment
Я предполагаю, что вы увидите то же самое при попытке развернуть шаблон со своего компьютера, если вы использовали удостоверение участника-службы, и, следовательно, это не связано с его запуском из VSTS. Можете ли вы проверить это, чтобы уменьшить вопрос?   -  person David Ebbo    schedule 28.11.2016
comment
Я проверю - спасибо @DavidEbbo   -  person Kai Walter    schedule 28.11.2016
comment
@DavidEbbo - вы правы - я создал субъект-службу, запустил то же развертывание вручную и получил ту же ошибку   -  person Kai Walter    schedule 30.11.2016


Ответы (1)


Я поговорил с нашим экспертом, и я получил ответ, что установка VSTS с субъектом службы не поддерживается. Причина в том, что для VSTS мы олицетворяем вызывающего абонента и вызываем VSTS api от имени пользователя. Чтобы это работало, у вызывающего абонента должна быть действующая учетная запись VSTS. Поместите при использовании субъекта-службы у вас есть удостоверение, которое не является действительной учетной записью VSTS.

Обратите внимание, что это не имеет ничего общего с тем фактом, что вы развертываете из определения выпуска VSTS. То же самое произойдет при локальном развертывании с использованием удостоверения участника-службы.

person David Ebbo    schedule 28.11.2016