Compartilhar via


Segurança de pipelines aprimorada com variáveis somente leitura

Com essa atualização, estamos melhorando a segurança de pipelines com variáveis somente leitura. Além disso, agora você pode definir variáveis de saída em suas tarefas dentro de qualquer gancho de ciclo de vida de um trabalho de implantação e consumi-lo em etapas e trabalhos downstream dentro do mesmo estágio.

Confira a lista Recursos abaixo para obter detalhes.

Recursos

Geral:

Azure Pipelines:

Observação

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

Geral

Restringir a criação da organização por meio de Azure AD política de locatário

Os administradores do Azure DevOps agora podem aproveitar uma nova política de Azure AD. Essa política permitirá que você restrinja a criação de novas organizações do Azure DevOps conectadas ao Azure Active Directory da sua empresa. Para saber mais sobre a política, consulte a documentação aqui.

Azure Pipelines

Variáveis somente leitura

As variáveis do sistema foram documentadas como imutáveis, mas, na prática, elas poderiam ser substituídas por uma tarefa e as tarefas downstream captariam o novo valor. Com essa atualização, reforçamos a segurança em torno de variáveis de pipeline para tornar as variáveis de tempo de fila e sistema somente leitura. Além disso, você pode criar uma variável YAML somente leitura marcando-a da seguinte maneira.

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

Suporte para variáveis de saída em um trabalho de implantação

Agora você pode definir variáveis de saída nos ganchos de ciclo de vida de um trabalho de implantação e consumi-las em outras etapas downstream e trabalhos dentro do mesmo estágio.

Ao executar estratégias de implantação, você pode acessar variáveis de saída entre trabalhos usando a sintaxe a seguir.

  • Para a estratégia runOnce : $[dependencies.<job-name>.outputs['<lifecycle-hookname>.<step-name>.<variable-name>']]
  • Para estratégia canary: $[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ários trabalhos

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

Em pipelines de lançamento clássicos, é comum confiar em implantações agendadas para atualizações regulares. Mas, quando você tiver uma correção crítica, poderá optar por iniciar uma implantação manual fora de banda. Ao fazer isso, as versões mais antigas continuam agendadas. Isso representava um desafio, pois a implantação manual seria revertida quando as implantações fossem retomadas de acordo com o agendamento. Muitos de vocês relataram esse problema e agora o corrigimos. Com a correção, todas as implantações agendadas mais antigas no ambiente seriam canceladas quando você iniciasse manualmente uma implantação. Isso só é aplicável quando a opção de fila é selecionada como "Implantar mais recente e cancelar outras pessoas".

Removendo imagens mais antigas em pools hospedados no Azure Pipelines

Em 23 de março de 2020, removeremos as imagens a seguir de nossos pools hospedados no Azure Pipelines.

  • 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 essas imagens, continuaremos a distribuir versões de imagem mais recentes com mais eficiência.

Para saber mais sobre a remoção dessas imagens, marcar a remoção de imagens mais antigas na postagem de blog de pools hospedados do Azure Pipelines.

Próximas etapas

Observação

Esses recursos serão lançados nas próximas duas a três semanas.

Vá até o Azure DevOps e dê uma olhada.

Como fornecer comentários

Adoraríamos ouvir o que você pensa sobre esses recursos. Use o menu de ajuda para relatar um problema ou fornecer uma sugestão.

Fazer uma sugestão

Você também pode receber conselhos e suas perguntas respondidas pela comunidade no Stack Overflow.

Obrigada,

Vijay Machiraju