

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

# Configuração manual para desenvolver componentes personalizados com AWSTOE
<a name="toe-get-started"></a>

O aplicativo AWS Task Orchestrator and Executor (AWSTOE) é um aplicativo independente que cria, valida e executa comandos dentro de uma estrutura de definição de componentes. AWS os serviços podem ser usados AWSTOE para orquestrar fluxos de trabalho, instalar software, modificar configurações do sistema e testar compilações de imagens.

Siga estas etapas para instalar manualmente o AWSTOE aplicativo e usá-lo como um aplicativo independente para desenvolver componentes personalizados. O Image Builder cuida dessas etapas para você, se você usar o console ou os AWS CLI comandos do Image Builder para criar componentes personalizados. Para obter mais informações, consulte [Criar componentes personalizados com o Image Builder](create-component.md).

**Topics**
+ [Verifique a assinatura do download da AWSTOE instalação](awstoe-verify-sig.md)
+ [Etapa 1: instalar AWSTOE](#toe-start-install)
+ [Etapa 2: definir AWS credenciais](#toe-start-credentials)
+ [Etapa 3: Desenvolver documentos de componentes localmente](#toe-start-develop)
+ [Etapa 4: Validar componentes AWSTOE](#toe-start-validate)
+ [Etapa 5: Executar AWSTOE componentes](#toe-start-run)

## Etapa 1: instalar AWSTOE
<a name="toe-start-install"></a>

Para desenvolver componentes localmente, baixe e instale o AWSTOE aplicativo.

1. 

**Baixe o AWSTOE aplicativo**

   Para instalar AWSTOE, escolha o link de download apropriado para sua arquitetura e plataforma. Para obter a lista completa de links para download de aplicativos, consulte [AWSTOE downloads](toe-component-manager.md#toe-downloads)
**Importante**  
AWS está eliminando gradualmente o suporte para as versões 1.0 e 1.1 do TLS. Para acessar o bucket do S3 para AWSTOE downloads, seu software cliente deve usar o TLS versão 1.2 ou posterior. Para obter mais informações, consulte esta [AWS publicação do blog de Segurança](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

1. 

**Verifique a assinatura**

   As etapas para verificar seu download dependem da plataforma do servidor em que você executa o AWSTOE aplicativo depois de instalá-lo. Para verificar seu download em um servidor Linux, consulte[Verificar a assinatura no Linux ou no macOS](awstoe-verify-sig.md#awstoe-verify-sig-linux). Para verificar seu download em um servidor Windows, consulte[Verifique a assinatura no Windows](awstoe-verify-sig.md#awstoe-verify-sig-win).

**nota**  
AWSTOE é invocado diretamente de seu local de download. Não há necessidade de uma etapa de instalação separada. Isso também significa que AWSTOE pode fazer alterações no ambiente local.  
Para garantir que você isole as alterações durante o desenvolvimento do componente, recomendamos que você use uma EC2 instância para desenvolver e testar AWSTOE componentes.

## Etapa 2: definir AWS credenciais
<a name="toe-start-credentials"></a>

 AWSTOE requer AWS credenciais para se conectar a outros Serviços da AWS, como Amazon S3 e CloudWatch Amazon, ao executar tarefas, como: 
+ Baixar AWSTOE documentos de um caminho do Amazon S3 fornecido pelo usuário.
+ Módulos de execução `S3Download` ou ação `S3Upload`.
+ Streaming de registros para CloudWatch, quando ativado.

Se você estiver executando AWSTOE em uma EC2 instância, a execução AWSTOE usa as mesmas permissões da função do IAM anexada à EC2 instância.

Para obter mais informações sobre as funções do IAM para EC2, consulte [Funções do IAM para a Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html).

Os exemplos a seguir mostram como definir AWS credenciais usando as variáveis de `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e. 

Para definir essas variáveis no Linux, macOS ou Unix, use `export`.

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Para definir essas variáveis no Windows usando PowerShell, use`$env`.

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Para definir essas variáveis no Windows o prompt de comando, use `set`.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## Etapa 3: Desenvolver documentos de componentes localmente
<a name="toe-start-develop"></a>

Os componentes são criados com documentos YAML de texto simples. Para obter mais informações sobre sintaxe de documentos, consulte [Use a estrutura de documentos de AWSTOE componentes para componentes personalizados](toe-use-documents.md).

Veja a seguir exemplos de documento de componente *Hello World* para ajudar você a começar.

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

Alguns dos exemplos de componente do Linux neste guia se referem a um arquivo de documento de componente chamado `hello-world-linux.yml`. Você pode usar o documento a seguir para começar a usar esses exemplos.

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

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

Alguns dos exemplos de componente do Windows neste guia se referem a um arquivo de documento de componente chamado `hello-world-windows.yml`. Você pode usar o documento a seguir para começar a usar esses exemplos.

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

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

Alguns dos exemplos de componente do macOS neste guia se referem a um arquivo de documento de componente chamado `hello-world-macos.yml`. Você pode usar o documento a seguir para começar a usar esses exemplos.

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## Etapa 4: Validar componentes AWSTOE
<a name="toe-start-validate"></a>

Você pode validar a sintaxe dos AWSTOE componentes localmente com o AWSTOE aplicativo. Os exemplos a seguir mostram o `validate` comando do AWSTOE aplicativo para validar a sintaxe de um componente sem executá-lo.

**nota**  
O AWSTOE aplicativo pode validar somente a sintaxe do componente para o sistema operacional atual. Por exemplo, ao executar `awstoe.exe` no Windows, você não pode validar a sintaxe de um documento Linux que usa o módulo de ação `ExecuteBash`.

Linux ou macOS

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## Etapa 5: Executar AWSTOE componentes
<a name="toe-start-run"></a>

O AWSTOE aplicativo pode executar uma ou mais fases de documentos especificados usando o argumento da linha de `--phases` comando. Os valores compatíveis para `--phases` são `build`, `validate` e `test`. Vários valores de fase podem ser inseridos como valores separados por vírgula.

Quando você fornece uma lista de fases, o AWSTOE aplicativo executa sequencialmente as fases especificadas de cada documento. Por exemplo, AWSTOE executa `validate` as fases `build` e de`document1.yaml`, seguidas pelas `validate` fases `build` e de`document2.yaml`.

Para garantir que seus logs sejam armazenados com segurança e retidos para solução de problemas, recomendamos configurar o armazenamento de logs no Amazon S3. No Image Builder, a localização do Amazon S3 para publicação de logs é especificada na configuração da infraestrutura. Para obter mais informações sobre configuração de infraestrutura, consulte [Gerenciar a configuração da infraestrutura do Image Builder](manage-infra-config.md)

Se uma lista de fases não for fornecida, o AWSTOE aplicativo executará todas as fases na ordem listada no documento YAML.

Para executar fases específicas em um ou vários documentos, use os comandos a seguir.

Fase única

```
awstoe run --documents hello-world.yml --phases build
```

Várias fases

```
awstoe run --documents {{hello-world.yml}} --phases build,test
```

**Execução de documentos**  
Executar todas as fases em um único documento

```
awstoe run --documents {{documentName.yaml}}
```

Executar todas as fases em vários documentos

```
awstoe run --documents {{documentName1.yaml}},{{documentName2.yaml}}
```

Insira as informações do Amazon S3 para fazer upload de AWSTOE registros de um caminho local definido pelo usuário (recomendado)

```
awstoe run --documents {{documentName.yaml}} --log-s3-bucket-name {{amzn-s3-demo-destination-bucket}} --log-s3-key-prefix {{S3KeyPrefix}} --log-s3-bucket-owner {{S3BucketOwner}} --log-directory {{local_path}}
```

Executar todas as fases em um único documento e exibir todos os logs no console

```
awstoe run --documents {{documentName.yaml}} --trace
```

Exemplo de comando

```
awstoe run --documents {{s3://bucket/key/doc.yaml}} --phases {{build,validate}}
```

Executar documento com ID exclusivo

```
awstoe run --documents {{documentName.yaml}} --execution-id {{user-provided-id}} --phases {{build,test}}
```

Obtenha ajuda com AWSTOE

```
awstoe --help
```