Доступ к сведениям об участниках службы Azure из выпуска VSTS

Хотя мы можем использовать задачу Powershell Azure в VSTS для выпуска, мы также иногда запускаем сценарии F# для выпусков, и в рамках этого мы хотим развернуть ресурсы в Azure с помощью субъекта-службы. У нас уже есть SP, зарегистрированный в VSTS, и Powershell может получить к нему доступ, но есть ли способ, например. необработанная командная строка и т. д., чтобы получить идентификатор арендатора и т. д. и т. д., чтобы мы могли использовать их вручную? Например, как переменные окружения?

Единственная другая альтернатива, которая у нас есть, — это вручную скопировать идентификатор арендатора и т. д. в выпуск в качестве переменных сборки, но мне это кажется обходным путем.


person Isaac Abraham    schedule 17.03.2017    source источник


Ответы (1)


Да, вы можете получить соответствующую информацию (например, идентификатор арендатора) в пользовательском шаге/задаче сборки/выпуска.

Дополнительную информацию о расширении сборки вы можете найти по адресу: Добавить задачу сборки.

Если вы не знаете, как этого добиться, вы можете обратиться к этим шагам, чтобы получить весь исходный код шага/задачи Azure PowerShell.

  1. Настройте локальный агент сборки: разверните агент на Окна
  2. Создание определения сборки/выпуска
  3. Добавьте шаг/задачу Azure PowerShell и настройте ее.
  4. Поставить эту сборку/выпуск в очередь
  5. Войдите на свой компьютер с агентом сборки, проверьте шаг/задачу Azure PowerShell в [agent folder]\tasks\AzurePowerShell

Простое расширение шага сборки/выпуска/задачи:

Файлы:

 AzureCustomTask

    Ps_modules (can be found in the Azure PowerShell step/task folder, refer to previous steps)

    Test.ps1

    Icon.png

    Task.json

Код Test.ps1:

$serviceNameInput = Get-VstsInput -Name ConnectedServiceNameSelector -Default 'ConnectedServiceName'
 Write-Host $serviceNameInput
 $serviceName = Get-VstsInput -Name $serviceNameInput -Default (Get-VstsInput -Name DeploymentEnvironmentName)

 Write-Host $serviceName
        if (!$serviceName) {
            # Let the task SDK throw an error message if the input isn't defined.
            Get-VstsInput -Name $serviceNameInput -Require
        }

        $endpoint = Get-VstsEndpoint -Name $serviceName -Require

        Write-Host $endpoint.Auth.Parameters.TenantId

Код части в task.json (поле ввода для выбора подписки):

"inputs": [
    {
      "name": "ConnectedServiceName",
      "type": "connectedService:AzureRM",
      "label": "Azure RM Subscription",
      "defaultValue": "",
      "required": true,
      "helpMarkDown": "Select the Azure Resource Manager subscription for the deployment."
    },
....
person starian chen-MSFT    schedule 17.03.2017
comment
Спасибо. Означает ли это, что единственный способ получить доступ к подключенным деталям — через Powershell? Мне интересно, сможем ли мы добраться до него через код .NET? - person Isaac Abraham; 20.03.2017
comment
@IsaacAbraham Он использует vsts-task-lib для получения конечной точки, и это код powershell, но вы можете вызвать сценарий powershell из кода .net. - person starian chen-MSFT; 21.03.2017