View a markdown version of this page

Configurar fluxos de trabalho do pipeline de imagens no Image Builder - 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á.

Configurar fluxos de trabalho do pipeline de imagens no Image Builder

Com fluxos de trabalho de imagem, você pode personalizar os fluxos de trabalho que seu funil executa para criar, testar e distribuir imagens de acordo com suas necessidades. Os fluxos de trabalho que você define são executados dentro do contexto do framework de fluxo de trabalho do Image Builder. Para obter mais informações sobre os estágios que compõem o framework de fluxo de trabalho, consulte Gerencie fluxos de trabalho de criação, teste e distribuição de imagens do Image Builder.

Criar fluxos de trabalho

Crie fluxos de trabalho executados durante o estágio Build do framework do fluxo de trabalho. Você só pode especificar um fluxo de trabalho de compilação para seu pipeline. Como alternativa, você pode ignorar totalmente a compilação para configurar um pipeline somente para testes.

Testar fluxos de trabalho

Teste fluxos de trabalho executados durante o estágio Test do framework do fluxo de trabalho. Você pode adicionar um ou mais fluxos de trabalho de teste ao seu pipeline, até o limite de dez fluxos de trabalho no total, o que também conta seus fluxos de trabalho de criação e distribuição. Os fluxos de trabalho de teste podem ser executados em paralelo ou um de cada vez, dependendo de como você define seus grupos de teste. Também é possível ignorar totalmente os testes se quiser apenas que seu pipeline seja compilado.

fluxo de trabalho de distribuição

Os fluxos de trabalho de distribuição são executados durante o Distribution estágio da estrutura do fluxo de trabalho. Um fluxo de trabalho de distribuição é opcional. Se você não especificar uma, o Image Builder ainda distribuirá sua AMI executando a configuração de distribuição que você anexa ao pipeline ou à imagem. Especifique um fluxo de trabalho de distribuição quando quiser substituir essa configuração de distribuição por diferentes configurações de distribuição ou para obter mais visibilidade do processo de distribuição. Você pode especificar um fluxo de trabalho de distribuição para seu funil. Se você criar imagens de contêiner e não especificar um fluxo de trabalho de distribuição, o Image Builder adiciona o fluxo de trabalho de distribuição de contêineres gerenciado pela Amazon para você.

Definir grupos de teste para fluxos de trabalho de teste

Você define fluxos de trabalho de teste em grupos de teste. Você pode executar vários fluxos de trabalho de teste para seu pipeline. O limite combinado é de dez fluxos de trabalho no total, o que inclui seus fluxos de trabalho de criação e distribuição. Você decide se deseja executar os fluxos de trabalho de teste em uma ordem específica ou executar o maior número possível ao mesmo tempo. A forma como eles são executados dependerá de como você definir seus grupos de teste. Os cenários a seguir demonstram várias maneiras de definir seus fluxos de trabalho de teste.

nota

As onFailure configurações parallelGroup e se aplicam somente aos fluxos de trabalho de teste. O Image Builder os rejeita em um fluxo de trabalho de construção ou distribuição com umInvalidParameterCombinationException.

Como os grupos de teste são executados

O Image Builder executa seus fluxos de trabalho de teste em grupos de teste. Ele dirige os grupos um de cada vez. Os fluxos de trabalho de teste em um único grupo são executados ao mesmo tempo (em paralelo). O Image Builder executa até cinco fluxos de trabalho de teste ao mesmo tempo; se um grupo tiver mais de cinco, o Image Builder inicia o próximo fluxo de trabalho de teste à medida que cada um termina. Um fluxo de trabalho de teste que não faz parte de um grupo é executado sozinho.

A forma como você define grupos de teste depende se você usa o console ou a API AWS CLI e. Selecione a guia que corresponde ao método que você usa.

Console de gerenciamento da AWS

Ao criar ou editar um pipeline no console, você define seus fluxos de trabalho de teste na seção Fluxo de trabalho de teste do processo de criação da imagem. Para executar testes, escolha a opção de selecionar fluxos de trabalho de teste. Para criar imagens sem testar, escolha a opção de ignorar fluxos de trabalho de teste.

O console organiza os fluxos de trabalho de teste em grupos de teste. Um novo pipeline começa com um grupo de teste. Para criar sua configuração de teste, faça o seguinte:

  • Adicionar um fluxo de trabalho de teste a um grupo — Adicione um fluxo de trabalho de teste a um grupo e selecione o fluxo de trabalho de seus próprios fluxos de trabalho (de minha propriedade) ou dos fluxos de trabalho AWS gerenciados (gerenciados pela Amazon). Se o fluxo de trabalho definir parâmetros, o console os mostrará para que você possa inserir valores. Um grupo pode armazenar até cinco fluxos de trabalho de teste, que são executados ao mesmo tempo.

  • Adicionar um grupo de teste — Adicione outro grupo de teste para executar um conjunto diferente de testes. Você pode adicionar até dez grupos de teste. Para renomear um grupo, escolha Editar nome. O nome de um grupo pode ter até 128 caracteres e pode incluir letras, números, hífens (-) e sublinhados (). _

O Image Builder executa os grupos de teste um por vez, na ordem em que aparecem no assistente. Os fluxos de trabalho de teste em um grupo são executados ao mesmo tempo. Um grupo pode conter até cinco fluxos de trabalho de teste. Para executar seus testes um de cada vez, coloque cada fluxo de trabalho de teste em seu próprio grupo.

nota

Você pode adicionar ou remover grupos e fluxos de trabalho de teste, mas não pode reordená-los. Planeje a ordem dos seus grupos de teste antes de criá-los.

AWS CLI

Quando você usa a API AWS CLI ou a Image Builder, você não define grupos de teste diretamente. Em vez disso, você define o parallelGroup atributo em cada fluxo de trabalho de teste na workflows lista. Teste fluxos de trabalho que têm o mesmo parallelGroup valor formam um grupo e são executados ao mesmo tempo. Um fluxo de trabalho de teste que não tem parallelGroup valor é executado sozinho. Se você não definir um parallelGroup valor em nenhum dos seus fluxos de trabalho de teste, o Image Builder os executará um de cada vez.

A API AWS CLI e não limita o número de fluxos de trabalho de teste em um grupo. O único limite é o número total de fluxos de trabalho, que não pode exceder dez (incluindo seus fluxos de trabalho de criação e distribuição). O console limita um grupo a cinco fluxos de trabalho de teste.

O Image Builder sempre executa os fluxos de trabalho de criação primeiro, depois os fluxos de trabalho de teste e, em seguida, o fluxo de trabalho de distribuição. Esse pedido se aplica independentemente de como você os lista.

Na fase de teste, o Image Builder ordena seus fluxos de trabalho de teste da seguinte forma:

  • Ele ordena os grupos pela posição em que cada grupo aparece pela primeira vez na sua workflows lista. Ele não os ordena pelo parallelGroup valor.

  • Ele mantém cada fluxo de trabalho que não tem nenhum grupo em sua posição listada.

  • Ele executa os fluxos de trabalho em um grupo, na posição em que esse grupo aparece pela primeira vez.

Exemplo

Suponha que você liste cinco fluxos de trabalho de teste nessa ordem e defina o parallelGroup valor em alguns deles:

  • Fluxo de trabalho de teste A — sem grupo

  • Fluxo de trabalho de teste B —parallelGroup: tests-1

  • Fluxo de trabalho de teste C — sem grupo

  • Fluxo de trabalho de teste D —parallelGroup: tests-1

  • Fluxo de trabalho de teste E —parallelGroup: tests-2

O Image Builder os executa na seguinte ordem:

  1. Teste o fluxo de trabalho A, sozinho.

  2. Teste o fluxo de trabalho B e teste o fluxo de trabalho D ao mesmo tempo. Eles compartilham o tests-1 grupo, que aparece pela primeira vez no fluxo de trabalho de teste B.

  3. Teste o fluxo de trabalho C sozinho.

  4. Teste o fluxo de trabalho E, sozinho, no tests-2 grupo.

O fluxo de trabalho de teste D é executado junto com o fluxo de trabalho de teste B porque eles compartilham um grupo, mesmo que você tenha listado o fluxo de trabalho de teste C entre eles. O grupo chamado tests-1 é executado antes tests-2 porque tests-1 aparece primeiro na lista — a ordem do grupo segue a ordem na lista, não o parallelGroup valor.

Cenário 1: executar um fluxo de trabalho de teste por vez

Para executar todos os seus fluxos de trabalho de teste um por vez, configure um grupo de teste separado para cada fluxo de trabalho de teste, até o limite combinado de dez fluxos de trabalho no total (o que inclui seus fluxos de trabalho de criação e distribuição). O Image Builder executa os grupos de teste um por vez. Essa é uma forma de garantir que seus fluxos de trabalho de teste sejam executados um por vez um uma ordem específica.

Cenário 2: executar vários fluxos de trabalho de teste ao mesmo tempo

Se a ordem não importar e você quiser executar o maior número possível de fluxos de trabalho de teste ao mesmo tempo, é possível configurar um único grupo de teste e colocar o número máximo de fluxos de trabalho de teste nele. O Image Builder iniciará até cinco fluxos de trabalho de teste ao mesmo tempo e iniciará fluxos de trabalho de teste adicionais conforme os outros forem concluídos. Se seu objetivo for executar seus fluxos de trabalho de teste com o máximo de rapidez possível, essa é uma maneira de fazer isso.

Cenário 3: misturar e combinar

Se você tiver um cenário misto, com alguns fluxos de trabalho de teste que possam ser executados ao mesmo tempo e alguns que devam ser executados um por vez, será possível configurar seus grupos de teste para atingir esse objetivo. O único limite de como você configura seus grupos de teste é o número máximo de fluxos de trabalho de teste que podem ser executados em seu pipeline.

Definir parâmetros de fluxo de trabalho em um pipeline do Image Builder com o console

Os parâmetros do fluxo de trabalho funcionam da mesma forma para fluxos de trabalho de criação, teste e distribuição. Ao criar ou atualizar um pipeline, você seleciona os fluxos de trabalho de criação, teste e distribuição que deseja incluir. Se você tiver definido parâmetros no documento do fluxo de trabalho para um fluxo de trabalho selecionado, o Image Builder os exibirá no painel Parâmetros. O painel está oculto para fluxos de trabalho que não têm parâmetros definidos.

Cada parâmetro exibirá os seguintes atributos que seu documento de fluxo de trabalho definiu:

  • Nome do parâmetro (não editável): o nome do parâmetro.

  • Tipo (não editável): o tipo de dados para o valor do parâmetro.

  • Valor: o valor do parâmetro. Você pode editar o valor do parâmetro a fim de configurá-lo para seu funil.

Especificar o perfil de serviço do IAM que o Image Builder usará para executar ações de fluxo de trabalho

Ao anexar fluxos de trabalho de imagem personalizados ao seu pipeline ou ao definir uma configuração de registro, você também deve especificar uma função de execução. Essa é a função do IAM que o Image Builder assume para executar suas ações de fluxo de trabalho. A função deve confiar no diretor de serviço do Image Builder. Para obter as permissões necessárias, consulte as informações de acesso ao serviço de fluxo de trabalho a seguir.

Para executar fluxos de trabalho de imagem, o Image Builder precisa de permissão para realizar ações de fluxo de trabalho. Você concede essa permissão com uma função de execução que o Image Builder assume em seu nome. Você atribui a função de execução da seguinte forma.

Importante

Recomendamos que você não passe a função AWSServiceRoleForImageBuilder vinculada ao serviço como sua função de execução. Em vez disso, crie uma função personalizada do IAM e anexe a política EC2ImageBuilderExecutionPolicy AWS gerenciada. Essa política concede as mesmas permissões que o Image Builder precisa para chamar Serviços da AWS em seu nome. O uso de uma função personalizada oferece controle total sobre as permissões que o Image Builder usa. Ele também mantém suas políticas de controle de serviços (SCPs) e políticas de controle de recursos (RCPs) em vigor nas operações que o Image Builder executa em seu nome.

  • Console — Na etapa 3 do assistente de pipeline Defina o processo de criação de imagens, selecione sua função personalizada na lista de funções do IAM no painel de acesso ao serviço.

  • API Image Builder — Na solicitação de CreateImage ação, especifique sua função personalizada como o valor do executionRole parâmetro.

Para criar uma função de execução personalizada, consulte Criação de uma função para delegar permissões a um AWS serviço no Guia do AWS Identity and Access Management usuário.

Associar fluxos de trabalho a um pipeline

Para associar fluxos de trabalho personalizados de criação, teste e distribuição de imagens ao seu funil, selecione a guia que corresponde ao método que você deseja usar.

Console de gerenciamento da AWS

Quando você cria ou atualiza um pipeline no Console de gerenciamento da AWS, o assistente Criar pipeline de imagem inclui uma etapa de fluxos de trabalho na qual você seleciona os fluxos de trabalho que seu funil executa. Para associar fluxos de trabalho de imagem personalizados, faça o seguinte nessa etapa:

  1. Em Criar fluxo de trabalho, selecione o fluxo de trabalho de criação que você deseja que seu funil execute.

  2. Para fluxos de trabalho de teste, adicione um ou mais fluxos de trabalho de teste e organize-os em grupos de teste para controlar a ordem em que são executados. Para obter mais informações, consulte Definir grupos de teste para fluxos de trabalho de teste.

  3. Para Fluxo de trabalho de distribuição, selecione um fluxo de trabalho de distribuição se quiser substituir a configuração de distribuição anexada ou obter mais visibilidade do processo de distribuição. Isso é opcional.

  4. Em Função de execução, selecione a função do IAM que o Image Builder presume para executar suas ações de fluxo de trabalho. Uma função de execução é necessária quando você associa fluxos de trabalho de imagem personalizados. Para obter mais informações, consulte Especificar o perfil de serviço do IAM que o Image Builder usará para executar ações de fluxo de trabalho.

  5. Se um fluxo de trabalho selecionado definir parâmetros, defina seus valores no painel Parâmetros. Para obter mais informações, consulte Definir parâmetros de fluxo de trabalho em um pipeline do Image Builder com o console.

Para ver um passo a passo do assistente completo de criação de pipeline de imagens, consulte. Criar e atualizar pipelines de imagens de AMI

AWS CLI

Para associar fluxos de trabalho de imagem personalizados ao criar um pipeline, use o create-image-pipeline comando. Especifique sua função de execução com o --execution-role parâmetro e liste seus fluxos de trabalho de criação, teste e distribuição com o --workflows parâmetro. O exemplo a seguir cria um pipeline com um fluxo de trabalho de criação, um fluxo de trabalho de teste e um fluxo de trabalho de distribuição.

aws imagebuilder create-image-pipeline \ --name example-pipeline \ --image-recipe-arn arn:aws:imagebuilder:us-west-2:111122223333:image-recipe/example/1.0.0 \ --infrastructure-configuration-arn arn:aws:imagebuilder:us-west-2:111122223333:infrastructure-configuration/example \ --execution-role arn:aws:iam::111122223333:role/ImageBuilderWorkflowExecutionRole \ --workflows '[ {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/example-build/1.0.0"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/test/example-test/1.0.0","parallelGroup":"group-1","onFailure":"CONTINUE"}, {"workflowArn":"arn:aws:imagebuilder:us-west-2:111122223333:workflow/distribution/example-distribute/1.0.0"} ]'