AzureCLI@3 - Azure CLI v3 görevi

Linux agentında çalışırken PowerShell Core/Shell scriptinde Azure CLI aboneliğine karşı Azure CLI komutlarını çalıştırın; Windows agent'ında çalışırken PowerShell/PowerShell Core/Batch script'i ile çalıştırın.

Uyarı

Bu görev, Microsoft Entra iş yükü kimliği özelliğine sahip Access Azure DevOps kapsamında yayınlanıyor ve bu hafta ve gelecek hafta piyasaya sürülecek. Henüz Azure DevOps Services projenizde bu özelliği görmüyorsanız, birkaç gün içinde tekrar kontrol edin.

Sözdizimi

# Azure CLI v3
# Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/PowerShell Core/Batch script when running on Windows agent.
- task: AzureCLI@3
  inputs:
    connectionType: 'azureRM' # 'azureRM' | 'azureDevOps'. Required. Connection Type. Default: azureRM.
    azureSubscription: # string. Alias: connectedServiceNameARM. Required when connectionType = azureRM. Azure Resource Manager connection. 
    #azureDevOpsServiceConnection: # string. Required when connectionType = azureDevOps. Azure DevOps Service Connection. 
    scriptType: # 'ps' | 'pscore' | 'batch' | 'bash'. Required. Script Type. 
    scriptLocation: 'scriptPath' # 'inlineScript' | 'scriptPath'. Required. Script Location. Default: scriptPath.
    scriptPath: # string. Required when scriptLocation = scriptPath. Script Path. 
    #inlineScript: # string. Required when scriptLocation = inlineScript. Inline Script. 
    #arguments: # string. Alias: scriptArguments. Script Arguments. 
    #powerShellErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. Optional. Use when scriptType = ps || scriptType = pscore. ErrorActionPreference. Default: stop.
  # Advanced
    #addSpnToEnvironment: false # boolean. Access service principal details in script. Default: false.
    #useGlobalConfig: false # boolean. Use global Azure CLI configuration. Default: false.
    #workingDirectory: # string. Alias: cwd. Working Directory. 
    #failOnStandardError: false # boolean. Fail on Standard Error. Default: false.
    #powerShellIgnoreLASTEXITCODE: false # boolean. Optional. Use when scriptType = ps || scriptType = pscore. Ignore $LASTEXITCODE. Default: false.
    #visibleAzLogin: true # boolean. az login output visibility. Default: true.
    #allowNoSubscriptions: false # boolean. Allow no Azure subscriptions. Default: false.
    #keepAzSessionActive: false # boolean. [Experimental] Keep Azure CLI session active. Default: false.

Girişler

connectionType - Bağlantı Türü
string. Gerekli. İzin verilen değerler: azureRM (Azure Resource Manager), azureDevOps (Azure DevOps). Varsayılan değer: azureRM.

Kullanılacak hizmet bağlantısı türü.


azureSubscription - Azure Resource Manager bağlantı
Giriş diğer adı: connectedServiceNameARM. string. connectionType = azureRMgerekir.

Dağıtım için bir Azure Resource Manager service bağlantısı belirtin.


azureDevOpsServiceConnection - Azure DevOps Servis Bağlantısı
string. connectionType = azureDevOpsgerekir.

Specify a Azure DevOps service connection.


scriptType - Betik Türü
string. Gerekli. İzin verilen değerler: ps (PowerShell), pscore (PowerShell Core), batch, bash (Kabuk).

Betiğin türü. Linux aracısı üzerinde çalışırken bir bash veya pscore betiği seçin. Ya da Windows ajanda çalışırken batch, ps veya pscore bebetiği seçin. Bir pscore betiği çapraz platform ajanlarda (Linux, macOS veya Windows) çalışabilir.


scriptLocation - Betik Konumu
string. Gerekli. İzin verilen değerler: inlineScript (Satır içi betik), scriptPath (Betik yolu). Varsayılan değer: scriptPath.

Script yol: Dosya yolu veya Inline script.


scriptPath - Betik Yolu
string. scriptLocation = scriptPathgerekir.

Betiğin tam yolu. Windows tabanlı ajan kullanırken .ps1, .bat veya .cmd kullanın. Linux tabanlı aracı veya varsayılan çalışma dizinine göre bir yol kullanırken .ps1 veya .sh kullanın.


inlineScript - Satır İçi Komut Dosyası
string. scriptLocation = inlineScriptgerekir.

Betiklerinizi satır içinde buraya yazabilirsiniz. Windows ajanı kullanırken PowerShell, PowerShell Core veya toplu betik kullan. Linux tabanlı aracıları kullanırken PowerShell Core veya kabuk betiği kullanın. Toplu dosyalar için, her Azure komutundan önce call önekini kullanın. Ayrıca bağımsız değişkenleri kullanarak bu betikte önceden tanımlanmış ve özel değişkenler geçirebilirsiniz.

Aşağıda PowerShell/PowerShellCore/shell örneği verilmiştir.

az --version 
az account show 

Aşağıda toplu iş için bir örnek verilmiştir.

call  az --version 
call az account show

arguments - Betik Bağımsız Değişkenleri
Giriş diğer adı: scriptArguments. string.

Betike geçirilen bağımsız değişkenler.


powerShellErrorActionPreference - ErrorActionPreference
string. Optional. scriptType = ps || scriptType = pscoreolduğunda kullanın. İzin verilen değerler: stop, continue, silentlyContinue. Varsayılan değer: stop.

Powershell/powershell çekirdek betik betikinizin üst kısmına satırı $ErrorActionPreference = 'VALUE' ekleyin.


BetikAccess hizmet sorumlusu ayrıntılarını addSpnToEnvironment -
boolean. Varsayılan değer: false.

Seçtiğiniz Azure uç noktasının hizmet asıl kimliği, hizmet başı anahtarı ve kiracı kimliğini script'in yürütme ortamına ekler. Değişkenleri kullanabilirsiniz: servicePrincipalId, servicePrincipalKey ve tenantId becenizde.

Bu durum yalnızca Azure uç noktasında Hizmet Başlıca kimlik doğrulama şeması olduğunda uygulanır.

Ortam değişkenlerine script tipine göre erişmek için sözdizim.

PowerShell script: $env:servicePrincipalId

Toplu senaryo: %servicePrincipalId%

Shell senaryosu: $servicePrincipalId.


useGlobalConfig - Küresel Azure CLI yapılandırmasını kullan
boolean. Varsayılan değer: false.

Eğer bu girdi yanlışsa, bu görev kendi ayrı Azure CLI yapılandırma dizinini kullanır. Bu, parallel sürümlerinde Azure CLI görevleri çalıştırmak için kullanılabilir.


çalışma dizini
Giriş diğer adı: cwd. string.

Script'in çalıştırıldığı çalışma dizinini belirtin. Boş bırakılırsa, varsayılan repo'nun (build) veya artefaktların (release) köküdür ve bu []$(System.DefaultWorkingDirectory)](/azure/devops/pipelines/build/variables#system-variables).


standart hatabaşarısız failOnStandardError -
boolean. Varsayılan değer: false.

Eğer bu doğruysa, StandardError akışına herhangi bir hata yazıldığında bu görev başarısız olur. Standart hataları yoksaymak için onay kutusunun seçimini kaldırın ve durumu belirlemek için çıkış kodlarını kullanın.


powerShellIgnoreLASTEXITCODE - Yoksay $LASTEXITCODE
boolean. Optional. scriptType = ps || scriptType = pscoreolduğunda kullanın. Varsayılan değer: false.

Eğer bu yanlışsa, satır if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } senaryonuzun sonuna eklenir. Bu, harici bir komutun son çıkış kodunun powershell'in çıkış kodu olarak yayılmasına neden olur. Aksi takdirde satır senaryonuzun sonuna eklenmez.


az login output visibilityvisibleAzLogin -
boolean. Varsayılan değer: true.

Bu true olarak ayarlanırsa, az login komutu göreve çıkış yapacaktır. false olarak ayarlanması az login çıkışını gizler.



boolean. Varsayılan değer: false.

Eğer doğruysa, görev abonelik bağlamı ayarlamaya çalışmaz ve kimliğin abonelik erişimi olmayan girişlere izin verir. Ayrıca, hizmet bağlantısında tamamen sıfır bir Abonelik Kimliği (00000000-0000-0000-0000-00000-00000000000) sağlayarak abonelik bağlamını dolaylı olarak atlayabilirsiniz.


keepAzSessionActive - [Deneysel] Azure CLI seansı aktif tutun
boolean. Varsayılan değer: false.

Etkinleştirildiğinde, bu görev IdToken son kullanma tarihi sonrası erişim belirteçleri talep edilirken AADSTS700024 hataları önlemek için sürekli olarak Azure'ye giriş yapar. Bu özelliğin DENEYSEL olduğunu, tüm senaryolarda çalışmayabileceğini ve garanti olmadan kullandığınızı unutmayın. Yalnızca Workload Identity Federation kimlik doğrulama şeması kullanan servis bağlantıları için geçerlidir.


Görev denetim seçenekleri

Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz. Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

Sürüm görevi 3.0 sürümünde ne yenilik var?

  • Dual connection types için destek: Azure Resource Manager ve Azure DevOps service connections.
  • Azure DevOps CLI entegrasyonu otomatik extension install and configuration ile.
  • Workload Identity Federation support for Azure DevOps connections.
  • Abonelik erişimi olmayan kimlikleri desteklemek için 'Azure aboneliklerine izin verme' seçeneği eklendi.

Önkoşullar

  • Bir Microsoft Azure aboneliği.
  • Azure Resource Manager servis bağlantısı Azure hesabınıza.
  • Microsoft hosted agentlerinde Azure CLI önceden kuruludur. Ancak özel ajanlar kullanıyorsanız, derleme ve sürüm ajanını çalıştıran bilgisayar(lar)da c0/Azure CLI kurun. Eğer bir ajan zaten Azure CLI'nin kurulduğu makinede çalışıyorsa, tüm ilgili aşama değişkenlerinin güncellendiğinden emin olmak için ajanı yeniden başlatın.

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalışır Aracı, DeploymentGroup
Talep Hiçbiri
Özellikleri Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenleri Herhangi biri
Aracı sürümü 2.0.0 veya üzeri
Görev kategorisi Uygula