Variáveis - 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á.

Variáveis

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.

Conceitos

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: As 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 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, apenas oETageVersionIdchaves variáveis estã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 da ID de execução CodePipeline

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

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

As 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 CloudFormationStackSets variáveis de saída

AWS CloudFormationStackSets variáveis
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}

As variáveis de saída da ação CodeCommit

As variáveis do 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}

As variáveis de saída da ação CodeStarSourceConnection

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-conexões:region:account-id:conexão/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}

As variáveis de saída do S3

As 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 o CodeBuild,AWS CloudFormationAs chaves de variáveis do e do Lambda são configuradas pelo usuário.

Ação do CloudFormation variáveis de saída

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 obter um tutorial que mostra como criar um pipeline com umAWS CloudFormationAção de implantação em um pipeline que usaAWS CloudFormationComo usar variáveis de saída, consulteTutorial: Criar um pipeline que usa variáveis doAWS CloudFormationações de implantação.
#{DeployVariables.StackName}

Ações do CodeBuild

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

Para ações do 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 variáveis exportadas. Consulteenv/exported-variablesnoAWS CodeBuildGuia do usuário do.

#{BuildVariables.EnvVar}

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

Variáveis do 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 doPutJobSuccessResultsolicitaçã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}