Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 |