2016-11-27 7 views
0

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

 "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

Я предполагаю, что вы увидите то же самое, когда пытаетесь развернуть шаблон с вашего компьютера, вы используете идентификатор принципальности службы и, следовательно, не связаны с его запуском из VSTS. Можете ли вы проверить, чтобы уменьшить вопрос? –

+0

Я проверю это - спасибо @DavidEbbo –

+0

@DavidEbbo - вы правы - я создал принципала службы, запускал одно и то же развертывание вручную и получал ту же ошибку –

ответ

0

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

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