Partilhar via


Segurança de pipelines melhorada com variáveis só de leitura

Com esta atualização, estamos a melhorar a segurança dos pipelines com variáveis só de leitura. Além disso, agora pode definir variáveis de saída nas suas tarefas dentro de qualquer hook de ciclo de vida de uma tarefa de implementação e consumi-la em passos e tarefas a jusante na mesma fase.

Consulte a lista funcionalidades abaixo para obter detalhes.

Funcionalidades

Geral:

Azure Pipelines:

Nota

A instalação do .NET 4.6.2 ou superior é necessária para que a tarefa VSTest funcione corretamente nos agentes de compilação.

Geral

Restringir a criação da organização através da política de inquilino Azure AD

Os administradores do Azure DevOps podem agora tirar partido de uma nova política de Azure AD. Esta política permite-lhe restringir a criação de novas organizações do Azure DevOps ligadas ao Azure Active Directory da sua empresa. Para saber mais sobre a política, veja a documentação aqui.

Pipelines do Azure

Variáveis só de leitura

As variáveis de sistema foram documentadas como imutáveis, mas na prática poderiam ser substituídas por uma tarefa e as tarefas a jusante iriam recolher o novo valor. Com esta atualização, reforçamos a segurança em torno das variáveis de pipeline para tornar as variáveis de sistema e tempo de fila só de leitura. Além disso, pode tornar uma variável YAML só de leitura ao marcá-la da seguinte forma.

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

Suporte para variáveis de saída numa tarefa de implementação

Agora, pode definir variáveis de saída nos hooks de ciclo de vida de uma tarefa de implementação e consumi-las noutros passos e tarefas a jusante na mesma fase.

Ao executar estratégias de implementação, pode aceder a variáveis de saída em tarefas com a seguinte sintaxe.

  • Para a estratégia runOnce : $[dependencies.<job-name>.outputs['<lifecycle-hookname>.<step-name>.<variable-name>']]
  • Para a estratégia de canários : $[dependencies.<job-name>.outputs['<lifecycle-hookname>_<increment-value>.<step-name>.<variable-name>']]
  • Para a estratégia sem interrupção : $[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

Saiba mais sobre como definir uma variável de saída de várias tarefas

Evitar a reversão de alterações críticas

Nos pipelines de versão clássicos, é comum depender de implementações agendadas para atualizações regulares. Mas, quando tem uma correção crítica, pode optar por iniciar uma implementação manual fora de banda. Ao fazê-lo, as versões mais antigas continuam a manter-se agendadas. Isto colocava um desafio, uma vez que a implementação manual seria revertida quando as implementações fossem retomadas de acordo com o agendamento. Muitos de tiverem comunicado este problema e já o corrigimos. Com a correção, todas as implementações agendadas mais antigas para o ambiente serão canceladas quando iniciar manualmente uma implementação. Isto só é aplicável quando a opção de colocação em fila está selecionada como "Implementar mais recente e cancelar outras pessoas".

Remover imagens mais antigas em conjuntos alojados nos Pipelines do Azure

No dia 23 de março de 2020, iremos remover as seguintes imagens dos nossos conjuntos alojados nos Pipelines do Azure.

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

Ao remover estas imagens, continuaremos a implementar versões de imagens mais recentes de forma mais eficiente.

Para saber mais sobre a remoção destas imagens, veja a mensagem de blogue remover imagens mais antigas nos conjuntos alojados nos Pipelines do Azure .

Passos seguintes

Nota

Estas funcionalidades serão implementadas nas próximas duas a três semanas.

Aceda ao Azure DevOps e dê uma vista de olhos.

Como fornecer comentários

Gostaríamos de saber o que pensa sobre estas funcionalidades. Utilize o menu de ajuda para comunicar um problema ou fornecer uma sugestão.

Fazer uma sugestão

Também pode obter conselhos e as suas perguntas respondidas pela comunidade no Stack Overflow.

Obrigado,

Vijay Machiraju