Pengaturan untuk menonaktifkan pembuatan repositori TFVC
Dengan pembaruan ini, kami memperkenalkan pengaturan baru untuk menonaktifkan pembuatan repositori TFVC. Perubahan ini berfokus pada proyek baru sambil memastikan bahwa repositori TFVC Anda yang ada tetap tidak terpengaruh.
Selain itu, kami dengan senang hati mengumumkan bahwa di Azure Pipelines, titik akhir REST API baru tersedia untuk meminta token OIDC! Ini memungkinkan pengembang tugas untuk menghasilkan idTokens untuk autentikasi ID Entra, meningkatkan keamanan dan kemudahan penggunaan.
Terakhir, di Azure Boards, jalur area dan iterasi sekarang hanya dapat dihapus jika tidak lagi terkait dengan item kerja apa pun. Peningkatan ini mencegah gangguan dan memastikan tim mempertahankan akses ke papan dan backlog mereka.
Lihat catatan rilis untuk detailnya.
GitHub Advanced Security untuk Azure DevOps
Papan Azure:
Azure Repos
Azure Pipelines
- Mengakses Azure Bus Layanan dari Alur menggunakan autentikasi ID Microsoft Entra
- Alur dan tugas mengisi variabel untuk menyesuaikan autentikasi federasi identitas Beban Kerja
- Coba lagi untuk tugas server
- Tugas yang menggunakan versi runner Node akhir masa pakai untuk menjalankan peringatan
- DockerCompose0 menggunakan Docker Compose v2 dalam mode kompatibilitas v1
Paket Pengujian Azure:
GitHub Advanced Security untuk Azure DevOps
Dokumentasi API gambaran umum keamanan sekarang tersedia
Dokumentasi untuk API yang mendukung tab risiko gambaran umum Keamanan Tingkat Lanjut sekarang tersedia. Gunakan titik /{organization}/_apis/reporting/summary/alerts
akhir untuk melihat ringkasan kekritisan pemberitahuan di semua repositori berkemampuan Keamanan Tingkat Lanjut. Pastikan ADO PAT Anda memiliki vso.advsec
izin, yang memberikan kemampuan untuk membaca pemberitahuan, instans hasil, dan instans hasil analisis.
Azure Boards
Perubahan untuk menghapus area dan jalur iterasi
Menghapus area atau jalur iterasi dapat mengganggu. Ini dapat memindahkan item kerja ke jalur baru dan dapat menyebabkan tim kehilangan akses ke papan dan backlog mereka. Meskipun ada peringatan dan perintah, jalur terkadang dihapus tanpa sepenuhnya memahami konsekuensinya. Untuk mengatasi hal ini, kami mengubah perilaku: Jalur area dan Perulangan sekarang hanya dapat dihapus jika tidak lagi digunakan oleh item kerja apa pun.
Azure Repos
Pengaturan baru untuk menonaktifkan pembuatan repositori TFVC
Dalam beberapa tahun terakhir, tidak ada fitur baru yang ditambahkan ke Team Foundation Version Control (TFVC) karena Git telah menjadi sistem kontrol versi pilihan di Azure Repos. Semua peningkatan terbaru dalam keamanan, performa, dan aksesibilitas telah dilakukan secara eksklusif ke repositori Git, yang menyebabkan penurunan berkelanjutan dalam penggunaan TFVC. Meskipun beberapa masih mengandalkan TFVC dan kami tidak berniat untuk menghapus set fitur ini, kami berencana untuk mengeluarkan TFVC secara bertahap untuk proyek dan organisasi baru, serta untuk proyek yang saat ini tidak menggunakan TFVC.
Sebagai bagian dari transisi ini, kami memperkenalkan pengaturan baru ke "Nonaktifkan pembuatan repositori TFVC," yang hanya akan memengaruhi pembuatan repositori TFVC baru dan tidak akan memengaruhi repositori yang ada.
Azure Pipelines
Mengakses Azure Bus Layanan dari Alur menggunakan autentikasi ID Microsoft Entra
Sekarang Anda dapat menggunakan autentikasi ID Microsoft Entra untuk mengakses Azure Bus Layanan dari Azure Pipelines. Ini memungkinkan Anda memanfaatkan federasi identitas Beban Kerja untuk menghapus manajemen rahasia dan Azure RBAC untuk kontrol akses terperinci.
Identitas yang mengakses Azure Bus Layanan perlu diberikan salah satu peran bawaan Azure untuk Azure Bus Layanan pada Bus Layanan diakses.
tugas PublishToAzureServiceBus@2
Tugas PublishToAzureServiceBus@2 baru dapat dikonfigurasi menggunakan koneksi layanan Azure. Buat koneksi layanan Azure dan isi serviceBusQueueName
properti dan serviceBusNamespace
tugas baru:
- task: PublishToAzureServiceBus@2
inputs:
azureSubscription: my-azure-service-connection
serviceBusQueueName: my-service-bus-queue
serviceBusNamespace: my-service-bus-namespace
useDataContractSerializer: false
messageBody: |
{
"foo": "bar"
}
Tugas server
Tugas server kustom (tanpa agen) yang menggunakan ServiceBus
eksekusi dapat menentukan Koneksi Layanan Azure sebagai EndpointId
dan menghilangkan ConnectionString
. Lihat Penulisan tugas server.
Alur dan tugas mengisi variabel untuk menyesuaikan autentikasi federasi identitas Beban Kerja
Titik akhir REST API untuk meminta token OIDC sekarang tersedia dalam System.OidcRequestUri
variabel alur. Pengembang tugas dapat memanfaatkan variabel ini untuk menghasilkan idToken untuk autentikasi dengan ID Entra.
Jika Anda menggunakan tugas Marketplace atau tugas kustom untuk disebarkan ke Azure, perlu diketahui bahwa tugas-tugas ini mungkin belum mendukung federasi identitas beban kerja. Kami merekomendasikan pengembang tugas untuk mengaktifkan federasi identitas beban kerja untuk meningkatkan langkah-langkah keamanan.
Tugas yang mengambil connectedService:AzureRM
input di task.json dapat diperbarui untuk mendukung federasi identitas beban kerja dengan mengikuti langkah-langkah berikut:
- Gunakan Oidctoken REST API untuk meminta idToken (panah 1 dalam diagram di atas).
- Tukarkan idToken dengan token akses menggunakan alur kredensial federasi OAuth API, menentukan idToken sebagai
client_assertion
(panah 2 & 4 dalam diagram di atas);
atau: - Untuk tugas yang bertindak sebagai pembungkus di sekitar alat yang melakukan autentikasi itu sendiri, gunakan metode autentikasi alat untuk menentukan token federasi.
Tugas simpul dapat menggunakan paket npm azure-pipelines-tasks-artifacts-common untuk mendapatkan idToken. Lihat contoh kode untuk detail implementasi.
Meminta idToken baru
System.OidcRequestUri
Variabel alur dan AZURESUBSCRIPTION_SERVICE_CONNECTION_ID
variabel lingkungan yang diekspos dalam AzureCLI@2
tugas dan AzurePowerShell@5
memungkinkan penulis alur untuk mengautentikasi dari skrip mereka sendiri:
PowerShell Az
- task: AzurePowerShell@5
inputs:
azureSubscription: 'my-azure-subscription'
scriptType: inlineScript
inline: |
# Request fresh idToken
Invoke-RestMethod -Headers @{
Authorization = "Bearer $(System.AccessToken)"
'Content-Type' = 'application/json'
} `
-Uri "${env:SYSTEM_OIDCREQUESTURI}?api-version=7.1&serviceConnectionId=${env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID}" `
-Method Post `
| Select-Object -ExpandProperty oidcToken
| Set-Variable idToken
# Fetch current context
$azContext = Get-AzContext
# Start new Az session
Connect-AzAccount -ApplicationId $azContext.Account.Id `
-TenantId $azContext.Tenant.Id `
-SubscriptionId $azContext.Subscription.Id `
-FederatedToken $idToken
Azure CLI
- task: AzureCLI@2
inputs:
addSpnToEnvironment: true
azureSubscription: 'my-azure-subscription'
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
# Request fresh idToken
OIDC_REQUEST_URL="${SYSTEM_OIDCREQUESTURI}?api-version=7.1&serviceConnectionId=${AZURESUBSCRIPTION_SERVICE_CONNECTION_ID}"
ARM_OIDC_TOKEN=$(curl -s -H "Content-Length: 0" -H "Content-Type: application/json" -H "Authorization: Bearer $(System.AccessToken)" -X POST $OIDC_REQUEST_URL | jq -r '.oidcToken')
# Save subscription context
ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv)
# New az-cli session
az login --service-principal -u $servicePrincipalId --tenant $tenantId --allow-no-subscriptions --federated-token $ARM_OIDC_TOKEN
az account set --subscription $ARM_SUBSCRIPTION_ID
Coba lagi untuk tugas server
Tugas server yang memanggil sistem eksternal, seperti AzureFunction
atau InvokeRESTAPI
, terkadang dapat gagal karena kesalahan sementara seperti kelelahan sumber daya komputasi. Sebelumnya, kegagalan tersebut akan menyebabkan seluruh pekerjaan, dan berpotensi alur, gagal.
Untuk meningkatkan ketahanan terhadap kesalahan sementara, kami telah memperkenalkan dukungan untuk retryCountOnTaskFailure
properti dalam tugas server. Asumsikan Anda memiliki kode YAML berikut di alur Anda:
- stage: deploy
jobs:
- job:
pool: server
steps:
- task: AzureFunction@1
retryCountOnTaskFailure: 2
inputs:
function: 'https://api.fabrikamfiber.com'
key: $(functionKey)
method: 'POST'
waitForCompletion: 'false'
Jika https://api.fabrikamfiber.com
mengalami kesalahan sementara, Azure Pipelines akan mencoba kembali permintaan hingga tiga kali (upaya awal ditambah dua percobaan ulang yang ditentukan oleh retryCountOnTaskFailure
). Setiap percobaan ulang mencakup periode tunggu yang meningkat. Jumlah maksimum percobaan ulang yang diizinkan adalah 10.
retryCountOnTaskFailure
tidak tersedia untuk ManualValidation
tugas dan tugas lain yang tidak melibatkan panggilan sistem eksternal.
Tugas yang menggunakan versi runner Node akhir masa pakai untuk menjalankan peringatan
Tugas alur yang mengandalkan versi Node tidak lagi dipertahankan akan mulai menerima peringatan:
Versi
<version>
tugasTaskName
bergantung pada versi Node (10) yang merupakan akhir masa pakai. Hubungi pemilik ekstensi untuk versi tugas yang diperbarui. Pengelola tugas harus meninjau panduan peningkatan Simpul: https://aka.ms/node-runner-guidance
Untuk menekan peringatan ini, Anda dapat mengatur lingkungan atau variabel alur di tingkat alur (pekerjaan) atau tugas. Contohnya:
variables:
AZP_AGENT_CHECK_IF_TASK_NODE_RUNNER_IS_DEPRECATED: false
DockerCompose@0 menggunakan Docker Compose v2 dalam mode kompatibilitas v1
Docker Compose v1 akan mencapai akhir masa pakainya dan akan dihapus dari Hosted Agents 24 Juli 2024. Kami telah memperbarui tugas DockerCompose@0 untuk menggunakan Docker Compose v2 dalam mode kompatibilitas v1 jika Docker Compose v1 tidak tersedia di agen.
Namun, mode kompatibilitas tidak mengatasi semua masalah kompatibilitas. Lihat Migrasi ke Buat V2. Beberapa pengguna akan membutuhkan lebih banyak waktu untuk memperbarui proyek Docker Compose mereka untuk kompatibilitas Docker Compose v2. Dalam kasus tersebut , ikuti instruksi ini untuk menggunakan tugas DockerComposeV0 dengan docker-compose v1.
CATATAN: Panduan ini didasarkan pada dokumentasi Instal Compose mandiri
Menggunakan docker-compose v1 di Windows
Tambahkan langkah powershell ke alur Anda untuk mengunduh docker-Compose v1.29.2 dan gunakan dengan tugas DockerComposeV0 di Windows:
variables:
dockerComposePath: C:\docker-compose
steps:
- powershell: |
mkdir -f $(dockerComposePath)
# GitHub now requires TLS1.2. In PowerShell, run the following
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Start-BitsTransfer -Source "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-windows-x86_64.exe" -Destination $(dockerComposePath)\docker-compose.exe
displayName: Download docker-compose
- task: DockerCompose@0
inputs:
containerregistrytype: 'Azure Container Registry'
dockerComposeFile: '**/docker-compose.yml'
action: 'Run a Docker Compose command'
dockerComposeCommand: 'run'
dockerComposePath: $(dockerComposePath)\docker-compose.exe
Menggunakan docker-compose v1 di Linux
Tambahkan langkah bash ke alur Anda untuk mengunduh Docker-Compose v1.29.2 dan gunakan dengan tugas DockerComposeV0 di Linux:
variables:
dockerComposePath: /tmp/docker-compose
steps:
- bash: |
sudo mkdir $(dockerComposePath)
sudo curl -SL https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64 -o $(dockerComposePath)/docker-compose
sudo chmod 755 $(dockerComposePath)/docker-compose
displayName: Download docker-compose
- task: DockerCompose@0
inputs:
containerregistrytype: 'Azure Container Registry'
dockerComposeFile: $(Build.SourcesDirectory)/DockerComposeV0/docker-compose.yml
action: 'Run a Docker Compose command'
dockerComposeCommand: 'run'
dockerComposePath: $(dockerComposePath)/docker-compose
Azure Test Plans
Ekstensi Uji dan Umpan Balik di Manifest V3
Kami sangat senang mengumumkan pembaruan baru untuk ekstensi Pengujian dan Umpan Balik Azure DevOps! Peningkatan ini mentransisikan implementasi kami dari Manifes Versi 2 ke Versi 3, selaras dengan jadwal penghentian Google untuk Manifest V2.
Meskipun fitur inti ekstensi tetap tidak berubah, pembaruan ini meningkatkan keamanan dan performa. Ekstensi yang diperbarui akan diluncurkan secara bertahap ke browser Chrome dan Edge selama beberapa minggu mendatang. Kami akan memantau performa dan umpan balik untuk memastikan transisi yang lancar sebelum memperluas peluncuran berdasarkan hasilnya.
Untuk detail selengkapnya, lihat posting blog terbaru kami tentang pembaruan ini. Uji & Ekstensi Umpan Balik di Manifes V3
Langkah berikutnya
Catatan
Fitur-fitur ini akan diluncurkan selama dua hingga tiga minggu ke depan.
Buka Azure DevOps dan lihat.
Cara memberikan umpan balik
Kami akan senang mendengar apa yang Anda pikirkan tentang fitur-fitur ini. Gunakan menu bantuan untuk melaporkan masalah atau memberikan saran.
Anda juga bisa mendapatkan saran dan pertanyaan yang dijawab oleh komunitas di Stack Overflow.
Terima kasih,
Silviu Andrica