Bagikan melalui


AzurePowerShell@5 - Tugas Azure PowerShell v5

Gunakan tugas ini untuk menjalankan skrip PowerShell dalam lingkungan Azure. Konteks Azure diautentikasi dengan koneksi layanan Azure Resource Manager yang disediakan.

Nota

Secara default, Azure PowerShell v5 menggunakan PowerShell Core untuk agen Linux dan Windows PowerShell untuk agen Windows. Untuk menggunakan versi terbaru PowerShell pada agen Windows, atur parameter pwsh ke true. PowerShell Core kemudian akan digunakan sebagai gantinya.

Sintaksis

# 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.

Masukan

Langganan Azure azureSubscription -
Alias input: ConnectedServiceNameARM. string. Dibutuhkan.

Langganan Azure Resource Manager untuk dikonfigurasi sebelum menjalankan PowerShell.

Anda dapat menggunakan ekspresi templat untuk menentukan input koneksi layanan. Dalam contoh berikut, azureSubscription membuat menggunakan string format dan ekspresi berdasarkan variabel 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 }}"

Jenis Skrip ScriptType -
string. Nilai yang diizinkan: FilePath (Jalur File Skrip), InlineScript (Skrip Sebaris). Nilai default: FilePath.

Jenis skrip: jalur file atau sebaris.


Jalur Skrip ScriptPath -
string. Fakultatif. Gunakan saat ScriptType = FilePath.

Jalur skrip. Ini harus menjadi jalur yang sepenuhnya memenuhi syarat atau relatif terhadap direktori kerja default.


Skrip Sebaris
string. Fakultatif. Gunakan saat ScriptType = InlineScript. Nilai default: # You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments.

Menspesifikasikan skrip yang akan dijalankan. Panjang skrip sebaris maksimum yang didukung adalah 5000 karakter. Gunakan skrip dari file jika Anda ingin menggunakan skrip yang lebih panjang.


Argumen Skrip ScriptArguments -
string. Fakultatif. Gunakan saat ScriptType = FilePath.

Parameter tambahan untuk diteruskan ke PowerShell. Ini dapat berupa parameter ordinal atau bernama. Tidak berlaku untuk opsi skrip sebaris.


errorActionPreference - ErrorActionPreference
string. Nilai yang diizinkan: stop, continue, silentlyContinue. Nilai default: stop.

Memilih nilai variabel ErrorActionPreference untuk menjalankan skrip.


FailOnStandardError - Gagal pada Kesalahan Standar
boolean. Nilai default: false.

Ketika ini benar, tugas ini akan gagal jika ada kesalahan yang ditulis ke alur kesalahan atau jika ada data yang ditulis ke aliran kesalahan standar.


azurePowerShellVersion - Versi Azure PowerShell
Alias input: TargetAzurePs. string. Nilai yang diizinkan: LatestVersion (Versi terbaru yang diinstal), OtherVersion (Tentukan versi lain). Nilai default: OtherVersion.

Dalam kasus agen yang dihosting, Versi Azure PowerShell yang didukung 1.0.0, 1.6.0, 2.3.2, 2.6.0, dan 3.1.0 (Antrean VS2017 yang Dihosting). Untuk memilih versi terbaru yang tersedia pada agen, pilih LatestVersion (Versi terbaru yang diinstal).

Untuk agen privat, Anda dapat menentukan versi Azure PowerShell pilihan menggunakan OtherVersion (Tentukan versi lain).


preferredAzurePowerShellVersion - versi Azure PowerShell pilihan
Alias input: CustomTargetAzurePs. string. Diperlukan saat TargetAzurePs = OtherVersion.

Versi Azure PowerShell pilihan harus menjadi versi semantik yang tepat misalnya. 1.2.3. Regex seperti 2.\*,2.3.\* tidak didukung. Kumpulan Vs2017 yang Dihosting saat ini mendukung versi modul Az 1.0.0, 1.6.0, 2.3.2, 2.6.0, dan 3.1.0.


pwsh - Menggunakan PowerShell Core
boolean. Nilai default: false.

Jika ini benar, maka tugas yang berjalan pada agen Windows akan menggunakan pwsh.exe dari jalur Anda alih-alih powershell.exe.


validateScriptSignature - Memvalidasi tanda tangan skrip
boolean. Fakultatif. Gunakan saat ScriptType = FilePath. Nilai default: false.

Jika ini benar, maka tugas pertama-tama akan memeriksa untuk memastikan skrip yang ditentukan ditandatangani dan valid sebelum menjalankannya.


Direktori Kerja
string.

Direktori kerja tempat skrip dijalankan.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat opsi Kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Komentar

Pemecahan masalah

Skrip berfungsi secara lokal, tetapi gagal dalam alur

Hal ini biasanya terjadi ketika koneksi layanan yang digunakan dalam pipeline memiliki izin yang tidak cukup untuk menjalankan skrip. Secara lokal, skrip berjalan dengan kredensial Anda dan akan berhasil karena Anda mungkin memiliki akses yang diperlukan.

Untuk menangani masalah ini, pastikan prinsip layanan/pengesahan autentikasi memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat Menggunakan Kontrol Akses Berbasis Peran untuk mengelola akses ke sumber daya langganan Azure Anda.

Kesalahan: Tidak dapat menemukan modul: '<nama modul>' dengan Versi: '<versi>'. Jika modul baru-baru ini diinstal, coba lagi setelah memulai ulang agen tugas Azure Pipelines

Tugas Azure PowerShell menggunakan Modul Azure/AzureRM/Az PowerShell untuk berinteraksi dengan Langganan Azure. Masalah ini terjadi ketika modul PowerShell tidak tersedia di Agen yang Dihosting. Oleh karena itu, untuk versi tugas tertentu, versi Azure PowerShell pilihan harus ditentukan dalam opsi versi Azure PowerShell dari daftar versi yang tersedia. Perangkat lunak yang diinstal dapat ditemukan dalam tabel Perangkat Lunak di agen yang dihosting Microsoft.

Masalah Koneksi Layanan

Untuk memecahkan masalah yang terkait dengan koneksi layanan, lihat pemecahan masalah Koneksi Layanan .

Contoh

Contoh berikut menunjukkan cara memanggil skrip dari file dan meneruskan argumen skrip ke dalamnya.

- 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

Argumen berikut menunjukkan cara memanggil skrip sebaris.

- 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!'

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak
Kemampuan Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan.
pembatasan Perintah Apapun
variabel yang Dapat Diatur Apapun
Versi agen 2.115.0 atau lebih tinggi
Kategori tugas Terapkan