Variables - AWS CodePipeline

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Variables

Esta seção é apenas uma referência. Para obter informações sobre como criar variáveis, consulte Trabalhar com variáveis.

As variáveis permitem configurar as ações de pipeline com valores determinados no momento da execução da ação. As variáveis podem ser produzidas por uma execução de ação ou estarem implicitamente disponíveis no início de cada execução de pipeline.

Alguns provedores de ação produzem um conjunto definido de variáveis. Escolha entre chaves de variáveis padrão para esse provedor de ação, como ID de confirmação.

Para ver exemplos passo a passo do uso de variáveis:

Limites de variáveis

Para obter informações sobre limites, consulte Cotas noAWSCodePipeline.

nota

Ao inserir a sintaxe da variável de entrada nos campos de configuração da ação, não ultrapasse o limite de 1000 caracteres dos campos de configuração. Um erro de validação será retornado quando esse limite for excedido.

Concepts

Esta seção lista os principais termos e conceitos relacionados a variáveis e namespaces.

Variáveis

As variáveis são pares chave-valor que podem ser usados para configurar dinamicamente ações em seu pipeline. Existem atualmente duas maneiras de disponibilizar essas variáveis:

  • Há um conjunto de variáveis que estão implicitamente disponíveis no início de cada execução do pipeline. Atualmente, esse conjunto inclui PipelineExecutionId, o ID da execução atual do pipeline.

  • Existem tipos de ação que produzem conjuntos de variáveis quando são executados. Você pode ver as variáveis produzidas por uma ação inspecionando o campo outputVariables que faz parte da API ListActionExecutions. Para ver quais variáveis cada tipo de ação produz, consulte o CodePipelineReferência da estrutura da ação.

Para fazer referência a essas variáveis na configuração da ação, você deve usar a sintaxe de referência de variável com o namespace correto.

Para obter uma lista de nomes de chaves disponíveis por provedor de ação, consulte Variáveis disponíveis para ações de pipeline. Para obter um fluxo de trabalho variável de exemplo, consulte Configurar variáveis .

Namespaces

Para garantir que as variáveis possam ser referenciadas exclusivamente, elas devem ser atribuídas a um namespace. Depois de um conjunto de variáveis serem atribuídas a um namespace, elas podem ser referenciadas em uma configuração de ação usando o namespace e a chave de variável com a seguinte sintaxe:

#{namespace.variable_key}

Existem dois tipos de namespaces sob os quais as variáveis podem ser atribuídas:

  • O namespace reservado do codepipeline

    Esse é o namespace atribuído ao conjunto de variáveis implícitas disponíveis no início de cada execução do pipeline. Esse namespace é o codepipeline. Exemplo de referência de variável:

    #{codepipeline.PipelineExecutionId}
  • Namespace atribuído à ação

    Esse é um namespace que você atribui a uma ação. Todas as variáveis produzidas pela ação se enquadram nesse namespace. Para tornar as variáveis produzidas por uma ação disponíveis para uso em uma configuração de ação downstream, você deve configurar a ação de produção com um namespace. Os namespaces devem ser exclusivos na definição do pipeline e não podem entrar em conflito com nenhum nome de artefato. Veja uma referência variável de exemplo para uma ação configurada com um namespace de SourceVariables.

    #{SourceVariables.VersionId}

Configurar variáveis

Configure uma ação para produzir variáveis declarando um namespace para a ação. A ação já deve ser um dos provedores da ação que gera variáveis. Caso contrário, as variáveis disponíveis serão variáveis em nível de pipeline.

Declare o namespace:

  • Na página Edit action (Editar ação) do console, digitando um namespace em Variable namespace (Namespace de variáveis).

  • Inserindo um namespace no campo do parâmetro namespace na estrutura do pipeline JSON.

Neste exemplo, você adiciona o parâmetro namespace à ação de origem CodeCommit com o nome SourceVariables. Isso configura a ação para produzir as variáveis disponíveis para esse provedor de ação, como CommitId.

{ "name": "Source", "actions": [ { "outputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Source", "namespace": "SourceVariables", "configuration": { "RepositoryName": "MyRepo", "BranchName": "mainline", "PollForSourceChanges": "false" }, "inputArtifacts": [], "region": "us-west-2", "actionTypeId": { "provider": "CodeCommit", "category": "Source", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Depois, configure a ação downstream para usar as variáveis produzidas pela ação anterior. Faça isso:

  • Na página Edit action (Editar ação) do console, inserindo a sintaxe de variável (para a ação downstream) nos campos de configuração da ação.

  • Entrando a sintaxe de variável (da ação downstream) nos campos de configuração da ação na estrutura do pipeline JSON

Neste exemplo, o campo de configuração da ação de compilação mostra variáveis de ambiente que são atualizadas na execução da ação. O exemplo especifica o namespace e a variável para o ID de execução com #{codepipeline.PipelineExecutionId} e o namespace e a variável do ID de confirmação com #{SourceVariables.CommitId}.

{ "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Release_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },

Resolução de variáveis

Cada vez que uma ação é executada como parte de uma execução do pipeline, as variáveis que ela produz estão disponíveis para uso em qualquer ação que, garantidamente, ocorrerá após a ação de produção. Para usar essas variáveis em uma ação de consumo, você pode adicioná-las à configuração da ação de consumo usando a sintaxe mostrada no exemplo anterior. Antes de executar uma ação de consumo, o CodePipeline resolve todas as referências de variáveis presentes na configuração antes de iniciar a execução da ação.


        Exemplo: variáveis para várias ações

Regras para variáveis

As regras a seguir ajudam você na configuração de variáveis:

  • Especifique o namespace e a variável para uma ação por meio de uma nova propriedade de ação ou editando uma ação.

  • Quando você usa o assistente de criação de pipeline, o console gera um namespace para cada ação criada com o assistente.

  • Se o namespace não for especificado, as variáveis produzidas por essa ação não poderão ser referenciadas em nenhuma configuração de ação.

  • Para referenciar variáveis produzidas por uma ação, a ação de referência deve ocorrer após a ação que produz as variáveis. Isso significa que ela está em um estágio posterior à ação que produz as variáveis, ou no mesmo estágio, mas em uma ordem de execução posterior.

Variáveis disponíveis para ações de pipeline

O provedor de ação determina quais variáveis podem ser geradas pela ação.

Para obter os procedimentos passo a passo para gerenciamento de variáveis, consulte Trabalhar com variáveis.

Ações com chaves de variáveis definidas

Ao contrário de um namespace que você pode escolher, as ações a seguir usam chaves de variáveis que não podem ser editadas. Por exemplo, para o provedor de ação do Amazon S3, somente oETageVersionIdestão disponíveis.

Cada execução também tem um conjunto de variáveis de pipeline geradas pelo CodePipeline que contêm dados sobre a execução, como o ID da versão do pipeline. Essas variáveis podem ser consumidas por qualquer ação no pipeline.

Variável de saída do ID de execução do Co

Variável de ID de execução do Co
Provedor Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
codepipeline PipelineExecutionId 8abc75f0-fbf8-4f4c-bfEXAMPLE #{codepipeline.PipelineExecutionId}

Variáveis de saída de ação do Amazon ECR

variáveis do Amazon ECR
Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
ImageDigest sha256:EXAMPLE1122334455 #{SourceVariables.ImageDigest}
ImageTag latest #{SourceVariables.ImageTag}
ImageURI 11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest #{SourceVariables.ImageURI}
RegistryId EXAMPLE12233 #{SourceVariables.RegistryId}
RepositoryName my-image-repo #{SourceVariables.RepositoryName}

AWS CloudFormationvariáveis de saída da ação StackSets

AWS CloudFormationvariáveis do StackSets
Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
OperationId 11111111-2bbb-111-2bbb-11111exemplo #{DeployVariables.OperationId}
StackSetId my-stackset: 1111aaaa-1111-2222-2bbb-11111example #{DeployVariables.StackSetId}

variáveis de saída do CodeCommit

variáveis CodeCommit
Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName desenvolvimento #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Corrigido um erro (tamanho máximo de 100 KB) #{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
RepositoryName myCodeCommitRepo #{SourceVariables.RepositoryName}

variáveis de saída da ação CodeStorceConnection

CodeStarSourceConnectionvariáveis (Bitbucket, GitHub e GitHub Enterprise Repository)
Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName desenvolvimento #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage Corrigido um erro (tamanho máximo de 100 KB) #{SourceVariables.CommitMessage}
ConnectionArn arn:aws:codestar-connections:region:account-id:connection/id de conexão #{SourceVariables.ConnectionArn}
FullRepositoryName Nome de usuário/GitHubrePO #{SourceVariables.FullRepositoryName}

Variáveis de saída de ação do GitHub (ação do GitHub versão 1)

Variáveis do GitHub (ação do GitHub versão 1)
Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName Principal #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage

Corrigido um erro (tamanho máximo de 100 KB)

#{SourceVariables.CommitMessage}
CommitterDate 2019-10-29T03:32:21Z #{SourceVariables.CommitterDate}
CommitUrl #{SourceVariables.CommitUrl}
RepositoryName myGitHubRepo #{SourceVariables.RepositoryName}

variáveis de saída de ação do S3

variáveis do S3
Chave de variável Valor de exemplo Exemplo de sintaxe de variáveis
ETag example28be1c3 #{SourceVariables.ETag}
VersionId exampleta_IUQCv #{SourceVariables.VersionId}

Ações com chaves variáveis configuradas pelo usuário

Para CodeBuild,AWS CloudFormationAs ações do e do Lambda, as chaves de variáveis são configuradas pelo usuário.

variáveis de saída do CloudFormation

Variáveis da AWS CloudFormation
Chave de variável Exemplo de sintaxe de variáveis

Para ações do AWS CloudFormation, as variáveis são produzidas com quaisquer valores designados na seção Outputs de um modelo de pilha. Observe que os únicos modos de ação do CloudFormation que geram saídas são aqueles que resultam na criação ou na atualização de uma pilha, como criação e atualizações de pilha, bem como execução de conjunto de alterações. Os modos de ação correspondentes que geram variáveis são:

  • CREATE_UPDATE

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • REPLACE_ON_FAILURE

Para obter mais informações sobre esses modos de ação, consulteAWS CloudFormation. Para um tutorial que mostra como criar um pipeline com umAWS CloudFormationAção de implantação em um pipeline que usaAWS CloudFormationvariáveis de saída, consulteTutorial: Criar um pipeline que use variáveis doAWS CloudFormationações de implantação.
#{DeployVariables.StackName}

CodeBuild variáveis de saída

variáveis CodeBuild
Chave de variável Exemplo de sintaxe de variáveis

Para ações CodeBuild, as variáveis são produzidas a partir de valores gerados por variáveis de ambiente exportadas Configure uma variável de ambiente CodeBuild editando sua ação CodeBuild no CodePipeline ou adicionando a variável de ambiente à especificação de compilação.

Adicione instruções à especificação de compilação do CodeBuild para adicionar a variável de ambiente na seção de variáveis exportadas. Consulteenv/exported-variablesnoAWS CodeBuildGuia do usuário do.

#{BuildVariables.EnvVar}

variáveis de saída do Lambda ação

Variáveis Lambda
Chave de variável Exemplo de sintaxe de variáveis
A ação do Lambda produzirá como variáveis todos os pares de chave-valor incluídos nooutputVariablesSeção do doAPI PutJobSuccessResultsolicitação.

Para um tutorial com uma ação do Lambda que usa variáveis de uma ação upstream (CodeCommit) e gera variáveis de saída, consulteTutorial: Usar variáveis com ações de invocação do Lambda.

#{TestVariables.testRunId}