View a markdown version of this page

Gerencie fluxos de trabalho de criação, teste e distribuição de imagens do 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á.

Gerencie fluxos de trabalho de criação, teste e distribuição de imagens do Image Builder

Um fluxo de trabalho de imagem define a sequência de etapas que o EC2 Image Builder executa durante um estágio do processo de criação da imagem. Você cria um fluxo de trabalho como um documento YAML e o cria como um recurso versionado e reutilizável. Em seguida, o Image Builder executa seus fluxos de trabalho ao criar, testar e distribuir suas imagens.

Os fluxos de trabalho oferecem controle direto sobre o processo de criação de imagens. Você decide quais etapas são executadas, em que ordem, o que cada etapa faz quando falha e se o Image Builder reverte uma etapa que falhou. Você pode começar com um fluxo de trabalho gerenciado pela Amazon, cloná-lo e personalizá-lo ou escrever seu próprio do zero.

Benefícios do fluxo de trabalho de imagem
  • Com os fluxos de trabalho de imagem, você tem mais flexibilidade, visibilidade e controle sobre o processo de criação de imagens.

  • Você pode adicionar etapas personalizadas do fluxo de trabalho ao definir o documento do fluxo de trabalho ou optar por usar o fluxo de trabalho padrão do Image Builder.

  • Você pode excluir as etapas do fluxo de trabalho que o Image Builder inclui nos fluxos de trabalho de imagem padrão.

  • Você também pode criar fluxos de trabalho somente de teste que ignoram totalmente o processo de compilação. Você pode fazer o mesmo para criar fluxos de trabalho somente para compilação ou somente para distribuição.

nota

Você não pode modificar um fluxo de trabalho existente, mas pode cloná-lo ou criar uma nova versão.

Framework do fluxo de trabalho: estágios

O Image Builder organiza o processo de criação da imagem em três estágios. Cada estágio executa um fluxo de trabalho do tipo correspondente. Os estágios são executados em uma ordem fixa, e um estágio começa somente após o término bem-sucedido do estágio anterior.

A tabela a seguir lista o comportamento padrão de cada estágio. Como você define as etapas em cada fluxo de trabalho, você pode personalizar o que um estágio faz.

Fases do fluxo de trabalho do Image

Ordem

Estágio

Tipo de fluxo de trabalho

O que ele faz (padrão)

1

Compilar

BUILD

Inicia uma instância de compilação, executa seus componentes de compilação e cria uma imagem (AMI ou imagem de contêiner) da instância.

2

Teste

TEST

Inicia uma instância de teste a partir da nova imagem, executa seus componentes de teste e, opcionalmente, coleta as descobertas do escaneamento de imagens.

3

Distribuição

DISTRIBUTION

Copia a imagem para regiões e contas de destino, modifica os atributos da imagem e aplica configurações de pós-distribuição, como modelos de lançamento e configurações de licença.

Você pode executar um fluxo de trabalho somente em alguns estágios. Por exemplo, você pode pular o estágio de criação para testar ou distribuir uma imagem que já existe ou pular o estágio de teste para criar e distribuir sem testar. Para pular a fase de criação ou teste, omita um fluxo de trabalho desse tipo do funil ou da solicitação de imagem.

nota

O fluxo de trabalho de distribuição é opcional. Se você omiti-la, o Image Builder não ignorará a distribuição — ele ainda distribuirá sua AMI executando a configuração de distribuição que você anexa ao pipeline ou à imagem. Adicione 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. Para ignorar totalmente a distribuição, forneça uma configuração de distribuição nula ou vazia.

nota

Um pipeline de imagem ou uma solicitação de imagem pode incluir no máximo um fluxo de trabalho de criação e um fluxo de trabalho de distribuição. Também pode incluir um ou mais fluxos de trabalho de teste. O número total de fluxos de trabalho não pode exceder dez. Por exemplo, você pode combinar um fluxo de trabalho de criação e um fluxo de trabalho de distribuição com até oito fluxos de trabalho de teste.

Como um fluxo de trabalho é executado

Um fluxo de trabalho executa suas etapas na ordem em que você as define no documento YAML. Cada etapa executa uma ação, como iniciar uma instância ou executar componentes.

Resultados da etapa

Cada etapa termina em um dos seguintes estados.

Resultados da etapa do fluxo de trabalho

Estado

Significado

COMPLETED

A etapa foi concluída com sucesso.

SKIPPED

Uma if declaração condicional na etapa avaliadafalse, então o Image Builder ignorou a etapa.

FAILED

A etapa não foi concluída com êxito.

WAITING

Uma WaitForAction etapa é pausada, aguardando uma ação externa.

TIMED_OUT

A etapa durou mais do que seu timeoutSeconds valor.

Tratamento de falhas

O onFailure atributo em cada etapa controla o que acontece quando uma etapa falha.

  • Abort(padrão) — O Image Builder falha na etapa, falha no fluxo de trabalho e não executa mais nenhuma etapa. Se a reversão estiver ativada, a reversão começa na etapa que falhou e retrocede nas etapas anteriores.

  • Continue— O Image Builder falha na etapa, mas executa as etapas restantes. Nenhuma reversão ocorre.

Reversão

Quando uma etapa falha com onFailure: Abort e rollbackEnabled: true (o padrão), o Image Builder reverte as etapas concluídas na ordem inversa, começando com a etapa que falhou. Nem toda ação pode ser revertida. Uma ação sem reversão registra um status de. NO_ROLLBACK

Monitore a execução do fluxo de trabalho com a Amazon EventBridge

O Image Builder emite EventBridge eventos da Amazon à medida que seus fluxos de trabalho são executados, para que você possa reagir ao progresso e às etapas que precisam de atenção. Por exemplo, uma WaitForAction etapa publica um evento com o tipo EC2 Image Builder Workflow Step Waiting de detalhe no barramento de eventos padrão. Você pode encaminhar esse evento para um destino, como uma função do Lambda ou um tópico do Amazon SNS, para conduzir um processo de aprovação. Para obter mais informações sobre como o Image Builder funciona com EventBridge, consulteEventBridge Integração da Amazon com o Image Builder.

Para acompanhar o progresso em cada etapa de forma programática, use as operações, ListWorkflowExecutions GetWorkflowExecutionListWorkflowStepExecutions, e da API. GetWorkflowStepExecution

Restrições de recursos do fluxo de trabalho

Seus documentos e configurações de fluxo de trabalho devem permanecer dentro dos seguintes limites padrão.

Restrições de recursos do fluxo de trabalho

Restrição

Limite padrão

Observações

Etapas por documento de fluxo de trabalho

15

As etapas são executadas na ordem do documento.

Saídas por documento de fluxo de trabalho

25

As saídas passam valores para fluxos de trabalho posteriores.

Parâmetros por documento de fluxo de trabalho

25

Entradas que o chamador pode definir.

Comprimento do valor do parâmetro

1,024 caracteres

Por valor de parâmetro.

Tamanho do documento em linha () data

16.000 bytes

Use a opção uri (Amazon S3) para documentos maiores.

Fluxos de trabalho por imagem ou pipeline

10

No máximo 1 compilação e 1 distribuição, além de fluxos de trabalho de teste, para um total combinado de 10.

Os recursos do fluxo de trabalho são imutáveis. Para alterar um fluxo de trabalho, crie uma nova versão ou clone-a. O Image Builder mantém todas as versões, para que você possa rastrear qual fluxo de trabalho produziu cada imagem.

Acesso ao serviço

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.

Use fluxos de trabalho gerenciados para suas imagens

AWS cria e mantém fluxos de trabalho gerenciados. Ao usar fluxos de trabalho gerenciados em seus pipelines de imagem ou para a criação única de imagens, você pode selecionar o nome de recurso da Amazon (ARN) do fluxo de trabalho gerenciado que deseja usar. A Amazon fornece as versões mais recentes que têm patches e outras atualizações aplicadas. Para obter uma lista de fluxos de trabalho gerenciadosListar fluxos de trabalho de imagem, consulte e filtre Owner = Amazon (console).

Você pode escolher um fluxo de trabalho gerenciado com base na velocidade de criação e nos requisitos de validação. Veja a seguir exemplos de tipos de fluxo de trabalho gerenciado:

Fluxos de trabalho gerenciados padrão (padrão)

Os fluxos de trabalho gerenciados padrão incluem etapas abrangentes para criar, testar e validar suas imagens com verificações completas de status do EC2.

A seguir estão os fluxos de trabalho gerenciados padrão:

  • build-image — Fluxo de trabalho padrão de criação da Amazon-managed AMI.

  • test-image — Fluxo de trabalho de teste de Amazon-managed AMI padrão.

  • build-container — Fluxo de trabalho padrão de criação de Amazon-managed contêineres.

  • test-container — Fluxo de trabalho padrão de teste de Amazon-managed contêiner.

Fluxos de trabalho gerenciados expressos

Os fluxos de trabalho gerenciados expressos incluem apenas etapas essenciais e reduzem o tempo de criação de imagens.

A seguir estão os fluxos de trabalho gerenciados expressamente:

  • express-build-image — Fluxo de trabalho de criação do Express Amazon-managed AMI que reduz o tempo de criação. Espera somente pelo estado de execução da instância, em vez das verificações completas de status do EC2, e ignora a coleta de metadados da imagem.

  • express-build-container — Fluxo de trabalho expresso de criação de Amazon-managed contêineres que reduz o tempo de construção. Espera somente pelo estado de execução da instância em vez das verificações completas de status do EC2.

  • express-test-image — Fluxo de trabalho de teste de Amazon-managed AMI expresso que reduz o tempo de teste. Espera somente pelo estado de execução da instância, em vez das verificações completas de status do EC2, e ignora a coleta de descobertas da verificação de segurança.