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:
|
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. |
|
|
|
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
|
|
|
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 |
|
|
onFailure |
Configura da seguinte maneira a ação a ser tomada se a etapa falhar. Comportamento
|
String |
Não |
|
|
|
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 |
|
|
|
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., mas faz referência à saída de um fluxo de trabalho anterior com apenas o nome da saída (stepName.field$.workflowOutputs.) e sem o nome da etapa.name
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