Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usar funções de substituição de parâmetros com pipelines CodePipeline

Modo de foco
Usar funções de substituição de parâmetros com pipelines CodePipeline - AWS CloudFormation

Em um estágio do CodePipeline, você pode especificar substituições de parâmetros para ações do AWS CloudFormation. As substituições de parâmetros permitem que você especifique valores de parâmetro do modelo que substituem os valores em um arquivo de configuração do modelo. O AWS CloudFormation fornece funções para ajudá-lo a especificar valores dinâmicos (valores que são desconhecidos até o pipeline ser executado).

Fn::GetArtifactAtt

A função Fn::GetArtifactAtt recupera o valor de um atributo de um artefato de entrada, como o nome do bucket S3 no qual o artefato está armazenado. Use esta função para especificar atributos de um artefato, como o nome de arquivo ou nome do bucket do Amazon S3.

Quando você executa um pipeline, o CodePipeline copia e grava arquivos no armazenamento de artefatos do pipeline (um bucket do S3). O CodePipeline gera os nomes de arquivos no armazenamento de artefatos. Esses nomes de arquivos são desconhecidas antes de o pipeline ser executado.

Por exemplo, no seu pipeline, é possível ter um estágio de origem no qual o copia o código-fonte da função do AWS Lambda no armazenamento de artefatos. No próximo estágio, há um modelo do AWS CloudFormation que cria a função do Lambda, mas o AWS CloudFormation requer o nome de arquivo para criar a função. Use a função Fn::GetArtifactAtt para passar o bucket do S3 e os nomes de arquivos exatos.

Sintaxe

Use a sintaxe a seguir para recuperar um valor de atributo de um artefato.

{ "Fn::GetArtifactAtt" : [ "artifactName", "attributeName" ] }
artifactName

O nome do artefato de entrada. Declare este artefato como entrada para a ação associada.

attributeName

O nome do atributo do artefato com o valor você deseja recuperar. Para obter detalhes sobre cada atributo de artefato, consulte a seção Atributos a seguir.

Exemplo

As seguintes substituições de parâmetro especificam os parâmetros BucketName e ObjectKey, recuperando o nome do bucket do S3 e o nome de arquivo do artefato LambdaFunctionSource. Este exemplo pressupõe que o CodePipeline copiou o código-fonte da função Lambda e o salvou como um artefato, por exemplo, como parte de um estágio de origem.

{ "BucketName" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "BucketName"]}, "ObjectKey" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "ObjectKey"]} }

Atributos

É possível recuperar os seguintes atributos para um artefato.

BucketName

O nome do bucket do S3 no qual o artefato está armazenado.

ObjectKey

O nome do arquivo .zip que contém o artefato que é gerado pelo CodePipeline, como 1ABCyZZ.zip.

URL

O URL do Amazon Simple Storage Service (Amazon S3) do artefato, como https://s3.us-west-2.amazonaws.com/artifactstorebucket-yivczw8jma0c/test/TemplateSo/1ABCyZZ.zip.

Fn::GetParam

A função Fn::GetParam retorna um valor de um par chave/valor em um arquivo em um formato JSON. O arquivo JSON deve estar incluído em um artefato.

Use esta função para recuperar os valores de saída de uma pilha do AWS CloudFormation e usá-los como entrada para outra ação. Por exemplo, se você especificar um nome de arquivo de saída para uma ação do AWS CloudFormation, o CodePipeline salvará essa saída em um arquivo JSON e a adicionará ao arquivo .zip do artefato de saída. Use a função Fn::GetParam para recuperar o valor de saída e usá-lo como entrada para outra ação.

Sintaxe

Use a sintaxe a seguir para recuperar um valor a partir de um par chave/valor.

{ "Fn::GetParam" : [ "artifactName", "JSONFileName", "keyName" ] }
artifactName

O nome do artefato, que deve ser incluído como um artefato de entrada para a ação associada.

JSONFileName

O nome de um arquivo JSON que está contido no artefato.

keyName

O nome da chave com o valor você deseja recuperar.

Exemplos

Os exemplos a seguir demonstram como usar a função Fn::GetParam em uma substituição de parâmetro.

Sintaxe

A substituição de parâmetro a seguir especifica o parâmetro WebSiteURL recuperando o valor da chave URL do arquivo stack-output.json que está no WebStackOutput artefato.

{ "WebSiteURL" : { "Fn::GetParam" : ["WebStackOutput", "stack-output.json", "URL"]} }

Trechos de modelo do AWS CloudFormation

Os trechos de modelo do AWS CloudFormation a seguir, em um pipeline do CodePipeline, demonstram como passar saídas da pilha. Esses trechos mostram dois estágios de definição do pipeline. O primeiro estágio cria uma pilha e salva as saídas no arquivo TestOutput.json no artefato StackAOutput. Esses valores são especificados pelas propriedades OutputFileName e OutputArtifacts.

o nome do artefato de entrada de origem é TemplateSource. O nome do modelo de pilha é teststackA.yaml, e o nome do arquivo de configuração é test-configuration.json. Em ambos os estágios, esses valores são especificados para as propriedades TemplateConfiguration e TemplatePath, conforme mostrado:

TemplateConfiguration: TemplateSource::test-configuration.json TemplatePath: TemplateSource::teststackA.yaml
exemplo Criar estágio A da pilha
- Name: CreateTestStackA Actions: - Name: CloudFormationCreate ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' Configuration: ActionMode: CREATE_UPDATE Capabilities: CAPABILITY_IAM OutputFileName: TestOutput.json RoleArn: !GetAtt [CFNRole, Arn] StackName: StackA TemplateConfiguration: TemplateSource::test-configuration.json TemplatePath: TemplateSource::teststackA.yaml InputArtifacts: - Name: TemplateSource OutputArtifacts: - Name: StackAOutput RunOrder: '1'

Em um estágio posterior, a pilha B usa as saídas da pilha A. Na propriedade ParameterOverrides, o exemplo usa a função Fn::GetParam para especificar o parâmetro StackBInputParam. O valor resultante é o valor associado à chave StackAOutputName.

exemplo Criar estágio B da pilha
- Name: CreateTestStackB Actions: - Name: CloudFormationCreate ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' Configuration: ActionMode: CREATE_UPDATE Capabilities: CAPABILITY_IAM RoleArn: !GetAtt [CFNRole, Arn] StackName: StackB TemplateConfiguration: TemplateSource::test-configuration.json TemplatePath: TemplateSource::teststackB.yaml ParameterOverrides: | { "StackBInputParam" : { "Fn::GetParam" : ["StackAOutput", "TestOutput.json", "StackAOutputName"]} } InputArtifacts: - Name: TemplateSource - Name: StackAOutput RunOrder: '1'

Consulte também

Os recursos relacionados a seguir podem ajudar você à medida que trabalha com esses parâmetros.

Nesta página

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.