View a markdown version of this page

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 que você incorpore expressões JSONPath em conteúdo estruturado, como strings JSON. Isso é particularmente útil quando você precisa passar valores de tempo de execução em cargas complexas para etapas de ações como ou. ExecuteStateMachine WaitForAction

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

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

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

Os valores das variáveis dinâmicas são representados como seletores JSONPath com nós estruturais que identificam a variável de destino de modo exclusivo. 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 os nós compatíveis de estrutura de documentos de fluxo de trabalho JSONPath.

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, como instanceId.

Cada etapa pode indicar a saída de qualquer ação da etapa anterior com essas variáveis dinâmicas JSONPath. 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 a interpolação de cadeias de caracteres 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 cadeias de caracteres em variáveis dinâmicas

O exemplo a seguir demonstra como as variáveis dinâmicas usam a interpolação de cadeias de caracteres 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 expressões JSONPath agrupadas 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 carimbo de data/hora de compilação atual. Consulte Usar variáveis de sistema do Image Builder para obter uma lista de 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 semelhantes "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 strings de várias linhas usando o operador YAML pipe (). | O requisito de chave curly atua como um mecanismo de escape para distinguir claramente entre variáveis JSONPath 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. Esses são valores somente para leitura que o Image Builder preenche em tempo de execução. Você faz referência a uma variável do sistema com o nó da estrutura do imagebuilder documento, por exemplo$.imagebuilder.platform.

Nome da variável

Description

Tipo

Valor de exemplo

nuvem WatchLogGroup

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

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

String

/aws/imagebuilder/sampleImageRecipe

nuvem WatchLogStream

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

String

1.0.0/1

coletam ImageMetadata

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

Booleano

true | false

coletam ImageScanFindings

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

Booleano

true | false

imagem BuildNumber

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

imagem VersionNumber

O número de versão da imagem.

String

1.0.0

exemplo ProfileName

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

Os IDs do grupo de segurança aplicáveis à criação e ao teste de 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

encerrar InstanceOnFailure

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