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

Crie um documento de YAML fluxo de trabalho

O documento de definição de YAML formato configura as etapas de entrada, saída e fluxo de trabalho para os estágios de criação e teste do processo de criação da imagem. 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 YAML de fluxo de trabalho

O documento YAML de fluxo de trabalho que o Image Builder usa para realizar ações de criação e teste de imagens está estruturado da seguinte forma.

Identificação de documentos do fluxo de

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

Campo

Descrição

Tipo

Obrigatório

name

O nome do documento do fluxo de trabalho.

String

Não

description

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 de documentos do fluxo de

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

Campo

Descrição

Tipo

Obrigatório

Restrições

name

O nome do parâmetro.

String

Sim

description

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

tipo

O tipo de dado válido 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

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 JSONPath seletor. 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.

Cada etapa pode incluir os atributos a seguir.

Campo

Descrição

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.

description

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-chave como valores estáticos ou com uma JSONPath variável 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 booleano estático ou uma JSONPath variável dinâmica que se resolve para um valor booleano.

Booleano

Não

true

true | false

| ou uma JSONPath variável que é resolvida como verdadeira ou falsa.

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.

Entre 1 e 86.400 segundos (máximo de 24 horas)

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 de documentos do fluxo de trabalho

Define as saídas para o fluxo de trabalho. Cada saída é um par de valor e 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.

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

Campo

Descrição

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