Megosztás:


A TFVC-adattárak létrehozásának letiltása

Ezzel a frissítéssel egy új beállítást vezetünk be a TFVC-adattárak létrehozásának letiltásához. Ez a változás az új projektekre összpontosít, és biztosítja, hogy a meglévő TFVC-adattárak ne legyenek hatással.

Emellett örömmel jelentjük be, hogy az Azure Pipelinesban egy új REST API-végpont érhető el OIDC-jogkivonatok igényléséhez! Ez lehetővé teszi, hogy a feladatfejlesztők idTokeneket generáljanak az Entra ID-hitelesítéshez, ezáltal növelve a biztonságot és a könnyű használatot.

Végül az Azure Boardsban a terület- és iterációs útvonalak mostantól csak akkor törölhetők, ha már nincsenek munkahelyi elemekhez társítva. Ez a fejlesztés megakadályozza a fennakadásokat, és biztosítja, hogy a csapatok továbbra is hozzáférjenek a táblákhoz és a hátralékokhoz.

Részletekért tekintse meg a kibocsátási megjegyzéseket.

Azure DevOps-hoz készült GitHub Advanced Security

Azure Boards:

Azure Repos

Azure Pipelines

Azure-tesztcsomagok:

Azure DevOps-hoz készült GitHub Advanced Security

A biztonsági áttekintési API dokumentációja már elérhető

Az Advanced Security áttekintési kockázati lapját meghatalmazó API dokumentációja már elérhető. A végpont /{organization}/_apis/reporting/summary/alerts használatával megtekintheti a riasztások kritikusságának összegzését az összes speciális biztonságra képes adattárban. Győződjön meg arról, hogy az ADO PAT rendelkezik az vso.advsec engedéllyel, amely lehetővé teszi a riasztások, az eredménypéldányok és az elemzési eredménypéldányok olvasását.

Azure Boards

Terület- és iterációs útvonalak törlése

Egy terület vagy iterációs útvonal törlése zavaró lehet. Áthelyezheti a munkaelemeket egy új útvonalra, és a csapatok elveszíthetik a hozzáférésüket a táblákhoz és a hátralékokhoz. A figyelmeztetések és a kérések ellenére az útvonalak néha törlésre kerülnek anélkül, hogy teljes mértékben tisztában vannak a következményekkel. A probléma megoldásához módosítottuk a viselkedést: A terület- és iterációs útvonalak mostantól csak akkor törölhetők, ha már nem használják őket munkaelemek.

Képernyőkép a törlési területről.

Azure Repos

Új beállítás a TFVC-adattárak létrehozásának letiltásához

Az elmúlt években nem kerültek bele új funkciók a Team Foundation-verziókövetésbe (TFVC), mert a Git lett az előnyben részesített verziókövetési rendszer az Azure-adattárakban. A biztonság, a teljesítmény és az akadálymentesség terén a közelmúltban fejlesztések kizárólag a Git-adattárakban történtek, ami a TFVC-használat folyamatos csökkenéséhez vezetett. Bár néhányan továbbra is a TFVC-re támaszkodnak, és nem kívánjuk eltávolítani ezt a funkciókészletet, azt tervezzük, hogy fokozatosan kivezetjük a TFVC-t az új projektek és szervezetek esetében, valamint az olyan projektek esetében, amelyek jelenleg nem használják a TFVC-t.

Ezen átmenet részeként bevezetünk egy új beállítást a „TFVC-adattárak létrehozásának letiltása” tekintetében, amely csak az új TFVC-adattárak létrehozását érinti, a meglévőket azonban nem.

Gif a bemutatóhoz Tiltsa le a TFVC-adattárak létrehozását.

Azure Pipelines

Azure Service Bus elérése folyamatokból Microsoft Entra ID-hitelesítéssel

Mostantól a Microsoft Entra ID-hitelesítéssel hozzáférhet az Azure Service Bushoz az Azure Pipelinesból. Ez lehetővé teszi a számítási feladatok identitás-összevonásának előnyeit a titkos kódok kezelésének és az Azure RBAC-nek a részletes hozzáférés-vezérlés érdekében történő eltávolításához.

Az Azure Service Bushoz hozzáférő identitásoknak meg kell adni az Azure Service Bus beépített szerepköreinek egyikét a elért Service Buson .

PublishToAzureServiceBus@2 tevékenység

Az új PublishToAzureServiceBus@2 feladatok azure-szolgáltatáskapcsolattal konfigurálhatók. Hozzon létre egy Azure-szolgáltatáskapcsolatot, és töltse ki az serviceBusQueueName új feladat tulajdonságait és serviceBusNamespace tulajdonságait:

- task: PublishToAzureServiceBus@2
  inputs:
    azureSubscription: my-azure-service-connection
    serviceBusQueueName: my-service-bus-queue
    serviceBusNamespace: my-service-bus-namespace
    useDataContractSerializer: false
    messageBody: |
      {
        "foo": "bar"
      }
Kiszolgálói feladatok

A végrehajtást használó ServiceBus egyéni kiszolgálói (ügynök nélküli) feladatok megadhatnak egy Azure-szolgáltatáskapcsolatot, és EndpointId kihagyhatják ConnectionStringazt. Lásd: Kiszolgálói feladat létrehozása.

A folyamatok és tevékenységek változókat töltenek fel a számítási feladatok identitás-összevonási hitelesítésének testreszabásához

Az OIDC-jogkivonatok igénylésére szolgáló REST API-végpont már elérhető a System.OidcRequestUri folyamatváltozóban. A feladatfejlesztők ezt a változót felhasználhatják egy idToken létrehozására az Entra-azonosítóval való hitelesítéshez.

Ha Marketplace-feladatokat vagy egyéni feladatokat használ az Azure-ban való üzembe helyezéshez, vegye figyelembe, hogy ezek a tevékenységek még nem támogatják a számítási feladatok identitásának összevonását. Azt javasoljuk a feladatfejlesztőknek, hogy engedélyezhessék a számítási feladatok identitásának összevonását a biztonsági intézkedések javítása érdekében.

Képernyőkép az oidc együttműködésről.

A task.json bemenetet connectedService:AzureRMhasználó tevékenységek az alábbi lépések végrehajtásával frissíthetők a számítási feladatok identitás-összevonásának támogatásához:

  • Használja az Oidctoken REST API-t egy idToken kéréséhez (1. nyíl a fenti diagramon).
  • Cserélje le az idTokent egy hozzáférési jogkivonatra az OAuth API összevont hitelesítőadat-folyamatával
    vagy:
  • Az olyan feladatok esetében, amelyek burkolóként működnek egy olyan eszköz körül, amely maga hajtja végre a hitelesítést, az eszközök hitelesítési módszerével adja meg az összevont jogkivonatot.

A csomóponti feladatok az azure-pipelines-tasks-artifacts-common npm csomagot használhatják az idToken beszerzéséhez. A megvalósítás részleteiért tekintse meg a kód példáját .

Új idToken kérése

A System.OidcRequestUri folyamatváltozó és AZURESUBSCRIPTION_SERVICE_CONNECTION_ID a környezeti változó, amely a tevékenységekben érhető el, lehetővé teszi a AzureCLI@2AzurePowerShell@5 folyamatkészítők számára, hogy saját szkriptjükből hitelesítsék magukat:

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

Kiszolgálói feladatok újrapróbálkozása

A külső rendszereket ( például AzureFunction vagy InvokeRESTAPI) meghívó kiszolgálói feladatok időnként meghiúsulhatnak átmeneti hibák, például a számítási erőforrások kimerülése miatt. Korábban az ilyen hibák miatt a teljes feladat, és potenciálisan a folyamat is meghiúsult.

Az átmeneti hibák elleni rugalmasság javítása érdekében bevezettük a tulajdonság támogatását a retryCountOnTaskFailure kiszolgálói feladatokban. Tegyük fel, hogy a folyamat a következő YAML-kóddal rendelkezik:

- stage: deploy
  jobs:
  - job:
    pool: server
    steps:
    - task: AzureFunction@1
      retryCountOnTaskFailure: 2
      inputs:
        function: 'https://api.fabrikamfiber.com'
        key: $(functionKey)
        method: 'POST'
        waitForCompletion: 'false'

Ha https://api.fabrikamfiber.com átmeneti hibát tapasztal, az Azure Pipelines legfeljebb háromszor próbálkozik újra a kéréssel (a kezdeti kísérlet és a megadott retryCountOnTaskFailurekét újrapróbálkozással). Minden újrapróbálkozik egy növekvő várakozási időszak. Az újrapróbálkozések maximális száma 10.

Ez retryCountOnTaskFailure nem érhető el a ManualValidation tevékenységhez és más olyan feladatokhoz, amelyekhez nem tartoznak külső rendszerhívások.

Olyan feladatok, amelyek az életciklus végén futó csomópont verzióját használják figyelmeztetések végrehajtásához

A csomópontverzióra támaszkodó folyamatműveletek már nem lesznek karbantartva , figyelmeztetések fognak érkezni:

A feladat TaskName verziója <version> egy életciklus végén lévő csomópontverziótól (10) függ. A feladat frissített verziójáért forduljon a bővítmény tulajdonosához. A feladatfenntartóknak át kell tekintenie a csomópontok frissítési útmutatóját: https://aka.ms/node-runner-guidance

A figyelmeztetések mellőzéséhez beállíthat egy környezeti vagy folyamatváltozót a folyamat (feladat) vagy a tevékenység szintjén. Példa:

variables:
  AZP_AGENT_CHECK_IF_TASK_NODE_RUNNER_IS_DEPRECATED: false

DockerCompose@0 a Docker Compose v2-t használja 1-s verziós kompatibilitási módban

A Docker Compose 1-hez készült v1-et el fogja érni, és 2024. július 24-én el lesz távolítva az üzemeltetett ügynökök közül. Frissítettük a DockerCompose@0 feladatot, hogy a Docker Compose v2-t 1-s kompatibilitási módban használjuk, ha a Docker Compose v1 nem érhető el az ügynökön.

A kompatibilitási mód azonban nem kezeli az összes kompatibilitási problémát. Lásd: Költöztetés a Compose V2-be. Néhány felhasználónak több időre lesz szüksége a Docker Compose projektjei Docker Compose v2-vel kompatibilisre való frissítéséhez. Ezekben az esetekben kövesse ezeket az utasításokat a DockerComposeV0 feladat docker-compose v1-hez való használatához.

MEGJEGYZÉS: Ez az útmutató a Compose önálló telepítésének dokumentációján alapul

Docker-compose v1 használata Windows alatt

Adja hozzá a PowerShell-lépést a folyamathoz a docker-Compose v1.29.2 letöltéséhez és a DockerComposeV0 feladattal való használatához Windows rendszeren:

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

Docker-compose v1 használata Linux alatt

Adja hozzá a bash lépést a folyamathoz a Docker-Compose 1.29.2-s verzió letöltéséhez, és használja a DockerComposeV0 feladattal Linuxon:

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

Tesztelési és visszajelzési bővítmény a Manifest V3-ban

Örömmel jelentjük be az Azure DevOps Teszt és Visszajelzés bővítmény új frissítését! Ez a frissítés a 2. jegyzékverzióról a 3. verzióra vált, a Google elavulási ütemtervének megfelelően a Manifest V2-re.

Bár a bővítmény alapvető funkciói változatlanok maradnak, ez a frissítés javítja a biztonságot és a teljesítményt. A frissített bővítmény fokozatosan jelenik meg a Chrome és az Edge böngészőkben is az elkövetkező hetekben. Figyeljük a teljesítményt és a visszajelzéseket, hogy zökkenőmentes átmenetet biztosítsunk, mielőtt az eredmények alapján bővítjük a bevezetést.

További részletekért tekintse meg a frissítésről szóló legutóbbi blogbejegyzésünket. Teszt & visszajelzési bővítmény a Manifest V3-ban

Következő lépések

Feljegyzés

Ezek a funkciók a következő két-három hétben jelennek meg.

Lépjen az Azure DevOpsba, és nézze meg.

Visszajelzés küldése

Szeretnénk hallani, mit gondol ezekről a funkciókról. A súgómenüvel jelentheti a problémát, vagy javaslatot adhat.

Javaslat készítése

Tanácsokat és kérdéseket is kaphat a közösség által a Stack Overflow-on.

Köszönettel:

Silviu Andrica