Use variáveis dinâmicas em seu documento de fluxo de trabalho - EC2 Image Builder

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

Use variáveis dinâmicas em seu documento de fluxo de trabalho

Você pode usar variáveis dinâmicas em seus documentos de fluxo de trabalho para representar valores que variam em runtime para seu processo de criação de imagem. A interpolação de strings para variáveis dinâmicas permite incorporar JSONPath expressões em conteúdo estruturado, como cadeias de caracteres JSON. Isso é particularmente útil quando você precisa passar valores de tempo de execução em cargas complexas para ações escalonadas como ou. ExecuteStateMachine WaitForAction

Para usar a interpolação de strings para variáveis dinâmicas, coloque JSONPath expressões em colchetes duplos "{{...}}" dentro do conteúdo da string. Somente JSONPath expressões agrupadas em chaves duplas são processadas como variáveis. Qualquer JSONPath expressão que não esteja entre colchetes duplos é tratada como conteúdo literal de seqüência de caracteres.

JSONPath sintaxe variável de fluxo de trabalho dinâmico

$.<document structure>.[<step name>.]<variable name>

Os valores das variáveis dinâmicas são representados como JSONPath seletores com nós estruturais que identificam exclusivamente a variável alvo. O primeiro nó após a raiz ($) se refere à estrutura do documento do fluxo de trabalho, como stepOutputs, ou no caso das variáveis de sistema do Image Builder, a imageBuilder. A lista a seguir contém nós de estrutura JSONPath de documentos de fluxo de trabalho compatíveis.

Nós de estrutura do documento
  • parameters: os parâmetros do fluxo de trabalho

  • stepOutputs: saídas de uma etapa no mesmo documento de fluxo de trabalho

  • workflowOutputs: saídas de um documento de fluxo de trabalho que já foi executado

  • imagebuilder: variáveis de sistema do Image Builder

Os nós da estrutura de documento parameters e stepOutputs incluem um nó opcional para o nome da etapa. Isso ajuda a garantir nomes exclusivos de variáveis em todas as etapas.

O nó final no JSONPath é o nome da variável de destino, comoinstanceId.

Cada etapa pode se referir à saída de qualquer ação da etapa anterior com essas variáveis JSONPath dinâmicas. Isso também é conhecido como encadeamento ou referência. Você pode usar a variável dinâmica a seguir para fazer referência à saída de uma ação da etapa anterior.

$.stepOutputs.step-name.output-name
Importante

Quando um parâmetro de entrada se refere a uma variável dinâmica, o indicador de encadeamento (.$) deve ser anexado ao final do nome do parâmetro.

Exemplo 1: indicador de encadeamento de parâmetros de entrada

O exemplo a seguir mostra um parâmetro de entrada que usa interpolação de strings para resolver uma variável dinâmica no valor do parâmetro em tempo de execução.

- name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"

Exemplo 2: interpolação de strings em variáveis dinâmicas

O exemplo a seguir demonstra como as variáveis dinâmicas usam a interpolação de strings para determinar valores em tempo de execução.

- name: ValidateImageConfiguration action: ExecuteStateMachine inputs: stateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:ImageValidation input: | { "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}", "region": "us-east-1", "buildDate": "{{ $.imagebuilder.dateTime }}", "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}" }

Neste exemplo, as JSONPath expressões encapsuladas em chaves duplas são resolvidas em tempo de execução:

  • {{ $.stepOutputs.CreateImageFromInstance.imageId }}- Resolve para o ID real da imagem a partir da etapa CreateImageFromInstance

  • {{ $.imagebuilder.dateTime }}- Resolve para o timestamp de compilação atual. Consulte Usar variáveis de sistema do Image Builder para obter uma lista das variáveis de sistema do Image Builder que você pode usar.

  • {{ $.stepOutputs.LaunchStep.instanceType }}- Resolve para o tipo de instância usado no LaunchStep

As sequências literais, como por exemplo, "region": "us-east-1" permanecem inalteradas.

nota

A interpolação de strings funciona com qualquer conteúdo de string em seu documento de fluxo de trabalho, incluindo cadeias de caracteres de várias linhas usando o operador YAML pipe (). | O requisito de colchete curvo atua como um mecanismo de escape para distinguir claramente entre JSONPath variáveis e conteúdo de texto literal.

Usar variáveis de sistema do Image Builder

O Image Builder fornece as seguintes variáveis de sistema que você pode usar em seu documento de fluxo de trabalho:

Nome da variável

Description

Tipo

Valor de exemplo

cloudWatchLogGrupo

O nome do grupo CloudWatch Logs para registros de saída.

Formato: /aws/imagebuilder/<recipe-name>

String

/aws/imagebuilder/sampleImageRecipe

cloudWatchLogTransmitir

O nome do fluxo de CloudWatch registros para registros de saída.

String

1.0.0/1

collectImageMetadata

A configuração que orienta o Image Builder a coletar ou não os metadados da instância.

Booleano

true | false

collectImageScanConclusões

O valor atual da configuração que permite ao Image Builder coletar resultados de varredura de imagens.

Booleano

true | false

imageBuildNumber

O número de versão da compilação da imagem.

Inteiro

1

imageId

O ID da AMI da imagem de base.

String

ami-1234567890abcdef1

imageName

O nome da imagem.

String

sampleImage

imageType

O tipo de saída da imagem.

String

AMI | Docker

imageVersionNumber

O número de versão da imagem.

String

1.0.0

instanceProfileName

O nome da função do perfil de instância que o Image Builder usa para iniciar, criar e testar instâncias.

String

SampleImageBuilderInstanceProfileRole

platform

A plataforma do sistema operacional da imagem que foi compilada.

String

Linux | Windows | MacOS

s3Logs

Um objeto JSON que contém a configuração dos logs do S3 que o Image Builder grava.

Objeto JSON

{'S3Logs': {'s3 BucketName ':' ', 's3sample-bucket': KeyPrefix ''}} ib-logs

securityGroups

O grupo de segurança IDs que se aplica para criar e testar instâncias.

List [String]

[sg-1234567890abcdef1, sg-11112222333344445]

sourceImageARN

O nome do recurso da Amazon (ARN) do recurso de imagem do Image Builder que o fluxo de trabalho usa para os estágios de compilação e teste.

String

arn: aws:imagebuilder: ::image//us-east-1111122223333sampleImage1.0.0/1

subnetId

O ID da sub-rede na qual inicializar as instâncias de compilação e teste.

String

subnet-1234567890abcdef1

terminateInstanceOnFalha

O valor atual da configuração que direciona o Image Builder a encerrar a instância em caso de falha ou mantê-la para solução de problemas.

Booleano

true | false

workflowPhase

O estágio atual inicializado para a execução do fluxo de trabalho.

String

Build | Test

workingDirectory

O caminho para o diretório de trabalho.

String

/tmp