Dela via


Förbättrad säkerhet för pipelines med skrivskyddade variabler

Med den här uppdateringen förbättrar vi säkerheten för pipelines med skrivskyddade variabler. Dessutom kan du nu definiera utdatavariabler i dina aktiviteter inom valfri livscykelhook för ett distributionsjobb och använda det i underordnade steg och jobb inom samma steg.

Mer information finns i listan Funktioner nedan.

Funktioner

Allmänt:

Azure Pipelines:

Anteckning

Installation av .NET 4.6.2 eller senare krävs för att VSTest-uppgiften ska fungera korrekt på byggagenter.

Allmänt

Begränsa organisationsskapande via Azure AD klientprincip

Azure DevOps-administratörer kan nu använda en ny Azure AD princip. Med den här principen kan du begränsa skapandet av nya Azure DevOps-organisationer som är anslutna till företagets Azure Active Directory. Mer information om principen finns i dokumentationen här.

Azure-pipelines

Skrivskyddade variabler

Systemvariabler dokumenterades som oföränderliga, men i praktiken kunde de skrivas över av en uppgift och underordnade aktiviteter skulle hämta det nya värdet. Med den här uppdateringen skärper vi säkerheten kring pipelinevariabler för att göra system- och kötidsvariabler skrivskyddade. Dessutom kan du göra en YAML-variabel skrivskyddad genom att markera den på följande sätt.

variables:
- name: myVar
  value: myValue
  readonly: true

Stöd för utdatavariabler i ett distributionsjobb

Nu kan du definiera utdatavariabler i ett distributionsjobbs livscykelkrokar och använda dem i andra underordnade steg och jobb inom samma steg.

När du kör distributionsstrategier kan du komma åt utdatavariabler mellan jobb med hjälp av följande syntax.

  • För runOnce-strategi : $[dependencies.<job-name>.outputs['<lifecycle-hookname>.<step-name>.<variable-name>']]
  • För kanariestrategi : $[dependencies.<job-name>.outputs['<lifecycle-hookname>_<increment-value>.<step-name>.<variable-name>']]
  • För löpande strategi: $[dependencies.<job-name>.outputs['<lifecycle-hookname>_<resource-name>.<step-name>.<variable-name>']]
// Set an output variable in a lifecycle hook of a deployment job executing canary strategy
- deployment: A
  pool:
    vmImage: 'ubuntu-latest'
  environment: staging
  strategy:                  
    canary:      
      increments: [10,20]  # creates multiple jobs, one for each increment. Output variable can be referenced with this.
      deploy:
        steps:
        - script: echo "##vso[task.setvariable variable=myOutputVar;isOutput=true]this is the deployment variable value"
          name: setvarStep
        - script: echo $(setvarStep.myOutputVar)
          name: echovar

 // Map the variable from the job
- job: B
  dependsOn: A
  pool:
    vmImage: 'ubuntu-latest'
  variables:
    myVarFromDeploymentJob: $[ dependencies.A.outputs['deploy_10.setvarStep.myOutputVar'] ]
  steps:
  - script: "echo $(myVarFromDeploymentJob)"
    name: echovar

Läs mer om hur du ställer in en utdatavariabel för flera jobb

Undvik återställning av kritiska ändringar

I klassiska versionspipelines är det vanligt att förlita sig på schemalagda distributioner för regelbundna uppdateringar. Men när du har en kritisk korrigering kan du välja att starta en manuell distribution out-of-band. När du gör det fortsätter äldre versioner att vara schemalagda. Detta innebar en utmaning eftersom den manuella distributionen skulle återställas när distributionerna återupptogs enligt schema. Många av er rapporterade det här problemet och vi har nu åtgärdat det. Med korrigeringen avbryts alla äldre schemalagda distributioner till miljön när du startar en distribution manuellt. Detta gäller endast när köalternativet har valts som "Distribuera senaste och avbryt andra".

Ta bort äldre avbildningar i Azure Pipelines-värdbaserade pooler

Den 23 mars 2020 tar vi bort följande avbildningar från våra Azure Pipelines-värdbaserade pooler.

  • Windows Server 2012 R2 med Visual Studio 2015 (vs2015-win2012r2)
  • Mac OS High Sierra 10.13 (macOS-10.13)
  • Windows Server Core 1803 (win1803)

Genom att ta bort dessa avbildningar fortsätter vi att distribuera nyare avbildningsversioner mer effektivt.

Mer information om hur du tar bort avbildningarna finns i blogginlägget ta bort äldre avbildningar i Azure Pipelines-värdbaserade pooler .

Nästa steg

Anteckning

De här funktionerna kommer att lanseras under de kommande två till tre veckorna.

Gå till Azure DevOps och ta en titt.

Så här ger du feedback

Vi vill gärna höra vad du tycker om dessa funktioner. Använd hjälpmenyn för att rapportera ett problem eller ge ett förslag.

Ge ett förslag

Du kan också få råd och dina frågor som besvaras av communityn på Stack Overflow.

Tack,

Vijay Machiraju