

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 pipeline de imagens da AMI a partir do AWS CLI
<a name="cli-create-image-pipeline"></a>

Para criar um pipeline de imagem a partir do AWS CLI, execute o **create-image-pipeline** comando com as opções de configuração que se aplicam ao seu pipeline. Você tem a opção de criar um arquivo JSON que contém toda a configuração do pipeline ou especificar a configuração em tempo de execução. Esta seção usa o método do arquivo de configuração JSON para simplificar o comando.

A frequência com que seu pipeline cria uma nova imagem para incorporar quaisquer atualizações pendentes da imagem base e dos componentes depende do `schedule` que você configurou. Cada `schedule` tem os atributos a seguir:
+ `scheduleExpression`: define o cronograma de execução do pipeline para avaliar `pipelineExecutionStartCondition` e determinar se ele deve iniciar uma compilação. A programação é configurada com expressões cron. Para obter mais informações sobre como formatar uma expressão cron no Image Builder, consulte [Usar expressões cron no Image Builder](cron-expressions.md).
+ `pipelineExecutionStartCondition`: determina se seu pipeline deve iniciar a compilação. Os valores válidos são:
  + `EXPRESSION_MATCH_ONLY`: seu pipeline compilará uma imagem sempre que a expressão cron corresponder à hora atual. 
  + `EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE`— seu pipeline cria uma nova imagem somente quando a expressão do cronograma corresponde e há atualizações pendentes na imagem base ou nos componentes. Se nenhuma atualização estiver pendente, a compilação será ignorada. Para criar imediatamente sem esperar por atualizações, execute o pipeline manualmente.

Quando você executa o **create-image-pipeline** comando no AWS CLI, muitos dos recursos de configuração são opcionais. No entanto, alguns dos recursos têm requisitos condicionais, dependendo do tipo de imagem que o pipeline cria. Os seguintes identificadores de recursos são necessários para os pipelines de imagem da AMI:
+ ARN da fórmula da imagem
+ ARN de configuração de infraestrutura

 

**Exemplo: criar uma imagem do Windows 2019**  
Este exemplo configura um pipeline que está programado para ser executado uma vez por semana no domingo. O arquivo de configuração mostrado na primeira etapa usa os recursos existentes para a receita de imagem, infraestrutura e configuração de distribuição, junto com outras configurações para criar uma imagem do Windows 2019.

1. 

**Crie um arquivo de configuração (opcional)**

   Este exemplo usa um arquivo de configuração chamado `create-image-pipeline.json` para definir as configurações em um só lugar. Como alternativa, você pode usar as opções da linha de comando ao executar o comando para especificar todos os detalhes que são mostrados aqui no arquivo de configuração.

   ```
   {
   	"name": "{{ExampleWindows2019Pipeline}}",
   	"description": "{{Builds Windows 2019 Images}}",
   	"enhancedImageMetadataEnabled": true,
   	"imageRecipeArn": "arn:aws:imagebuilder:us-west-{{2:123456789012}}:image-recipe/{{my-example-recipe}}/2020.12.03",
   	"infrastructureConfigurationArn": "arn:aws:imagebuilder:us-west-{{2:123456789012}}:infrastructure-configuration/{{my-example-infrastructure-configuration}}",
   	"distributionConfigurationArn": "arn:aws:imagebuilder:us-west-{{2:123456789012}}:distribution-configuration/{{my-example-distribution-configuration}}",
   	"imageTestsConfiguration": {
   		"imageTestsEnabled": true,
   		"timeoutMinutes": 60
   	},
   	"schedule": {
   		"scheduleExpression": "cron(0 0 * * SUN *)",
   		"pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE"
   	},
   	"status": "ENABLED"
   }
   ```
**nota**  
É necessário incluir a notação `file://` no início do caminho do arquivo JSON.
O caminho para o arquivo JSON deve seguir a convenção apropriada para o sistema operacional de base no qual você está executando o comando. Por exemplo, o Windows usa a barra invertida (\\) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).

1. 

**Execute o comando para criar uma imagem**

   Este exemplo usa o arquivo de configuração criado na primeira etapa como entrada para o `create-image-pipeline` comando. Como alternativa, você pode especificar as configurações e os recursos do seu pipeline diretamente ao executar o comando. *Para obter mais informações, consulte [create-image-pipeline](https://docs.aws.amazon.com/cli/latest/reference/imagebuilder/create-image-pipeline.html) na Referência.AWS CLI *

   ```
   aws imagebuilder create-image-pipeline --cli-input-json file://create-image-pipeline.json
   ```

**Exemplo: criar um pipeline com digitalização de imagens e fluxos de trabalho personalizados**  
Este exemplo configura um pipeline que verifica a cada sete dias e é executado somente quando as atualizações de dependências estão disponíveis. O arquivo de configuração usa os recursos existentes para a receita e a infraestrutura da imagem. Ele permite a [verificação de vulnerabilidades](https://docs.aws.amazon.com/imagebuilder/latest/userguide/integ-inspector.html) com o Amazon Inspector. A configuração também especifica [fluxos de trabalho personalizados](https://docs.aws.amazon.com/imagebuilder/latest/userguide/manage-image-workflows.html) com uma função de execução. Grupos paralelos executam testes funcionais e de segurança ao mesmo tempo. Os registros do pipeline são enviados para [grupos de CloudWatch registros](https://docs.aws.amazon.com/imagebuilder/latest/userguide/monitor-cwlogs.html) personalizados.

1. 

**Criar um arquivo de configuração**

   Crie um arquivo JSON chamado`create-pipeline-with-workflows.json`. Esse arquivo define a configuração do pipeline com a digitalização de imagens ativada e fluxos de trabalho de teste personalizados. Substitua os valores do espaço reservado por seus próprios ARNs de recursos.

   ```
   {
   	"name": "{{MyPipelineWithScanning}}",
   	"description": "{{Pipeline with vulnerability scanning and custom workflows}}",
   	"imageRecipeArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:image-recipe/{{my-recipe}}/1.0.0",
   	"infrastructureConfigurationArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:infrastructure-configuration/{{my-infra-config}}",
   	"distributionConfigurationArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:distribution-configuration/{{my-dist-config}}",
   	"imageScanningConfiguration": {
   		"imageScanningEnabled": true
   	},
   	"workflows": [
   		{
   			"workflowArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:workflow/build/{{my-build-workflow}}/1.0.0"
   		},
   		{
   			"workflowArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:workflow/test/{{my-security-scan}}/1.0.0",
   			"onFailure": "ABORT",
   			"parallelGroup": "security"
   		},
   		{
   			"workflowArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:workflow/test/{{my-compliance-check}}/1.0.0",
   			"onFailure": "ABORT",
   			"parallelGroup": "security"
   		},
   		{
   			"workflowArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:workflow/test/{{my-functional-test}}/1.0.0",
   			"onFailure": "CONTINUE",
   			"parallelGroup": "functional"
   		},
   		{
   			"workflowArn": "arn:aws:imagebuilder:{{us-west-2}}:{{123456789012}}:workflow/test/{{my-performance-test}}/1.0.0",
   			"onFailure": "CONTINUE",
   			"parallelGroup": "functional"
   		}
   	],
   	"executionRole": "arn:aws:iam::{{123456789012}}:role/{{ImageBuilderExecutionRole}}",
   	"loggingConfiguration": {
   		"imageLogGroupName": "/aws/imagebuilder/{{my-pipeline-image-logs}}",
   		"pipelineLogGroupName": "/aws/imagebuilder/{{my-pipeline-execution-logs}}"
   	},
   	"imageTestsConfiguration": {
   		"imageTestsEnabled": true,
   		"timeoutMinutes": 60
   	},
   	"schedule": {
   		"scheduleExpression": "rate(7 days)",
   		"pipelineExecutionStartCondition": "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE"
   	},
   	"status": "ENABLED"
   }
   ```
**nota**  
É necessário incluir a notação `file://` no início do caminho do arquivo JSON.
O caminho para o arquivo JSON deve seguir a convenção apropriada para o sistema operacional de base no qual você está executando o comando. Por exemplo, o Windows usa a barra invertida (\\) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).

1. 

**Execute o comando**

   ```
   aws imagebuilder create-image-pipeline --cli-input-json file://create-pipeline-with-workflows.json
   ```