View a markdown version of this page

Criar um documento de fluxo de trabalho do YAML - 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á.

Criar um documento de fluxo de trabalho do YAML

O documento de definição do formato YAML configura as etapas de entrada, saída e fluxo de trabalho para os estágios de construção, teste e distribuição do processo de criação da imagem. O mesmo formato de documento se aplica a todos os três tipos de fluxo de trabalho. Você pode começar com base em modelos que incluem etapas padronizadas ou começar do zero para definir seu próprio fluxo de trabalho. Seja com um modelo ou começando do zero, você pode personalizar o fluxo de trabalho para atender às suas necessidades.

Estrutura de um documento de fluxo de trabalho do YAML

As seções a seguir descrevem a estrutura do documento de fluxo de trabalho YAML que o Image Builder usa para realizar ações de criação, teste e distribuição de imagens.

Identificação do documento de fluxo de trabalho

Identifica exclusivamente o fluxo de trabalho. Essa seção pode incluir os atributos a seguir.

Campo

Description

Tipo

Obrigatório

name

O nome do documento do fluxo de trabalho.

String

Não

descrição

A descrição do documento.

String

Não

schemaVersion

A versão do esquema do documento, atualmente 1.0.

String

Sim

Exemplo

--- name: sample-test-image description: Workflow for a sample image, with extra configuration options exposed through workflow parameters. schemaVersion: 1.0

Parâmetros de entrada do documento de fluxo de trabalho

Essa parte do documento do fluxo de trabalho define os parâmetros de entrada que o chamador pode especificar. Se você não tiver nenhum parâmetro, pode deixar essa seção de fora. Se você especificar parâmetros, cada parâmetro poderá incluir os atributos a seguir.

Você pode definir até 25 parâmetros em um documento de fluxo de trabalho. Cada valor de parâmetro pode conter até 1.024 caracteres. Um parâmetro deve usar um dos quatro tipos de dados compatíveis: stringinteger,boolean, oustringList. Se você não especificar um default valor para um parâmetro, deverá fornecer o valor do parâmetro em tempo de execução.

Campo

Description

Tipo

Obrigatório

Restrições

name

O nome do parâmetro.

String

Sim

descrição

A descrição do parâmetro.

String

Não

padrão

O valor padrão do parâmetro se não houver um valor. Se você não incluir um valor padrão na definição do parâmetro, o valor do parâmetro será obrigatório em runtime.

Corresponde ao tipo de dados do parâmetro.

Não

type

O tipo de dado do parâmetro. Se você não incluir o tipo de dados na definição do parâmetro, o tipo de dados adotará por padrão um valor de string exigido em runtime.

String

Sim

O tipo de dados do parâmetro deve ser um dos seguintes:

  • string

  • integer

  • boolean

  • stringList

Exemplo

Especifique o parâmetro no documento de fluxo de trabalho.

parameters: - name: waitForActionAtEnd type: boolean default: true description: "Wait for an external action at the end of the workflow"

Use o valor do parâmetro no documento de fluxo de trabalho.

$.parameters.waitForActionAtEnd

Etapas do documento de fluxo de trabalho

Especifica ações com até 15 etapas para o fluxo de trabalho. As etapas são executadas na ordem em que são definidas no documento do fluxo de trabalho. Em caso de falha, uma reversão é executada na ordem inversa, começando com a etapa que falhou e retrocedendo no sentido das etapas anteriores.

Cada etapa pode indicar a saída de qualquer ação da etapa anterior. Isso é conhecido como encadeamento ou referência. Para se referir à saída de uma ação da etapa anterior, você pode usar um seletor JSONPath. Por exemplo:

$.stepOutputs.step-name.output-name

Para obter mais informações, consulte Use variáveis dinâmicas em seu documento de fluxo de trabalho.

nota

Mesmo que a etapa não tenha um atributo de saída, qualquer saída de uma ação de etapa será incluída em stepOutput para a etapa.

nota

Se você definir waitSeconds uma etapa, o valor deverá ser menor quetimeoutSeconds. Cada ação de etapa também define um timeoutSeconds valor máximo. Se você definir um timeoutSeconds valor maior do que o máximo para a ação, a validação falhará. Para os máximos por ação, consulte. Ações de etapa compatíveis com seu documento de fluxo de trabalho

Cada etapa pode incluir os atributos a seguir.

Campo

Description

Tipo

Obrigatório

Valor padrão

Restrições

ação

A ação do fluxo de trabalho que essa etapa executa.

String

Sim

Deve ser uma ação de etapa compatível com documentos de fluxo de trabalho do Image Builder.

if, seguido por um conjunto de declarações condicionais que modificam o operador if.

As declarações condicionais adicionam pontos de decisão de fluxo de controle ao corpo das etapas do fluxo de trabalho.

Dict

Não

O Image Builder é compatível com as seguintes declarações condicionais como modificadores do operador if:

  • Condições de ramificação e modificadores: if, and, or, not. As condições de ramificação são especificadas individualmente em uma linha.

  • Operadores de comparação: booleanEquals, numberEquals, numberGreaterThan, numberGreaterThanEquals, numberLessThan, numberLessThanEquals, stringEquals.

descrição

A descrição da etapa.

String

Não

Não é permitido ter strings vazias. Se incluída, o comprimento deve ser de 1 a 1.024 caracteres.

inputs

Contém os parâmetros de que a ação de etapa precisa para funcionar. Você pode especificar os valores de chave como valores estáticos ou com uma variável JSONPath que seja resolvida para o tipo de dados correto.

Dict

Sim

name

O nome da etapa. Esse nome deve ser exclusivo no documento de fluxo de trabalho.

String

Sim

Deve ter de 3 a 128 caracteres.

Pode incluir caracteres alfanuméricos e _. Sem espaços.

onFailure

Configura da seguinte maneira a ação a ser tomada se a etapa falhar.

Comportamento
  • Abort: resulta em falha na etapa, falha no fluxo de trabalho e não executa nenhuma etapa restante após a etapa que falhou. Se a reversão estiver ativada, ela começará com a etapa que falhou e continuará até reverter todas as etapas que a viabilizam.

  • Continue: resulta em falha na etapa, mas continua executando as etapas restantes após a etapa que falhou. Nesse caso, não há reversão.

String

Não

Abort

Abort | Continue

rollbackEnabled

Configura se a etapa será revertida se ocorrer uma falha. Você pode usar um valor booliano estático ou uma variável dinâmica JSONPath com resolução para um valor booliano.

Booleano

Não

true

true | false

| ou uma variável JSONPath com resolução como verdadeiro ou falso.

timeoutSeconds

O tempo máximo, em segundos, de execução da etapa antes de falhar e tentar novamente, caso haja novas tentativas.

Inteiro

Não

Depende do padrão definido para a ação da etapa, se for o caso.

Não pode ser maior do que o tempo limite máximo da ação da etapa

Aguarde segundos

O tempo, em segundos, durante o qual a execução da etapa será pausada.

Inteiro

Não

0

Não pode ser maior que timeoutSeconds da ação da etapa

Exemplo

steps: - name: LaunchTestInstance action: LaunchInstance onFailure: Abort inputs: waitFor: "ssmAgent" - name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: TerminateTestInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: WaitForActionAtEnd action: WaitForAction if: booleanEquals: true value: "$.parameters.waitForActionAtEnd"

Saídas do documento de fluxo de trabalho

Define as saídas para o fluxo de trabalho. Cada saída é um par de valores-chave que especifica o nome da saída e o valor. Você pode usar saídas para exportar dados em runtime que os fluxos de trabalho subsequentes possam usar. Esta seção é opcional.

Você pode definir até 25 saídas em um documento de fluxo de trabalho. Cada nome de saída deve ser exclusivo em todos os fluxos de trabalho que você inclui em seu funil. Um fluxo de trabalho posterior pode então referenciar uma saída pelo nome com$.workflowOutputs.name.

nota

Você faz referência à saída de uma etapa no mesmo fluxo de trabalho com$.stepOutputs.stepName.field, mas faz referência à saída de um fluxo de trabalho anterior com apenas o nome da saída ($.workflowOutputs.name) e sem o nome da etapa.

Cada saída que você define inclui os atributos a seguir.

Campo

Description

Tipo

Obrigatório

name

O nome da saída. O nome deve ser exclusivo em todos os fluxos de trabalho que você incluir no pipeline.

String

Sim

valor

O valor para a saída. O valor da string pode ser uma variável dinâmica, como um arquivo de saída de uma ação de etapa. Para obter mais informações, consulte Use variáveis dinâmicas em seu documento de fluxo de trabalho.

String

Sim

Exemplo

Crie uma ID de imagem de saída para o documento do fluxo de trabalho com a saída da etapa createProdImage.

outputs: - name: 'outputImageId' value: '$.stepOutputs.createProdImage.imageId'

Consulte a saída do fluxo de trabalho no próximo fluxo de trabalho.

$.workflowOutputs.outputImageId