

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á.

# Desenvolver componentes personalizados para imagens do Image Builder
<a name="create-custom-components"></a>

Você pode criar componentes próprios para personalizar imagens do Image Builder de acordo com suas especificações exatas. Use as etapas a seguir para desenvolver componentes personalizados para sua imagem ou fórmulas de contêiner do Image Builder.

1. Se você quiser desenvolver seu documento de componente e validá-lo localmente, você pode instalar o aplicativo AWS Task Orchestrator and Executor (AWSTOE) e configurá-lo em sua máquina local. Para obter mais informações, consulte [Configuração manual para desenvolver componentes personalizados com AWSTOE](toe-get-started.md).

1. Crie um documento de componente que use a estrutura do documento de AWSTOE componente. Para obter mais informações sobre o framework de documentos, consulte [Use a estrutura de documentos de AWSTOE componentes para componentes personalizados](toe-use-documents.md).

1. Especifique o documento de componente ao criar um componente personalizado. Para obter mais informações, consulte [Criar um componente personalizado com o Image Builder](create-component.md).

**Topics**
+ [Criar um documento de componente YAML para componentes personalizados no Image Builder](create-component-yaml.md)
+ [Criar um componente personalizado com o Image Builder](create-component.md)

# Criar um documento de componente YAML para componentes personalizados no Image Builder
<a name="create-component-yaml"></a>

Para compilar um componente, você deve fornecer um documento de componente de aplicação YAML ou JSON. O documento contém o código executado durante as fases e etapas que você define para tornar sua imagem personalizada.

Alguns dos exemplos nesta seção criam um componente de construção que chama o módulo de `UpdateOS` ação no aplicativo de gerenciamento de AWSTOE componentes. O módulo atualiza o sistema operacional. Para obter mais informações sobre o módulo de ação `UpdateOS`, consulte [UpdateOS](toe-action-modules.md#action-modules-updateos).

O exemplo do sistema operacional macOS usa o módulo de ação `ExecuteBash` para instalar e verificar o utilitário `wget`. O módulo de ação `UpdateOS` não é compatível com o macOS. Para obter mais informações sobre o módulo de ação `ExecuteBash`, consulte [ExecuteBash](toe-action-modules.md#action-modules-executebash). Para obter mais informações sobre as fases, as etapas e a sintaxe dos documentos de componente da aplicação AWSTOE , consulte [Use documents in AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**nota**  
O Image Builder determina o tipo de componente com base nas fases definidas no documento do componente, conforme a seguir:  
**Compilação**: esse é o tipo de componente padrão. Qualquer coisa que não seja classificada como componente de teste é um componente de compilação. Esse tipo de componente é executado durante o *estágio de compilação* da imagem. Se esse componente de compilação tiver uma fase de `test` definida, essa fase será executada durante o *estágio de teste*.
**Teste**: para se qualificar como um componente de teste, o documento do componente deve incluir somente uma fase, denominada `test`. Para testes relacionados às configurações de componentes de compilação, recomendamos que você não use um componente de teste independente. Em vez disso, use a fase `test` no componente de compilação associado.
Para obter mais informações sobre como o Image Builder usa estágios e fases para gerenciar o fluxo de trabalho de componentes em seu processo de compilação, consulte [Usar componentes para personalizar sua imagem do Image Builder](manage-components.md).

Para criar um componente do aplicativo YAML para um aplicativo de amostra, siga as etapas que correspondem à sua plataforma de sistema operacional de imagem. 

------
#### [ Linux ]

**Criar um arquivo de componente YAML**  
Use uma ferramenta de edição de arquivos para criar o documento do componente. Os exemplos de documentação usam um arquivo chamado `update-linux-os.yaml`, com o seguinte conteúdo:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

**dica**  
Use uma ferramenta como esse [validador YAML](https://jsonformatter.org/yaml-validator) on-line ou uma extensão lint YAML em seu ambiente de código para verificar se seu YAML está bem formado.

------
#### [ Windows ]

**Criar um arquivo de componente YAML**  
Use uma ferramenta de edição de arquivos para criar o documento do componente. Os exemplos de documentação usam um arquivo chamado `update-windows-os.yaml`, com o seguinte conteúdo:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

**dica**  
Use uma ferramenta como esse [validador YAML](https://jsonformatter.org/yaml-validator) on-line ou uma extensão lint YAML em seu ambiente de código para verificar se seu YAML está bem formado.

------
#### [ macOS ]

**Criar um arquivo de componente YAML**  
Use uma ferramenta de edição de arquivos para criar o documento do componente. Os exemplos de documentação usam um arquivo chamado `wget-macos.yaml`, com o seguinte conteúdo:

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

**dica**  
Use uma ferramenta como esse [validador YAML](https://jsonformatter.org/yaml-validator) on-line ou uma extensão lint YAML em seu ambiente de código para verificar se seu YAML está bem formado.

------

# Criar um componente personalizado com o Image Builder
<a name="create-component"></a>

Depois de concluir o documento do componente, você pode usá-lo para criar um componente personalizado que suas fórmulas do Image Builder possam usar. Você pode criar um componente personalizado no console do Image Builder SDKs, na API ou na linha de comando. Para obter mais informações sobre como criar um componente personalizado com parâmetros de entrada e usá-lo em suas fórmulas, consulte [Tutorial: criar um componente personalizado com parâmetros de entrada](tutorial-component-parameters.md).

As seções a seguir mostram como criar componentes com o console ou a AWS CLI.

**Topics**
+ [Criar um componente personalizado com o console](#create-component-ib-console)
+ [Crie um componente personalizado a partir do AWS CLI](#create-component-ib-cli)
+ [Importe um script para criar um componente a partir do AWS CLI](#import-component-cli)
+ [Gerenciamento automático de versões de compilação](#auto-build-version-management)
+ [Usando referências de versão](#using-version-references)

## Criar um componente personalizado com o console
<a name="create-component-ib-console"></a>

Para criar um componente do AWSTOE aplicativo a partir do console do Image Builder, siga estas etapas:

1. Abra o console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)do EC2 Image Builder em.

1. Selecione **Componentes** no painel de navegação. Em seguida, selecione **Criar componente**.

1. Na página **Criar componente**, em **Detalhes do componente**, insira o seguinte:

   1. **Sistema operacional da imagem (OS)**. Especifique o sistema operacional com o qual o componente é compatível.

   1. **Categoria de componente**. No menu suspenso, selecione o tipo de componente de compilação ou teste que você está criando.

   1. **Nome do componente**. Insira um nome para o componente.

   1. **Versão do componente**. Insira o número da versão do componente.

   1. **Descrição**. Fornece uma descrição opcional para ajudá-lo a identificar o componente.

   1. **Descrição da alteração**. Fornece uma descrição opcional para ajudá-lo a entender as alterações feitas nessa versão do componente.

1. Na seção **Documento de definição**, a opção padrão é **Definir conteúdo do documento**. O documento do componente define as ações que o Image Builder executa nas instâncias de construção e teste para criar sua imagem.

   Na caixa **Conteúdo**, insira o conteúdo do documento do componente YAML. Para começar com um exemplo do *Hello World* para Linux, escolha a opção **Usar exemplo**. Para saber mais sobre como criar um documento do componente YAML ou copiar e colar o exemplo do *UpdateOS* dessa página, consulte. [Criar um documento de componente YAML para componentes personalizados no Image Builder](create-component-yaml.md)

1. Depois de inserir os detalhes do componente, selecione **Criar componente**.
**nota**  
Para ver seu novo componente ao criar ou atualizar uma fórmula, aplique o filtro **De minha propriedade** à lista de componentes da compilação ou teste. O filtro está localizado na parte superior da lista de componentes, ao lado da caixa de pesquisa.

1. Para excluir um componente, a partir da página **Componentes**, marque a caixa de seleção ao lado do componente que você deseja excluir. No menu suspenso **Ações**, selecione **Excluir componente**.

**Atualizar um componente**  
Para criar uma nova versão do componente, siga estas etapas:

1. Dependendo de onde você começa:
   + Na página da lista de **Componentes**: marque a caixa de seleção ao lado do nome do componente e selecione **Criar nova versão** no menu **Ações**.
   + Na página de detalhes do componente: escolha o botão **Criar nova versão** no canto superior direito do cabeçalho.

1. As informações do componente já estão preenchidas com os valores atuais quando a página **Criar componente** é exibida. Siga as etapas de criação de um componente para atualizar o componente. Isso garante que você insira uma versão semântica exclusiva na **versão do Componente**. Para saber mais sobre o versionamento semântico dos recursos do Image Builder, consulte [Versionamento semântico no Image Builder](ibhow-semantic-versioning.md).

## Crie um componente personalizado a partir do AWS CLI
<a name="create-component-ib-cli"></a>

Nesta seção, você aprenderá a configurar e usar os comandos do Image Builder no AWS CLI para criar um componente de AWSTOE aplicativo, da seguinte forma.
+ Carregue o documento do componente do YAML em um bucket do S3 que você possa referenciar a partir da linha de comandos.
+ Crie o componente do AWSTOE aplicativo com o **create-component** comando.
+ Liste as versões do componente com o comando **list-components** e um filtro de nome para ver quais versões já existem. Você pode usar a saída para determinar qual deve ser a próxima versão para atualizações.

Para criar um componente de AWSTOE aplicativo a partir de um documento YAML de entrada, siga as etapas que correspondem à sua plataforma de sistema operacional de imagem.

------
#### [ Linux ]

**Armazene seu documento do componente do aplicativo no Amazon S3**

Você pode usar um bucket do S3 como repositório para o documento de origem do componente do AWSTOE aplicativo. Para armazenar seu documento do componente, siga estas etapas:
+ 

**Carregue o documento no Amazon S3**

  *Se seu documento for menor que 64 KB, você pode ignorar esta etapa.* Documentos com 64 KB ou mais devem ser armazenados no Amazon S3.

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**Crie um componente a partir do documento do YAML**

Para simplificar o **create-component** comando que você usa no AWS CLI, crie um arquivo JSON que contenha todos os parâmetros do componente que você deseja passar para o comando. Inclua a localização do documento `update-linux-os.yaml` que você criou anteriormente. O par de chave–valor `uri` contém a referência do arquivo.
**nota**  
A convenção de nomenclatura para os valores de dados no arquivo JSON segue o padrão especificado para os parâmetros de solicitação de operação da API Image Builder. Para revisar os parâmetros de solicitação de comando da API, consulte o comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) na *Referência EC2 Image Builder API*.  
Para fornecer os valores dos dados como parâmetros da linha de comando, consulte os nomes dos parâmetros especificados na *AWS CLI Referência de comando*.

1. 

**Criar um arquivo JSON de entrada da CLI**

   Use uma ferramenta de edição de arquivos para criar um arquivo chamado `create-update-linux-os-component.json`. Inclua o seguinte conteúdo:

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**Criar o componente**

   Use o comando a seguir para criar o componente, fazendo referência ao nome do arquivo JSON que você criou na etapa anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**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 (\$1) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).

------
#### [ Windows ]

**Armazene seu documento do componente do aplicativo no Amazon S3**

Você pode usar um bucket do S3 como repositório para o documento de origem do componente do AWSTOE aplicativo. Para armazenar seu documento do componente, siga estas etapas:
+ 

**Carregue o documento no Amazon S3**

  *Se seu documento for menor que 64 KB, você pode ignorar esta etapa.* Documentos com 64 KB ou mais devem ser armazenados no Amazon S3.

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**Crie um componente a partir do documento do YAML**

Para simplificar o **create-component** comando que você usa no AWS CLI, crie um arquivo JSON que contenha todos os parâmetros do componente que você deseja passar para o comando. Inclua a localização do documento `update-windows-os.yaml` que você criou anteriormente. O par de chave–valor `uri` contém a referência do arquivo.
**nota**  
A convenção de nomenclatura para os valores de dados no arquivo JSON segue o padrão especificado para os parâmetros de solicitação de operação da API Image Builder. Para revisar os parâmetros de solicitação de comando da API, consulte o comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) na *Referência EC2 Image Builder API*.  
Para fornecer os valores dos dados como parâmetros da linha de comando, consulte os nomes dos parâmetros especificados na *AWS CLI Referência de comando*..

1. 

**Criar um arquivo JSON de entrada da CLI**

   Use uma ferramenta de edição de arquivos para criar um arquivo chamado `create-update-windows-os-component.json`. Inclua o seguinte conteúdo:

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**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 (\$1) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).

1. 

**Criar o componente**

   Use o comando a seguir para criar o componente, fazendo referência ao nome do arquivo JSON que você criou na etapa anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**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 (\$1) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).

------
#### [ macOS ]

**Armazene seu documento do componente do aplicativo no Amazon S3**

Você pode usar um bucket do S3 como repositório para o documento de origem do componente do AWSTOE aplicativo. Para armazenar seu documento do componente, siga estas etapas:
+ 

**Carregue o documento no Amazon S3**

  *Se seu documento for menor que 64 KB, você pode ignorar esta etapa.* Documentos com 64 KB ou mais devem ser armazenados no Amazon S3.

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**Crie um componente a partir do documento do YAML**

Para simplificar o **create-component** comando que você usa no AWS CLI, crie um arquivo JSON que contenha todos os parâmetros do componente que você deseja passar para o comando. Inclua a localização do documento `wget-macos.yaml` que você criou anteriormente. O par de chave–valor `uri` contém a referência do arquivo.
**nota**  
A convenção de nomenclatura para os valores de dados no arquivo JSON segue o padrão especificado para os parâmetros de solicitação de operação da API Image Builder. Para revisar os parâmetros de solicitação de comando da API, consulte o comando [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) na *Referência EC2 Image Builder API*.  
Para fornecer os valores dos dados como parâmetros da linha de comando, consulte os nomes dos parâmetros especificados na *AWS CLI Referência de comando*.

1. 

**Criar um arquivo JSON de entrada da CLI**

   Use uma ferramenta de edição de arquivos para criar um arquivo chamado `install-wget-macos-component.json`. Inclua o seguinte conteúdo:

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**Criar o componente**

   Use o comando a seguir para criar o componente, fazendo referência ao nome do arquivo JSON que você criou na etapa anterior:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**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 (\$1) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).

------

### AWSTOE controle de versão de componentes para atualizações do AWS CLI
<a name="component-update-cli"></a>

AWSTOE os nomes e versões dos componentes são incorporados no Amazon Resource Name (ARN) do componente, após o prefixo do componente. Cada nova versão de um componente tem seu próprio ARN exclusivo. As etapas para criar uma nova versão são exatamente iguais às etapas para criar um novo componente, desde que a versão semântica seja exclusiva para aquele nome de componente. Para saber mais sobre o versionamento semântico dos recursos do Image Builder, consulte ‭[Versionamento semântico no Image Builder](ibhow-semantic-versioning.md)‬.

Para garantir que você atribua a próxima versão lógica, primeiro obtenha uma lista das versões existentes do componente que você deseja alterar. Use o **list-components** comando com o AWS CLI, e filtre pelo nome.

Neste exemplo, você filtra pelo nome do componente que você criou nos exemplos anteriores do Linux. Para listar o componente que você criou, use o valor do parâmetro `name` do arquivo JSON que você usou no comando **create-component**.

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

Com base nos resultados, você pode determinar qual deve ser a próxima versão.

## Importe um script para criar um componente a partir do AWS CLI
<a name="import-component-cli"></a>

Em alguns cenários, talvez seja mais fácil começar com um script preexistente. Para este cenário, você pode usar o exemplo a seguir. 

Este exemplo pressupõe que você tem um arquivo chamado `import-component.json` (conforme mostrado). Observe que o arquivo faz referência direta a um PowerShell script chamado `AdminConfig.ps1` that já foi enviado para`amzn-s3-demo-source-bucket`. No momento, o `SHELL` é compatível com o componente `format`. 

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

Para criar o componente usando um script importado, execute o comando a seguir.

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## Gerenciamento automático de versões de compilação
<a name="auto-build-version-management"></a>

Quando você cria um componente com o mesmo nome e versão semântica de um componente existente, o Image Builder incrementa automaticamente a versão de compilação (por exemplo, de `/1` para `/2``/3`, para e assim por diante). Isso permite que você faça atualizações iterativas em seus componentes sem gerenciar manualmente os números de versão, o que é especialmente útil em CI/CD pipelines e infrastructure-as-code implantações. Se o conteúdo do componente for idêntico à versão de compilação anterior, o Image Builder retornará `ResourceAlreadyExistsException` para evitar que componentes duplicados consumam sua cota de serviço. 

## Usando referências de versão
<a name="using-version-references"></a>

Quando você cria ou recupera um componente, o Image Builder fornece automaticamente padrões de versão pré-construídos ARNs com caracteres curinga no objeto. latestVersionReferences Essas referências facilitam o uso das versões mais recentes de seus componentes em receitas e pipelines sem análise ARNs manual. 

**Escolhendo a referência de versão correta**
+ latestVersionArn (x.x.x) - Sempre use a versão mais recente absoluta do componente.
+ atestMajorVersionArn (1.x.x) - Use as versões secundárias e de patch mais recentes em uma versão principal.
+ latestMinorVersionArn (1.2.x) - Use somente a versão mais recente do patch.
+ latestPatchVersionArn (1.2.3) - Faça referência a uma versão semântica específica, mas obtenha a versão de compilação mais recente.

**nota**  
Para evitar cobranças inesperadas, certifique-se de limpar os recursos e pipelines que você criou com base nos exemplos deste guia. Para obter mais informações sobre exclusão de recursos no Image Builder, consulte [Excluir recursos desatualizados ou não utilizados do Image Builder](delete-resources.md).