Поделиться через


AzurePowerShell@5 — задача Azure PowerShell версии 5

Используйте эту задачу для запуска скрипта PowerShell в среде Azure. Контекст Azure проходит проверку подлинности с помощью предоставленного подключения к службе Azure Resource Manager.

Примечание.

По умолчанию Azure PowerShell версии 5 использует powerShell Core для агентов Linux и Windows PowerShell для агентов Windows. Чтобы использовать последнюю версию PowerShell в агентах Windows, задайте для параметра pwsh значение true. Затем powerShell Core будет использоваться вместо этого.

Синтаксис

# Azure PowerShell v5
# Run a PowerShell script within an Azure environment.
- task: AzurePowerShell@5
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription. 
    #ScriptType: 'FilePath' # 'FilePath' | 'InlineScript'. Script Type. Default: FilePath.
    #ScriptPath: # string. Optional. Use when ScriptType = FilePath. Script Path. 
    #Inline: # string. Optional. Use when ScriptType = InlineScript. Inline Script. 
    #ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments. 
    #errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
    #FailOnStandardError: false # boolean. Fail on Standard Error. Default: false.
  # Azure PowerShell version options
    #azurePowerShellVersion: 'OtherVersion' # 'LatestVersion' | 'OtherVersion'. Alias: TargetAzurePs. Azure PowerShell Version. Default: OtherVersion.
    preferredAzurePowerShellVersion: # string. Alias: CustomTargetAzurePs. Required when TargetAzurePs = OtherVersion. Preferred Azure PowerShell Version. 
  # Advanced
    #pwsh: false # boolean. Use PowerShell Core. Default: false.
    #validateScriptSignature: false # boolean. Optional. Use when ScriptType = FilePath. Validate script signature. Default: false.
    #workingDirectory: # string. Working Directory.
# Azure PowerShell v5
# Run a PowerShell script within an Azure environment.
- task: AzurePowerShell@5
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceNameARM. Required. Azure Subscription. 
    #ScriptType: 'FilePath' # 'FilePath' | 'InlineScript'. Script Type. Default: FilePath.
    #ScriptPath: # string. Optional. Use when ScriptType = FilePath. Script Path. 
    #Inline: # string. Optional. Use when ScriptType = InlineScript. Inline Script. 
    #ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments. 
    #errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
    #FailOnStandardError: false # boolean. Fail on Standard Error. Default: false.
  # Azure PowerShell version options
    #azurePowerShellVersion: 'OtherVersion' # 'LatestVersion' | 'OtherVersion'. Alias: TargetAzurePs. Azure PowerShell Version. Default: OtherVersion.
    preferredAzurePowerShellVersion: # string. Alias: CustomTargetAzurePs. Required when TargetAzurePs = OtherVersion. Preferred Azure PowerShell Version. 
  # Advanced
    #pwsh: false # boolean. Use PowerShell Core. Default: false.
    #workingDirectory: # string. Working Directory.

Входные данные

azureSubscription - подписке Azure
Псевдоним ввода: ConnectedServiceNameARM. string. Обязательное.

Подписка Azure Resource Manager, настроенная перед запуском PowerShell.

Выражения шаблонов можно использовать для указания входных данных подключения службы. В следующем примере azureSubscription создается с помощью строки формата и выражения на основе переменной environmentName.

pool:
  vmImage: ubuntu-latest

variables:
  # Format string for the service connection
  azureSubscriptionFormat: 'connectionString-{0}-001'

stages:
- stage: Prepare
  variables:
    environmentName: 'test'
    # Stage level variable with the service connection name
    # Evaluates to conenctionString-test-001
    azureSubscription: ${{ format(variables.azureSubscriptionFormat, variables.environmentName) }}

  jobs:
  - job: RunStuff
    steps:
    - task: AzureCLI@2
      inputs:
        # Set this input to the computed value
        azureSubscription: ${{ variables.azureSubscription }}
        scriptType: bash
        scriptLocation: inlineScript
        inlineScript: 'echo Hello ${{ variables.azureSubscription }}'

    - task: AzurePowerShell@5
      inputs:
        # Set this input to the computed value
        azureSubscription: ${{ variables.azureSubscription }}
        azurePowerShellVersion: 'LatestVersion'
        scriptType: 'InlineScript'
        inline: Write-Host "Hello ${{ variables.azureSubscription }}"

типа скрипта ScriptType -
string. Допустимые значения: FilePath (путь к файлу скрипта), InlineScript (встроенный скрипт). Значение по умолчанию: FilePath.

Тип скрипта: путь к файлу или встроенный.


Путьк скрипту ScriptPath -
string. Необязательно. Используется при ScriptType = FilePath.

Путь к скрипту. Это должен быть полный путь или один относительно рабочего каталога по умолчанию.


Inline - встроенный скрипт
string. Необязательно. Используется при ScriptType = InlineScript. Значение по умолчанию: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments.

Спецификация выполняемого скрипта. Максимальная поддерживаемая длина встроенного скрипта составляет 5000 символов. Используйте скрипт из файла, если вы хотите использовать более длинный скрипт.


Аргументы скрипта ScriptArguments -
string. Необязательно. Используется при ScriptType = FilePath.

Дополнительные параметры для передачи в PowerShell. Это могут быть порядковые или именованные параметры. Неприменимо для встроенного сценария.


errorActionPreference - ErrorActionPreference
string. Допустимые значения: stop, continue, silentlyContinue. Значение по умолчанию: stop.

Выбирает значение переменной ErrorActionPreference для выполнения скрипта.


FailOnStandardError - сбой стандартной ошибки
boolean. Значение по умолчанию: false.

Если это верно, эта задача завершится ошибкой, если какие-либо ошибки записываются в конвейер ошибок или если данные записываются в стандартный поток ошибок.


azurePowerShellVersion - версии Azure PowerShell
Псевдоним ввода: TargetAzurePs. string. Допустимые значения: LatestVersion (последняя установленная версия), OtherVersion (укажите другую версию). Значение по умолчанию: OtherVersion.

В случае размещенных агентов поддерживаемые версии Azure PowerShell 1.0.0, 1.6.0, 2.3.2, 2.6.0и 3.1.0 (размещенная очередь VS2017). Чтобы выбрать последнюю версию агента, выберите LatestVersion (последняя установленная версия).

Для частных агентов можно указать предпочтительную версию Azure PowerShell с помощью OtherVersion (указать другую версию).


preferredAzurePowerShellVersion - предпочтительная версия Azure PowerShell
Псевдоним ввода: CustomTargetAzurePs. string. Требуется, если TargetAzurePs = OtherVersion.

Предпочтительная версия Azure PowerShell должна быть правильной семантической версией, например. 1.2.3. Regex, например 2.\*,2.3.\*, не поддерживается. В настоящее время размещенный пул VS2017 поддерживает версии модулей Az 1.0.0, 1.6.0, 2.3.2, 2.6.0и 3.1.0.


pwsh - использование PowerShell Core
boolean. Значение по умолчанию: false.

Если это верно, задачи, выполняемые в агентах Windows, будут использовать pwsh.exe из пути вместо powershell.exe.


validateScriptSignature - Проверка подписи скрипта
boolean. Необязательно. Используется при ScriptType = FilePath. Значение по умолчанию: false.

Если это верно, задача сначала проверяет, подписан ли указанный скрипт и действителен перед его выполнением.


workingDirectory - рабочий каталог
string.

Рабочий каталог, в котором выполняется скрипт.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Нет.

Замечания

Устранение неполадок

Скрипт работал локально, но произошел сбой в конвейере.

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

Чтобы устранить эту проблему, убедитесь, что у учетных данных субъекта-службы или проверки подлинности есть необходимые разрешения. Дополнительные сведения см. в статье Использование управления доступом на основе ролей для контроля доступа к ресурсам в подписке Azure

Ошибка. Не удалось найти модули: '<имя модуля>' с версией: '<версии>'. Если модуль был недавно установлен, повторите попытку после перезапуска агента задач Azure Pipelines

Задача Azure PowerShell использует модуль Azure/AzureRM/Az PowerShell для взаимодействия с подпиской Azure. Эта проблема возникает, когда модуль PowerShell недоступен в размещенном агенте. Поэтому для конкретной версии задачи предпочтительную версию Azure PowerShell необходимо указать в параметрах версии Azure PowerShell из списка доступных версий. Установленное программное обеспечение можно найти в таблице программного обеспечения в агентов, размещенных корпорацией Майкрософт,.

Проблемы с подключением к службе

Сведения об устранении неполадок, связанных с подключениями к службам, см. в статье устранение неполадок с подключением службы.

Примеры

В следующем примере показано, как вызвать скрипт из файла и передать в него аргументы скрипта.

- task: AzurePowerShell@5
  inputs:
    azureSubscription: my-arm-service-connection
    scriptType: filePath
    scriptPath: $(Build.SourcesDirectory)\myscript.ps1
    scriptArguments:
      -Arg1 val1 `
      -Arg2 val2 `
      -Arg3 val3
    azurePowerShellVersion: latestVersion
    pwsh: true

В следующих аргументах показано, как вызвать встроенный скрипт.

- task: AzurePowerShell@5
  inputs:
    azureSubscription: 'Azure subscription connection placeholder'
    azurePowerShellVersion: LatestVersion
    ScriptType: 'InlineScript'
    Inline: |
      # You can write your azure powershell scripts inline here. 
      # You can also pass predefined and custom variables to this script using arguments
      Write-Host 'Hello'
      Write-Host 'World!'

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
требования Нет
возможностей Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента 2.115.0 или более поздней версии
Категория задач Внедрять