Crie um componente personalizado com o EC2 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á.

Crie um componente personalizado com o EC2 Image Builder

Depois de concluir o documento do componente, você pode usá-lo para criar um componente personalizado que suas receitas do Image Builder possam usar. Você pode criar um componente personalizado no console do Image Builder, na API ou nos SDKs 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 receitas, consulteTutorial: Crie um componente personalizado com parâmetros de entrada do EC2 Image Builder.

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

Crie um componente personalizado no console do Image Builder

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

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

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

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

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

    3. Nome do componente. Insira um nome para o componente.

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

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

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

  4. 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. Crie um documento de componente YAML para componentes personalizados no Image Builder

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

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

  2. 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 Controle de versão semântico no Image Builder.

Crie um componente personalizado a partir do AWS CLI

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://my-s3-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 nas etapas anteriores. 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 ação da API Image Builder. Para revisar os parâmetros de solicitação de comando da API, consulte o CreateComponentcomando na Referência da API do EC2 Image Builder.

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://my-s3-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" } }
    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 e o Linux usa a barra (/).

  2. 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 (\) para se referir ao caminho do diretório e o Linux usa 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://my-s3-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 nas etapas anteriores. 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 ação da API Image Builder. Para revisar os parâmetros de solicitação de comando da API, consulte o CreateComponentcomando na Referência da API do EC2 Image Builder.

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://my-s3-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 (\) para se referir ao caminho do diretório e o Linux usa a barra (/).

  2. 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 (\) para se referir ao caminho do diretório e o Linux usa a barra (/).

AWSTOE controle de versão de componentes para atualizações do AWS CLI

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 ‭Controle de versão semântico no Image Builder‬.

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

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 paramy-s3-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://my-s3-bucket/AdminConfig.ps1", "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c" }

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

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