

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

# Começando com CodeBuild
<a name="getting-started-overview"></a>

Nos tutoriais a seguir, você usa AWS CodeBuild para criar uma coleção de exemplos de arquivos de entrada de código-fonte em uma versão implantável do código-fonte.

Ambos os tutoriais têm a mesma entrada e resultados, mas um usa o AWS CodeBuild console e o outro usa o. AWS CLI

**Importante**  
Não recomendamos que você use sua conta AWS root para concluir este tutorial.

**Topics**
+ [Começando a AWS CodeBuild usar o console](#getting-started)
+ [Começando a AWS CodeBuild usar o AWS CLI](#getting-started-cli)

## Começando a AWS CodeBuild usar o console
<a name="getting-started"></a>

Neste tutorial, você usa AWS CodeBuild para criar uma coleção de exemplos de arquivos de entrada de código-fonte (*criar artefatos de entrada* ou *criar entrada*) em uma versão implantável do código-fonte (*criar artefato de saída* ou *criar* saída). Especificamente, você instrui CodeBuild a usar o Apache Maven, uma ferramenta de construção comum, para criar um conjunto de arquivos de classe Java em um arquivo Java Archive (JAR). Você não precisa estar familiarizado com o Apache Maven ou com o Java para utilizar este tutorial.

Você pode trabalhar com CodeBuild ele por meio do CodeBuild console AWS CodePipeline, AWS CLI, do ou do AWS SDKs. Este tutorial demonstra como usar o CodeBuild console. Para obter informações sobre como utilizar o CodePipeline, consulte [Use CodeBuild com CodePipeline](how-to-create-pipeline.md).

**Importante**  
As etapas deste tutorial exigem que você crie recursos (por exemplo, um bucket do S3) que podem resultar em cobranças na sua AWS conta. Isso inclui possíveis cobranças por CodeBuild e por AWS recursos e ações relacionados ao Amazon S3 e CloudWatch aos AWS KMS registros. Para obter mais informações, consulte [AWS CodeBuild preços, preços](https://aws.amazon.com/codebuild/pricing) do [Amazon S3, preços](https://aws.amazon.com/s3/pricing) e [AWS Key Management Service preços](https://aws.amazon.com/kms/pricing) da [Amazon CloudWatch ](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Etapa 1: Criar o código-fonte](#getting-started-create-source-code-console)
+ [Etapa 2: Criar o arquivo buildspec](#getting-started-create-build-spec-console)
+ [Etapa 3: Criar dois buckets do S3](#getting-started-input-bucket-console)
+ [Etapa 4: fazer upload do código-fonte e do arquivo buildspec](#getting-started-upload-source-code-console)
+ [Etapa 5: criar o projeto de compilação](#getting-started-create-build-project-console)
+ [Etapa 6: executar a compilação](#getting-started-run-build-console)
+ [Etapa 7: visualizar informações resumidas da compilação](#getting-started-monitor-build-console)
+ [Etapa 8: visualizar informações detalhadas da compilação](#getting-started-build-log-console)
+ [Etapa 9: obter o artefato de saída da compilação](#getting-started-output-console)
+ [Etapa 10: Excluir os buckets do S3](#getting-started-clean-up-console)
+ [Encapsulamento](#getting-started-next-steps-console)

### Etapa 1: Criar o código-fonte
<a name="getting-started-create-source-code-console"></a>

(Parte de: [Começando a AWS CodeBuild usar o console](#getting-started))

Nesta etapa, você cria o código-fonte que CodeBuild deseja criar no bucket de saída. O código-fonte consiste em dois arquivos classe Java e um arquivo Apache Maven Project Object Model (POM).

1. Em um diretório vazio em seu computador ou instância local, crie essa estrutura de diretório.

   ```
   (root directory name)
       `-- src
            |-- main
            |     `-- java
            `-- test
                  `-- java
   ```

1. Use um editor de texto de sua preferência, crie esse arquivo, nomeie-o como `MessageUtil.java` e salve-o no diretório `src/main/java`.

   ```
   public class MessageUtil {
     private String message;
   
     public MessageUtil(String message) {
       this.message = message;
     }
   
     public String printMessage() {
       System.out.println(message);
       return message;
     }
   
     public String salutationMessage() {
       message = "Hi!" + message;
       System.out.println(message);
       return message;
     }
   }
   ```

   Esse arquivo classe cria como a saída o string de caracteres para ele transferido. O construtor `MessageUtil` define o string de caracteres. O método `printMessage` cria a saída. O método `salutationMessage` gera a saída `Hi!` seguida da string de caracteres.

1. Crie esse arquivo, nomeie-o `TestMessageUtil.java` e o salve no diretório `/src/test/java`.

   ```
   import org.junit.Test;
   import org.junit.Ignore;
   import static org.junit.Assert.assertEquals;
   
   public class TestMessageUtil {
   
     String message = "Robert";    
     MessageUtil messageUtil = new MessageUtil(message);
      
     @Test
     public void testPrintMessage() {      
       System.out.println("Inside testPrintMessage()");     
       assertEquals(message,messageUtil.printMessage());
     }
   
     @Test
     public void testSalutationMessage() {
       System.out.println("Inside testSalutationMessage()");
       message = "Hi!" + "Robert";
       assertEquals(message,messageUtil.salutationMessage());
     }
   }
   ```

   Esse arquivo classe define a variável `message` na classe `MessageUtil` para `Robert`. O arquivo avalia, então, se a variável `message` foi definida com sucesso, verificando se as strings `Robert` e `Hi!Robert` aparecem na saída.

1. Crie esse arquivo, nomeie-o `pom.xml` e salve-o no diretório raiz (de nível superior).

   ```
   <project xmlns="http://maven.apache.org/POM/4.0.0" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.example</groupId>
     <artifactId>messageUtil</artifactId>
     <version>1.0</version>
     <packaging>jar</packaging>
     <name>Message Utility Java Sample App</name>
     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.11</version>
         <scope>test</scope>
       </dependency>	
     </dependencies>
     <build>
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.8.0</version>
         </plugin>
       </plugins>
     </build>
   </project>
   ```

   O Apache Maven usa as instruções nesse arquivo para converter os arquivos `MessageUtil.java` e `TestMessageUtil.java` em um arquivo denominado `messageUtil-1.0.jar` e, em seguida, executar os testes especificados. 

Neste momento, a estrutura de diretório deve se parecer como essa.

```
(root directory name)
    |-- pom.xml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Etapa 2: Criar o arquivo buildspec
<a name="getting-started-create-build-spec-console"></a>

(Etapa anterior: [Etapa 1: Criar o código-fonte](#getting-started-create-source-code-console))

Nesta etapa, você cria um arquivo de especificação de build (build spec). Um *buildspec* é uma coleção de comandos de compilação e configurações relacionadas, no formato YAML, CodeBuild usados para executar uma compilação. Sem uma especificação de compilação, CodeBuild não é possível converter com êxito sua entrada de compilação em saída de compilação ou localizar o artefato de saída de compilação no ambiente de compilação para fazer upload em seu bucket de saída.

Crie esse arquivo, nomeie-o `buildspec.yml` e salve-o no diretório raiz (de nível superior).

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto11
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn install
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - target/messageUtil-1.0.jar
```

**Importante**  
Como a declaração de build spec deve corresponder ao YAML, o espaçamento na declaração de build spec é importante. Se o número de espaços em sua declaração de build spec não corresponder a essa, o build pode falhar imediatamente. Você pode usar um validador YAML para testar se a declaração de build spec é válida para o YAML. 

**nota**  
Em vez de incluir um arquivo de build spec em seu código-fonte, você pode declarar comandos de build separadamente ao criar um projeto de build. Isso é útil no caso de você compilar seu código-fonte com diferentes comandos de build sem atualizar o repositório de código fonte a cada vez. Para obter mais informações, consulte [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).

Nesta declaração de build spec:
+ `version` representa a versão do build spec padrão em uso. Essa declaração de build spec usa a última versão, `0.2`.
+ `phases` representa as fases do build durante as quais você pode instruir o CodeBuild para executar comandos. Essas fases de build são aqui listadas como `install`, `pre_build`, `build` e `post_build`. Não é possível alterar os nomes das fases de build, nem criar nomes adicionais. 

  Neste exemplo, durante a `build` fase, CodeBuild executa o `mvn install` comando. Esse comando instrui o Apache Maven a compilar, testar e empacotar os arquivos classe Java em um artefato de saída do build. Para completar, alguns comandos `echo` são incluídos em cada fase de build, neste exemplo. Quando você visualizar informações de compilação detalhadas posteriormente neste tutorial, a saída desses comandos `echo` poderá ajudar a compreender melhor como o CodeBuild executa comandos e em que ordem. (Embora todas as fases da compilação estejam incluídas neste exemplo, não é necessário incluir uma fase da compilação se você não pretende executar comandos durante essa fase.) Para cada fase de compilação, CodeBuild executa cada comando especificado, um por vez, na ordem listada, do início ao fim. 
+ `artifacts`representa o conjunto de artefatos de saída de compilação que são CodeBuild carregados no bucket de saída. `files`representa os arquivos a serem incluídos na saída da compilação. CodeBuild carrega o único `messageUtil-1.0.jar` arquivo encontrado no diretório `target` relativo no ambiente de compilação. O nome de arquivo `messageUtil-1.0.jar` e o nome de diretório `target` são baseados na maneira como o Apache Maven cria e armazena artefatos de saída do build somente para este exemplo. Em seus próprios builds, esses nomes de arquivos e diretórios são diferentes. 

Para obter mais informações, consulte o [Referência de buildspec](build-spec-ref.md).

Neste momento, a estrutura de diretório deve se parecer como essa.

```
(root directory name)
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Etapa 3: Criar dois buckets do S3
<a name="getting-started-input-bucket-console"></a>

(Etapa anterior: [Etapa 2: Criar o arquivo buildspec](#getting-started-create-build-spec-console))

Embora seja possível usar um único bucket para este tutorial, o uso de dois buckets facilita a visualização da origem da entrada da compilação e do destino da saída da compilação.
+ Um desses buckets (o *bucket de entrada*) armazena a entrada da compilação. Neste tutorial, o nome desse bucket de entrada é`codebuild-region-ID-account-ID-input-bucket`, onde *region-ID* é a AWS região do bucket e *account-ID* é o ID da sua AWS conta.
+ O outro bucket (o *bucket de saída*) armazena a saída da compilação. Neste tutorial, o nome deste bucket de saída é `codebuild-region-ID-account-ID-output-bucket`.

Se você escolheu nomes diferentes para esses buckets, certifique-se de usá-los ao longo deste tutorial.

Esses dois buckets devem estar na mesma AWS região das suas compilações. Por exemplo, se você CodeBuild instruir a execução de uma compilação na região Leste dos EUA (Ohio), esses buckets também deverão estar na região Leste dos EUA (Ohio).

Para saber mais, consulte [Creating a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) (Criar um bucket) no *Manual do usuário do Amazon Simple Storage Service*. 

**nota**  
Embora CodeBuild também ofereça suporte a entradas de compilação armazenadas nos CodeCommit repositórios,, e do Bitbucket, este tutorial não mostra como usá-las. GitHub Para obter mais informações, consulte [Planejar uma compilação](planning.md).

### Etapa 4: fazer upload do código-fonte e do arquivo buildspec
<a name="getting-started-upload-source-code-console"></a>

(Etapa anterior: [Etapa 3: Criar dois buckets do S3](#getting-started-input-bucket-console))

Nesta etapa, você adiciona o código-fonte e o arquivo de build spec ao bucket de entrada.

Usando o utilitário zip do sistema operacional, crie um arquivo chamado `MessageUtil.zip` que inclua `MessageUtil.java`, `TestMessageUtil.java`, `pom.xml` e `buildspec.yml`. 

A estrutura de diretório de arquivo `MessageUtil.zip` deve se parecer como esta.

```
MessageUtil.zip
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

**Importante**  
Não inclua o diretório `(root directory name)`, somente os diretórios e os arquivos no diretório `(root directory name)`.

Faça upload do arquivo `MessageUtil.zip` ao bucket de entrada denominado `codebuild-region-ID-account-ID-input-bucket`. 

**Importante**  
Para repositórios CodeCommit GitHub,, e Bitbucket, por convenção, você deve armazenar um arquivo de especificação de construção nomeado `buildspec.yml` na raiz (nível superior) de cada repositório ou incluir a declaração de especificação de construção como parte da definição do projeto de construção. Não crie um arquivo ZIP que contenha o código-fonte do repositório e o arquivo build spec.   
Para a entrada de compilação armazenada apenas em buckets do S3, crie um arquivo ZIP que contenha o código-fonte e, por convenção, um arquivo de especificação da compilação chamado `buildspec.yml` na raiz (nível superior) ou inclua a declaração da especificação da compilação como parte da definição do projeto de compilação.  
Se quiser usar um nome diferente para o arquivo de especificação da compilação, ou fazer referência a uma especificação da compilação em um local diferente da raiz, você poderá definir uma substituição da especificação de compilação como parte da definição do projeto de compilação. Para obter mais informações, consulte [Nome do arquivo buildspec e local de armazenamento](build-spec-ref.md#build-spec-ref-name-storage).

### Etapa 5: criar o projeto de compilação
<a name="getting-started-create-build-project-console"></a>

(Etapa anterior: [Etapa 4: fazer upload do código-fonte e do arquivo buildspec](#getting-started-upload-source-code-console))

Nesta etapa, você cria um projeto de compilação que AWS CodeBuild usa para executar a compilação. Um *projeto de compilação* inclui informações sobre como executar uma compilação, incluindo onde obter o código-fonte, qual ambiente de compilação usar, quais comandos de compilação executar e onde armazenar a saída da compilação. Um *ambiente de compilação* representa uma combinação de sistema operacional, tempo de execução da linguagem de programação e ferramentas CodeBuild usadas para executar uma compilação. O ambiente de compilação é expresso como uma imagem do Docker. Para obter mais informações, consulte [Visão geral do Docker](https://docs.docker.com/get-started/overview/) no site Docker Docs. 

Para esse ambiente de compilação, você instrui CodeBuild a usar uma imagem do Docker que contém uma versão do Java Development Kit (JDK) e do Apache Maven.<a name="getting-started-create-build-project-console-procedure"></a>

**Como criar o projeto de compilação**

1. Faça login no Console de gerenciamento da AWS e abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Use o seletor de AWS região para escolher uma AWS região em que CodeBuild haja suporte. Para obter mais informações, consulte [endpoints e cotas do AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) na *Referência geral da Amazon Web Services*.

1.  Se uma página de CodeBuild informações for exibida, escolha **Criar projeto de construção**. Caso contrário, no painel de navegação, expanda **Compilar**, escolha **Projetos de compilação** e, depois, **Criar projeto de compilação**. 

1. Na página **Create build project (Criar projeto de compilação)**, em **Project Configuration (Configuração do projeto)**, em **Project name (Nome do projeto)**, insira um nome para esse projeto de compilação (neste exemplo, `codebuild-demo-project`). Os nomes dos projetos de criação devem ser exclusivos em cada AWS conta. Se você escolher outro nome, certifique-se de usá-lo durante todo este tutorial.
**nota**  
Na página **Create build project (Criar projeto de compilação)**, você pode ver uma mensagem de erro semelhante à seguinte: **You are not authorized to perform this operation (Você não tem autorização para realizar esta operação)**. Provavelmente, isso ocorre porque você fez login no Console de gerenciamento da AWS como um usuário que não tem permissões para criar um projeto de compilação. Para corrigir isso, saia do e Console de gerenciamento da AWS, em seguida, entre novamente com credenciais pertencentes a uma das seguintes entidades do IAM:   
Um usuário administrador em sua AWS conta. Para obter mais informações, consulte [Como criar seu primeiro usuário e grupo Conta da AWS raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) no *Guia do usuário*.
Um usuário em sua AWS conta com as políticas`AWSCodeBuildAdminAccess`,`AmazonS3ReadOnlyAccess`, e `IAMFullAccess` gerenciadas anexadas a esse usuário ou a um grupo do IAM ao qual o usuário pertence. Se você não tiver um usuário ou grupo em sua AWS conta com essas permissões e não puder adicionar essas permissões ao seu usuário ou grupo, entre em contato com o administrador AWS da conta para obter ajuda. Para obter mais informações, consulte [AWS políticas gerenciadas (predefinidas) para AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).
Ambas as opções incluem permissões de administrador que permitem criar um projeto de compilação para que você possa concluir este tutorial. Recomendamos que você sempre use as permissões mínimas necessárias para realizar sua tarefa. Para obter mais informações, consulte [AWS CodeBuild referência de permissões](auth-and-access-control-permissions-reference.md).

1. Em **Origem**, para **Provedor de origem**, selecione **Amazon S3**.

1. Para **Bucket**, escolha **codebuild- *region-ID* - *account-ID* -input-bucket**.

1.  Para **S3 object key (Chave do objeto S3)**, insira **MessageUtil.zip**.

1. Em **Environment (Ambiente)**, em **Environment image (Imagem do ambiente)**, deixe a opção **Managed image (Imagem gerenciada)** selecionada.

1. Em **Sistema operacional**, escolha **Amazon Linux**.

1. Em **Runtime(s)**, selecione **Padrão**.

1. Para **Imagem**, escolha **aws/codebuild/amazonlinux-x86\$164-standard:corretto11**.

1. Em **Service role (Função de serviço)**, deixe **New service role (Nova função de serviço) ** selecionado e não altere **Role name (Nome da função)**.

1. Em **Buildspec**, deixe **Use a buildspec file (Usar um arquivo buildspec)** selecionado.

1. Em **Artefatos**, em **Tipo**, escolha **Amazon S3**.

1. Em **Nome do bucket**, escolha **codebuild- *region-ID* - *account-ID* -output-bucket**.

1. Deixe **Name (Nome)** e **Path (Caminho)** em branco.

1. Selecione **Create build project (Criar projeto de compilação)**.

### Etapa 6: executar a compilação
<a name="getting-started-run-build-console"></a>

(Etapa anterior: [Etapa 5: criar o projeto de compilação](#getting-started-create-build-project-console))

Nesta etapa, você instrui AWS CodeBuild a executar a compilação com as configurações do projeto de compilação.<a name="getting-started-run-build-console-console-procedure"></a>

**Para executar a compilação**

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, selecione **Projetos de compilação**.

1. Na lista de projetos de compilação, escolha e **codebuild-demo-project**, em seguida, escolha **Iniciar compilação**. A compilação começa imediatamente.

### Etapa 7: visualizar informações resumidas da compilação
<a name="getting-started-monitor-build-console"></a>

(Etapa anterior: [Etapa 6: executar a compilação](#getting-started-run-build-console))

Nesta etapa, você exibe informações resumidas sobre o status de seu build.

#### Como visualizar informações resumidas da compilação
<a name="getting-started-monitor-build-console-title"></a><a name="getting-started-run-build-console-procedure"></a>

1. Se a *<build-ID>* página **codebuild-demo-project:** não for exibida, na barra de navegação, escolha **Histórico de compilação**. Em seguida, na lista de projetos de compilação, para **Projeto**, escolha o link **Construir execução** para **codebuild-demo-project**. Deve haver somente um link correspondente. (Se você tiver concluído este tutorial anteriormente, escolha o link com o valor mais recente na coluna **Completed (Concluído)**.)

1. Na página **Status da compilação**, em **Detalhes da fase**, as seguintes fases de compilação devem ser exibidas, com **Com êxito** na coluna **Status**:
   + **SUBMITTED**
   + **QUEUED**
   + **PROVISIONING**
   + **DOWNLOAD\$1SOURCE**
   + **INSTALL**
   + **PRE\$1BUILD**
   + **BUILD**
   + **POST\$1BUILD**
   + **UPLOAD\$1ARTIFACTS**
   + **FINALIZING**
   + **COMPLETED**

   Em **Build Status (Status da compilação)**, **Succeeded (Bem-sucedido)** deve ser exibido.

   Se você vir **In Progress (Em Andamento)**, escolha o botão Atualizar. 

1. Ao lado de cada fase de compilação, o valor **Duration (Duração)** indica quanto tempo a fase de compilação demorou. O valor **End time (Hora de término)** indica quando a fase de build foi concluída.

### Etapa 8: visualizar informações detalhadas da compilação
<a name="getting-started-build-log-console"></a>

(Etapa anterior: [Etapa 7: visualizar informações resumidas da compilação](#getting-started-monitor-build-console))

Nesta etapa, você visualiza informações detalhadas sobre sua compilação no CloudWatch Logs.

**nota**  
 Para proteger informações confidenciais, o seguinte está oculto nos CodeBuild registros:   
 AWS chave de acesso IDs. Para obter mais informações, consulte [Managing Access Keys for IAM Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) no *Guia do usuário do AWS Identity and Access Management *. 
 Strings especificadas usando o repositório de parâmetros. Para obter mais informações, consulte [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) no *Guia do usuário do Amazon EC2 Systems Manager*. 
 Cadeias de caracteres especificadas usando AWS Secrets Manager. Para obter mais informações, consulte [Gerenciamento de chaves](security-key-management.md). <a name="getting-started-build-log-console-procedure"></a>

**Como visualizar informações detalhadas da compilação**

1. Com a página de detalhes de build ainda em exibição na etapa anterior, as últimas 10,000 linhas do log de build são exibidas em **Build logs**. Para ver todo o registro de compilação em CloudWatch Registros, escolha o link **Exibir registro inteiro**. 

1. No stream de CloudWatch registros de registros, você pode navegar pelos eventos de registro. Por padrão, somente o último conjunto de eventos de log é exibido. Para ver eventos de log anteriores, role até o início da lista.

1. Neste tutorial, a maioria dos eventos de log contém informações detalhadas sobre o download e a instalação pelo CodeBuild dos arquivos de dependência da compilação em seu ambiente de compilação, informações essas que não são tão importantes pra você. Você pode usar a caixa **Filter events** para reduzir as informações exibidas. Por exemplo, se você inserir `"[INFO]"` em **Filter events (Filtrar eventos)**, apenas os eventos que contêm `[INFO]` serão exibidos. Para obter mais informações, consulte [Sintaxe de filtros e padrões](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html) no *Guia do CloudWatch usuário da Amazon*.

### Etapa 9: obter o artefato de saída da compilação
<a name="getting-started-output-console"></a>

(Etapa anterior: [Etapa 8: visualizar informações detalhadas da compilação](#getting-started-build-log-console))

Nesta etapa, você obtém o `messageUtil-1.0.jar` arquivo CodeBuild criado e carregado no bucket de saída.

Você pode usar o CodeBuild console ou o console do Amazon S3 para concluir essa etapa.



**Para obter o artefato de saída da compilação (AWS CodeBuild console)**

1. Com o CodeBuild console ainda aberto e a página de detalhes da construção ainda exibida na etapa anterior, escolha a guia **Detalhes da construção** e role para baixo até a seção **Artefatos**. 
**nota**  
Se a página de detalhes da compilação não foi exibida, na barra de navegação, selecione **Histórico de compilação** e escolha o link **Execução da compilação**.

1. O link para a pasta do Amazon S3 está abaixo do **Local de upload de artefatos**. Esse link abre a pasta no Amazon S3 em que você encontra o arquivo de artefato de saída da compilação `messageUtil-1.0.jar`.

**Como obter o artefato de saída da compilação (console do Amazon S3)**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Abra o `codebuild-region-ID-account-ID-output-bucket`.

1. Abra a pasta `codebuild-demo-project`.

1. Abra a pasta `target`, onde você encontra o arquivo de artefato de saída da compilação `messageUtil-1.0.jar`.

### Etapa 10: Excluir os buckets do S3
<a name="getting-started-clean-up-console"></a>

(Etapa anterior: [Etapa 9: obter o artefato de saída da compilação](#getting-started-output-console))

Para evitar cobranças contínuas em sua AWS conta, você pode excluir os intervalos de entrada e saída usados neste tutorial. Para obter instruções, consulte [Deleting or Emptying a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) no *Guia do usuário do Amazon Simple Storage Service*.

Se você estiver utilizando o usuário do IAM ou um usuário administrador do IAM para excluir esses buckets, o usuário deverá ter mais permissões de acesso. Adicione a seguinte declaração entre os marcadores (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*e*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) a uma política de acesso existente para o usuário. 

As elipses (...) nesta declaração são usadas para fins de brevidade. Não remova as declarações na política de acesso existente. Não insira essas reticências na política.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteBucket",
        "s3:DeleteObject"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Encapsulamento
<a name="getting-started-next-steps-console"></a>



Neste tutorial, você AWS CodeBuild costumava criar um conjunto de arquivos de classe Java em um arquivo JAR. Em seguida, você exibiu os resultados do build.

Agora você pode tentar usar CodeBuild em seus próprios cenários. Siga as instruções em [Planejar uma compilação](planning.md). Se não se sente pronto ainda, tente montar algumas das amostras. Para obter mais informações, consulte [Exemplos baseados em casos de uso do CodeBuild](use-case-based-samples.md). 

## Começando a AWS CodeBuild usar o AWS CLI
<a name="getting-started-cli"></a>

Neste tutorial, você usa AWS CodeBuild para criar uma coleção de exemplos de arquivos de entrada de código-fonte (chamados de *artefatos de entrada de compilação* ou *entrada de compilação*) em uma versão implantável do código-fonte (chamada *artefato de saída de compilação ou saída* de *construção*). Especificamente, você instrui CodeBuild a usar o Apache Maven, uma ferramenta de construção comum, para criar um conjunto de arquivos de classe Java em um arquivo Java Archive (JAR). Você não precisa estar familiarizado com o Apache Maven ou com o Java para utilizar este tutorial.

Você pode trabalhar com CodeBuild ele por meio do CodeBuild console AWS CodePipeline, AWS CLI, do ou do AWS SDKs. Este tutorial demonstra como usar CodeBuild com o. AWS CLI Para obter informações sobre o uso CodePipeline, consulte[Use CodeBuild com CodePipeline](how-to-create-pipeline.md).

**Importante**  
As etapas deste tutorial exigem que você crie recursos (por exemplo, um bucket do S3) que podem resultar em cobranças na sua AWS conta. Isso inclui possíveis cobranças por CodeBuild e por AWS recursos e ações relacionados ao Amazon S3 e CloudWatch aos AWS KMS registros. Para obter mais informações, consulte [CodeBuildpreços, preços](https://aws.amazon.com/codebuild/pricing) do [Amazon S3, preços](https://aws.amazon.com/s3/pricing) e [AWS Key Management Service preços](https://aws.amazon.com/kms/pricing) da [Amazon CloudWatch ](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Etapa 1: Criar o código-fonte](#getting-started-cli-create-source-code)
+ [Etapa 2: Criar o arquivo buildspec](#getting-started-cli-create-build-spec)
+ [Etapa 3: Criar dois buckets do S3](#getting-started-cli-input-bucket)
+ [Etapa 4: fazer upload do código-fonte e do arquivo buildspec](#getting-started-cli-upload-source-code)
+ [Etapa 5: criar o projeto de compilação](#getting-started-cli-create-build-project)
+ [Etapa 6: executar a compilação](#getting-started-cli-run-build)
+ [Etapa 7: visualizar informações resumidas da compilação](#getting-started-cli-monitor-build)
+ [Etapa 8: visualizar informações detalhadas da compilação](#getting-started-cli-build-log)
+ [Etapa 9: obter o artefato de saída da compilação](#getting-started-cli-output)
+ [Etapa 10: Excluir os buckets do S3](#getting-started-cli-clean-up)
+ [Encapsulamento](#getting-started-cli-next-steps)

### Etapa 1: Criar o código-fonte
<a name="getting-started-cli-create-source-code"></a>

(Parte de: [Começando a AWS CodeBuild usar o AWS CLI](#getting-started-cli))

Nesta etapa, você cria o código-fonte que CodeBuild deseja criar no bucket de saída. O código-fonte consiste em dois arquivos classe Java e um arquivo Apache Maven Project Object Model (POM).

1. Em um diretório vazio em seu computador ou instância local, crie essa estrutura de diretório.

   ```
   (root directory name)
       `-- src
            |-- main
            |     `-- java
            `-- test
                  `-- java
   ```

1. Use um editor de texto de sua preferência, crie esse arquivo, nomeie-o como `MessageUtil.java` e salve-o no diretório `src/main/java`.

   ```
   public class MessageUtil {
     private String message;
   
     public MessageUtil(String message) {
       this.message = message;
     }
   
     public String printMessage() {
       System.out.println(message);
       return message;
     }
   
     public String salutationMessage() {
       message = "Hi!" + message;
       System.out.println(message);
       return message;
     }
   }
   ```

   Esse arquivo classe cria como a saída o string de caracteres para ele transferido. O construtor `MessageUtil` define o string de caracteres. O método `printMessage` cria a saída. O método `salutationMessage` gera a saída `Hi!` seguida da string de caracteres.

1. Crie esse arquivo, nomeie-o `TestMessageUtil.java` e o salve no diretório `/src/test/java`.

   ```
   import org.junit.Test;
   import org.junit.Ignore;
   import static org.junit.Assert.assertEquals;
   
   public class TestMessageUtil {
   
     String message = "Robert";    
     MessageUtil messageUtil = new MessageUtil(message);
      
     @Test
     public void testPrintMessage() {      
       System.out.println("Inside testPrintMessage()");     
       assertEquals(message,messageUtil.printMessage());
     }
   
     @Test
     public void testSalutationMessage() {
       System.out.println("Inside testSalutationMessage()");
       message = "Hi!" + "Robert";
       assertEquals(message,messageUtil.salutationMessage());
     }
   }
   ```

   Esse arquivo classe define a variável `message` na classe `MessageUtil` para `Robert`. O arquivo avalia, então, se a variável `message` foi definida com sucesso, verificando se as strings `Robert` e `Hi!Robert` aparecem na saída.

1. Crie esse arquivo, nomeie-o `pom.xml` e salve-o no diretório raiz (de nível superior).

   ```
   <project xmlns="http://maven.apache.org/POM/4.0.0" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.example</groupId>
     <artifactId>messageUtil</artifactId>
     <version>1.0</version>
     <packaging>jar</packaging>
     <name>Message Utility Java Sample App</name>
     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.11</version>
         <scope>test</scope>
       </dependency>	
     </dependencies>
     <build>
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.8.0</version>
         </plugin>
       </plugins>
     </build>
   </project>
   ```

   O Apache Maven usa as instruções nesse arquivo para converter os arquivos `MessageUtil.java` e `TestMessageUtil.java` em um arquivo denominado `messageUtil-1.0.jar` e, em seguida, executar os testes especificados. 

Neste momento, a estrutura de diretório deve se parecer como essa.

```
(root directory name)
    |-- pom.xml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Etapa 2: Criar o arquivo buildspec
<a name="getting-started-cli-create-build-spec"></a>

(Etapa anterior: [Etapa 1: Criar o código-fonte](#getting-started-cli-create-source-code))

Nesta etapa, você cria um arquivo de especificação de build (build spec). Um *buildspec* é uma coleção de comandos de compilação e configurações relacionadas, no formato YAML, CodeBuild usados para executar uma compilação. Sem uma especificação de compilação, CodeBuild não é possível converter com êxito sua entrada de compilação em saída de compilação ou localizar o artefato de saída de compilação no ambiente de compilação para fazer upload em seu bucket de saída.

Crie esse arquivo, nomeie-o `buildspec.yml` e salve-o no diretório raiz (de nível superior).

```
version: 0.2

phases:
  install:
    runtime-versions:
      java: corretto11
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn install
  post_build:
    commands:
      - echo Build completed on `date`
artifacts:
  files:
    - target/messageUtil-1.0.jar
```

**Importante**  
Como a declaração de build spec deve corresponder ao YAML, o espaçamento na declaração de build spec é importante. Se o número de espaços em sua declaração de build spec não corresponder a essa, o build pode falhar imediatamente. Você pode usar um validador YAML para testar se a declaração de build spec é válida para o YAML. 

**nota**  
Em vez de incluir um arquivo de build spec em seu código-fonte, você pode declarar comandos de build separadamente ao criar um projeto de build. Isso é útil no caso de você compilar seu código-fonte com diferentes comandos de build sem atualizar o repositório de código fonte a cada vez. Para obter mais informações, consulte [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).

Nesta declaração de build spec:
+ `version` representa a versão do build spec padrão em uso. Essa declaração de build spec usa a última versão, `0.2`.
+ `phases` representa as fases do build durante as quais você pode instruir o CodeBuild para executar comandos. Essas fases de build são aqui listadas como `install`, `pre_build`, `build` e `post_build`. Não é possível alterar os nomes das fases de build, nem criar nomes adicionais. 

  Neste exemplo, durante a `build` fase, CodeBuild executa o `mvn install` comando. Esse comando instrui o Apache Maven a compilar, testar e empacotar os arquivos classe Java em um artefato de saída do build. Para completar, alguns comandos `echo` são incluídos em cada fase de build, neste exemplo. Quando você visualizar informações de compilação detalhadas posteriormente neste tutorial, a saída desses comandos `echo` poderá ajudar a compreender melhor como o CodeBuild executa comandos e em que ordem. (Embora todas as fases da compilação estejam incluídas neste exemplo, não é necessário incluir uma fase da compilação se você não pretende executar comandos durante essa fase.) Para cada fase de compilação, CodeBuild executa cada comando especificado, um por vez, na ordem listada, do início ao fim. 
+ `artifacts`representa o conjunto de artefatos de saída de compilação que são CodeBuild carregados no bucket de saída. `files`representa os arquivos a serem incluídos na saída da compilação. CodeBuild carrega o único `messageUtil-1.0.jar` arquivo encontrado no diretório `target` relativo no ambiente de compilação. O nome de arquivo `messageUtil-1.0.jar` e o nome de diretório `target` são baseados na maneira como o Apache Maven cria e armazena artefatos de saída do build somente para este exemplo. Em seus próprios builds, esses nomes de arquivos e diretórios são diferentes. 

Para obter mais informações, consulte o [Referência de buildspec](build-spec-ref.md).

Neste momento, a estrutura de diretório deve se parecer como essa.

```
(root directory name)
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

### Etapa 3: Criar dois buckets do S3
<a name="getting-started-cli-input-bucket"></a>

(Etapa anterior: [Etapa 2: Criar o arquivo buildspec](#getting-started-cli-create-build-spec))

Embora seja possível usar um único bucket para este tutorial, o uso de dois buckets facilita a visualização da origem da entrada da compilação e do destino da saída da compilação.
+ Um desses buckets (o *bucket de entrada*) armazena a entrada da compilação. Neste tutorial, o nome desse bucket de entrada é`codebuild-region-ID-account-ID-input-bucket`, onde *region-ID* é a AWS região do bucket e *account-ID* é o ID da sua AWS conta.
+ O outro bucket (o *bucket de saída*) armazena a saída da compilação. Neste tutorial, o nome deste bucket de saída é `codebuild-region-ID-account-ID-output-bucket`.

Se você escolheu nomes diferentes para esses buckets, certifique-se de usá-los ao longo deste tutorial.

Esses dois buckets devem estar na mesma AWS região das suas compilações. Por exemplo, se você CodeBuild instruir a execução de uma compilação na região Leste dos EUA (Ohio), esses buckets também deverão estar na região Leste dos EUA (Ohio).

Para saber mais, consulte [Creating a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) (Criar um bucket) no *Manual do usuário do Amazon Simple Storage Service*. 

**nota**  
Embora CodeBuild também ofereça suporte a entradas de compilação armazenadas nos CodeCommit repositórios,, e do Bitbucket, este tutorial não mostra como usá-las. GitHub Para obter mais informações, consulte [Planejar uma compilação](planning.md).

### Etapa 4: fazer upload do código-fonte e do arquivo buildspec
<a name="getting-started-cli-upload-source-code"></a>

(Etapa anterior: [Etapa 3: Criar dois buckets do S3](#getting-started-cli-input-bucket))

Nesta etapa, você adiciona o código-fonte e o arquivo de build spec ao bucket de entrada.

Usando o utilitário zip do sistema operacional, crie um arquivo chamado `MessageUtil.zip` que inclua `MessageUtil.java`, `TestMessageUtil.java`, `pom.xml` e `buildspec.yml`. 

A estrutura de diretório de arquivo `MessageUtil.zip` deve se parecer como esta.

```
MessageUtil.zip
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java
```

**Importante**  
Não inclua o diretório `(root directory name)`, somente os diretórios e os arquivos no diretório `(root directory name)`.

Faça upload do arquivo `MessageUtil.zip` ao bucket de entrada denominado `codebuild-region-ID-account-ID-input-bucket`. 

**Importante**  
Para repositórios CodeCommit GitHub,, e Bitbucket, por convenção, você deve armazenar um arquivo de especificação de construção nomeado `buildspec.yml` na raiz (nível superior) de cada repositório ou incluir a declaração de especificação de construção como parte da definição do projeto de construção. Não crie um arquivo ZIP que contenha o código-fonte do repositório e o arquivo build spec.   
Para a entrada de compilação armazenada apenas em buckets do S3, crie um arquivo ZIP que contenha o código-fonte e, por convenção, um arquivo de especificação da compilação chamado `buildspec.yml` na raiz (nível superior) ou inclua a declaração da especificação da compilação como parte da definição do projeto de compilação.  
Se quiser usar um nome diferente para o arquivo de especificação da compilação, ou fazer referência a uma especificação da compilação em um local diferente da raiz, você poderá definir uma substituição da especificação de compilação como parte da definição do projeto de compilação. Para obter mais informações, consulte [Nome do arquivo buildspec e local de armazenamento](build-spec-ref.md#build-spec-ref-name-storage).

### Etapa 5: criar o projeto de compilação
<a name="getting-started-cli-create-build-project"></a>

(Etapa anterior: [Etapa 4: fazer upload do código-fonte e do arquivo buildspec](#getting-started-cli-upload-source-code))

Nesta etapa, você cria um projeto de compilação que AWS CodeBuild usa para executar a compilação. Um *projeto de compilação* inclui informações sobre como executar uma compilação, incluindo onde obter o código-fonte, qual ambiente de compilação usar, quais comandos de compilação executar e onde armazenar a saída da compilação. Um *ambiente de compilação* representa uma combinação de sistema operacional, tempo de execução da linguagem de programação e ferramentas CodeBuild usadas para executar uma compilação. O ambiente de compilação é expresso como uma imagem do Docker. Para obter mais informações, consulte [Visão geral do Docker](https://docs.docker.com/get-started/overview/) no site Docker Docs. 

Para esse ambiente de compilação, você instrui CodeBuild a usar uma imagem do Docker que contém uma versão do Java Development Kit (JDK) e do Apache Maven.<a name="getting-started-cli-create-build-project-cli"></a>

**Como criar o projeto de compilação**

1. Use o AWS CLI para executar o **create-project** comando:

   ```
   aws codebuild create-project --generate-cli-skeleton
   ```

   Os dados formatados JSON aparecem na saída. Copie os dados para um arquivo nomeado `create-project.json` em um local no computador local ou na instância em que o AWS CLI está instalado. Se você optar por usar um nome de arquivo diferente, certifique-se de usá-lo durante todo este tutorial.

   Altere os dados copiados para acompanhar o formato e, em seguida, salve os resultados:

   ```
   {
     "name": "codebuild-demo-project",
     "source": {
       "type": "S3",
       "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
     },
     "artifacts": {
       "type": "S3",
       "location": "codebuild-region-ID-account-ID-output-bucket"
     },
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "aws/codebuild/standard:5.0",
       "computeType": "BUILD_GENERAL1_SMALL"
     },
     "serviceRole": "serviceIAMRole"
   }
   ```

   *serviceIAMRole*Substitua pelo Amazon Resource Name (ARN) de uma função de CodeBuild serviço (por exemplo,`arn:aws:iam::account-ID:role/role-name`). Para criar uma, consulte [CodeBuild Permitir interagir com outros AWS serviços](setting-up-service-role.md).

   Nesses dados:
   + `name` representa uma identificador necessário para o projeto de build (neste exemplo, `codebuild-demo-project`). Os nomes de projeto de build devem ser únicos em todos os projetos de build em sua conta. 
   + Para `source`, `type` é um valor necessário que representa o tipo de repositório de código-fonte (neste exemplo, `S3` para um bucket do Amazon S3).
   + Para `source`, `location` representa o caminho para o código-fonte (neste exemplo, o nome de bucket de entrada seguido pelo nome do arquivo ZIP).
   + Para `artifacts`, `type` é um valor obrigatório que representa o tipo de repositório de artefato de saída da compilação (neste exemplo, `S3` para um bucket do Amazon S3).
   + Para `artifacts`, `location` representa o nome do bucket de saída que você criou ou identificou anteriormente (neste exemplo, `codebuild-region-ID-account-ID-output-bucket`).
   + Para `environment`, `type` é um valor obrigatório que representa o tipo de ambiente de compilação (neste exemplo, `LINUX_CONTAINER`).
   + Para`environment`, `image` é um valor obrigatório que representa a combinação de nome de imagem e tag do Docker que esse projeto de construção usa, conforme especificado pelo tipo de repositório de imagens do Docker (neste exemplo, `aws/codebuild/standard:5.0` para uma imagem do Docker no repositório de imagens do CodeBuild Docker). `aws/codebuild/standard`é o nome da imagem do Docker. `5.0`é a tag da imagem do Docker. 

     Para encontrar mais imagens Docker que você possa utilizar em seus cenários, consulte [Referência de ambiente de compilação](build-env-ref.md).
   + Para`environment`, `computeType` é um valor obrigatório que representa o CodeBuild uso dos recursos de computação (neste exemplo,`BUILD_GENERAL1_SMALL`).
**nota**  
Outros valores disponíveis nos dados formatados JSON originais, tais como `description`, `buildspec`, `auth` (incluindo `type` e `resource`), `path`, `namespaceType`, `name` (para `artifacts`), `packaging`, `environmentVariables` (incluindo `name` e `value`), `timeoutInMinutes`, `encryptionKey` e `tags` (incluindo `key` e `value`) são opcionais. Eles não são usados neste tutorial, portanto, não são mostrados aqui. Para obter mais informações, consulte [Crie um projeto de compilação (AWS CLI)](create-project.md#create-project-cli).

1. Alterne para o diretório que contenha o arquivo que você acabou de salvar e execute o comando **create-project** novamente.

   ```
   aws codebuild create-project --cli-input-json file://create-project.json
   ```

   Se bem-sucedidos, dados semelhantes a estes aparecem na saída.

   ```
   {
     "project": {
       "name": "codebuild-demo-project",
       "serviceRole": "serviceIAMRole",
       "tags": [],
       "artifacts": {
         "packaging": "NONE",
         "type": "S3",
         "location": "codebuild-region-ID-account-ID-output-bucket",
         "name": "message-util.zip"
       },
       "lastModified": 1472661575.244,
       "timeoutInMinutes": 60,
       "created": 1472661575.244,
       "environment": {
         "computeType": "BUILD_GENERAL1_SMALL",
         "image": "aws/codebuild/standard:5.0",
         "type": "LINUX_CONTAINER",
         "environmentVariables": []
       },
       "source": {
         "type": "S3",
         "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
       },
       "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3",
       "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project"
     }
   }
   ```
   + `project` representa informações sobre esse projeto de build.
     + `tags` representa as tags que foram declaradas.
     + `packaging` representa como o artefato de saída de compilação é armazenado no bucket de saída. `NONE` significa que uma pasta foi criada no bucket de saída. O artefato de saída de compilação foi armazenado na pasta.
     + `lastModified` representa quando as informações sobre o projeto de build foram modificadas pela última vez, em formato de data e hora Unix.
     + `timeoutInMinutes`representa o número de minutos após os quais CodeBuild interrompe a construção se a construção não tiver sido concluída. (O padrão é 60 minutos.)
     + `created` representa quando o projeto de build foi criado, em formato de data e hora Unix.
     + `environmentVariables`representa todas as variáveis de ambiente que foram declaradas e estão disponíveis CodeBuild para uso durante a construção.
     + `encryptionKey`representa o ARN da chave gerenciada pelo cliente CodeBuild usada para criptografar o artefato de saída da compilação.
     + `arn` representa o ARN do projeto de build.

**nota**  
Depois de executar o **create-project** comando, uma mensagem de erro semelhante à seguinte pode ser gerada: **Usuário: não *user-ARN* está autorizado a executar: codebuild**:. CreateProject Provavelmente, isso ocorre porque você configurou o AWS CLI com as credenciais de um usuário que não tem permissões suficientes CodeBuild para usar na criação de projetos de compilação. Para corrigir isso, configure a AWS CLI com credenciais pertencentes a uma das seguintes entidades do IAM:   
Um usuário administrador em sua AWS conta. Para obter mais informações, consulte [Como criar seu primeiro usuário e grupo Conta da AWS raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) no *Guia do usuário*.
Um usuário em sua AWS conta com as políticas`AWSCodeBuildAdminAccess`,`AmazonS3ReadOnlyAccess`, e `IAMFullAccess` gerenciadas anexadas a esse usuário ou a um grupo do IAM ao qual o usuário pertence. Se você não tiver um usuário ou grupo em sua AWS conta com essas permissões e não puder adicionar essas permissões ao seu usuário ou grupo, entre em contato com o administrador AWS da conta para obter ajuda. Para obter mais informações, consulte [AWS políticas gerenciadas (predefinidas) para AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md#managed-policies).

### Etapa 6: executar a compilação
<a name="getting-started-cli-run-build"></a>

(Etapa anterior: [Etapa 5: criar o projeto de compilação](#getting-started-cli-create-build-project))

Nesta etapa, você instrui AWS CodeBuild a executar a compilação com as configurações do projeto de compilação.<a name="getting-started-run-build-cli"></a>

**Para executar a compilação**

1. Use o AWS CLI para executar o **start-build** comando:

   ```
   aws codebuild start-build --project-name project-name
   ```

   *project-name*Substitua pelo nome do seu projeto de construção da etapa anterior (por exemplo,`codebuild-demo-project`).

1. Se bem-sucedido, dados semelhantes aos seguintes serão exibidos na saída:

   ```
   {
     "build": { 
       "buildComplete": false,
       "initiator": "user-name",   
       "artifacts": { 
         "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip"
       },
       "projectName": "codebuild-demo-project",
       "timeoutInMinutes": 60, 
       "buildStatus": "IN_PROGRESS",
       "environment": {
         "computeType": "BUILD_GENERAL1_SMALL",
         "image": "aws/codebuild/standard:5.0",
         "type": "LINUX_CONTAINER",
         "environmentVariables": []
       },
       "source": {
         "type": "S3",
         "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
       },
       "currentPhase": "SUBMITTED",
       "startTime": 1472848787.882,
       "id": "codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE",
       "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE"    
     }
   }
   ```
   + `build` representa informações sobre este build.
     + `buildComplete` representa se a compilação foi concluída (`true`). Caso contrário, `false`.
     + `initiator` representa a entidade que iniciou o build.
     + `artifacts` representa informações sobre a saída de build, incluindo seu local.
     + `projectName` representa o nome do projeto de build.
     + `buildStatus` representa o status atual do build, quando o comando **start-build** foi executado.
     + `currentPhase` representa a fase atual do build quanto o comando **start-build** foi executado.
     + `startTime` representa o momento em que o processo de build foi iniciado, em formato de data e hora do Unix.
     + `id` representa a ID do build.
     + `arn` representa o ARN do build.

   Anote o valor do `id`. Você precisa dele na próxima etapa.

### Etapa 7: visualizar informações resumidas da compilação
<a name="getting-started-cli-monitor-build"></a>

(Etapa anterior: [Etapa 6: executar a compilação](#getting-started-cli-run-build))

Nesta etapa, você exibe informações resumidas sobre o status de seu build.<a name="getting-started-cli-monitor-build-cli"></a>

**Como visualizar informações resumidas da compilação**
+ Use o AWS CLI para executar o **batch-get-builds** comando.

  ```
  aws codebuild batch-get-builds --ids id
  ```

  *id*Substitua pelo `id` valor que apareceu na saída da etapa anterior.

  Se bem-sucedidos, dados semelhantes a estes aparecem na saída.

  ```
  {
    "buildsNotFound": [],
    "builds": [
      {
        "buildComplete": true,
        "phases": [
          {
            "phaseStatus": "SUCCEEDED",
            "endTime": 1472848788.525,
            "phaseType": "SUBMITTED",
            "durationInSeconds": 0,
            "startTime": 1472848787.882
          },
          ... The full list of build phases has been omitted for brevity ...
          {
            "phaseType": "COMPLETED",
            "startTime": 1472848878.079
          }
        ],
        "logs": {
          "groupName": "/aws/codebuild/codebuild-demo-project",
          "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE",
          "streamName": "38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE"
        },
        "artifacts": {
          "md5sum": "MD5-hash",
          "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip",
          "sha256sum": "SHA-256-hash"
        },
        "projectName": "codebuild-demo-project",
        "timeoutInMinutes": 60,
        "initiator": "user-name",
        "buildStatus": "SUCCEEDED",
        "environment": {
          "computeType": "BUILD_GENERAL1_SMALL",
          "image": "aws/codebuild/standard:5.0",
          "type": "LINUX_CONTAINER",
          "environmentVariables": []
        },
        "source": {
          "type": "S3",
          "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip"
        },
        "currentPhase": "COMPLETED",
        "startTime": 1472848787.882,
        "endTime": 1472848878.079,
        "id": "codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE",
        "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE"      
      }
    ]
  }
  ```
  + `buildsNotFound`representa a construção IDs de qualquer compilação em que as informações não estejam disponíveis. Neste exemplo, deve estar vazia.
  + `builds` representa informações sobre cada build em que haja informações disponíveis. Neste exemplo, informações sobre somente um build aparece na saída.
    + `phases` representa o conjunto de fases de build que o CodeBuild executa durante o processo de build. Informações sobre cada fase de build é listada separadamente como `startTime`, `endTime`, e `durationInSeconds` (quando a fase de build iniciou e terminou, expressa em formato de data e hora do Unix, e quanto tempo durou, em segundos) e `phaseType`, tais como (`SUBMITTED`, `PROVISIONING`, `DOWNLOAD_SOURCE`, `INSTALL`, `PRE_BUILD`, `BUILD`, `POST_BUILD`, `UPLOAD_ARTIFACTS`, `FINALIZING` ou `COMPLETED`) e `phaseStatus` (tais como `SUCCEEDED`, `FAILED`, `FAULT`, `TIMED_OUT`, `IN_PROGRESS` ou `STOPPED`). Na primeira vez que você executar o comando **batch-get-builds**, pode não haver muitas fases (ou nenhuma). Depois de execuções subsequentes do comando **batch-get-builds** com a mesma ID de build, mais fases de build deverão aparecer na saída.
    + `logs`representa informações no Amazon CloudWatch Logs sobre os registros da compilação.
    + `md5sum` MD5 e `sha256sum` representam os hashes SHA-256 do artefato de saída da compilação. Esses aparecem na saída somente se o `packaging` valor do projeto de compilação estiver definido como `ZIP`. (Você não definiu esse valor neste tutorial.) Você pode usar esses hashes em conjunto com uma ferramenta de checksum para confirmar a integridade e a autenticidade dos arquivos.
**nota**  
Também é possível usar o console do Amazon S3 para exibir esses hashes. Marque a caixa próxima ao artefato de saída da compilação e escolha **Actions (Ações)** e **Properties (Propriedades)**. **No painel **Propriedades**, expanda **Metadados** e visualize os valores de -content-md5 e **x-amz-meta-codebuild-content-sha256**. x-amz-meta-codebuild** (No console do Amazon S3, o **ETag**valor do artefato de saída de compilação não deve ser interpretado como o hash MD5 ou SHA-256.)  
Se você usar o AWS SDKs para obter esses hashes, os valores serão nomeados `codebuild-content-md5` e. `codebuild-content-sha256` 
    + `endTime` representa o momento em que o processo de build foi concluído, em formato de data e hora do Unix.
**nota**  
Os metadados do Amazon S3 têm um CodeBuild cabeçalho chamado `x-amz-meta-codebuild-buildarn` que contém o `buildArn` da CodeBuild compilação que publica artefatos no Amazon S3. O `buildArn` é adicionado para permitir o rastreamento da fonte para notificações e para referenciar de qual compilação o artefato é gerado.

### Etapa 8: visualizar informações detalhadas da compilação
<a name="getting-started-cli-build-log"></a>

(Etapa anterior: [Etapa 7: visualizar informações resumidas da compilação](#getting-started-cli-monitor-build))

Nesta etapa, você visualiza informações detalhadas sobre sua compilação no CloudWatch Logs.

**nota**  
 Para proteger informações confidenciais, o seguinte está oculto nos CodeBuild registros:   
 AWS chave de acesso IDs. Para obter mais informações, consulte [Managing Access Keys for IAM Users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) no *Guia do usuário do AWS Identity and Access Management *. 
 Strings especificadas usando o repositório de parâmetros. Para obter mais informações, consulte [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) no *Guia do usuário do Amazon EC2 Systems Manager*. 
 Cadeias de caracteres especificadas usando AWS Secrets Manager. Para obter mais informações, consulte [Gerenciamento de chaves](security-key-management.md). <a name="getting-started-cli-build-log-cli"></a>

**Como visualizar informações detalhadas da compilação**

1. Use seu navegador para acessar o local `deepLink` que apareceu na saída na etapa anterior (por exemplo, `https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE`).

1. No stream de CloudWatch registros de registros, você pode navegar pelos eventos de registro. Por padrão, somente o último conjunto de eventos de log é exibido. Para ver eventos de log anteriores, role até o início da lista.

1. Neste tutorial, a maioria dos eventos de log contém informações detalhadas sobre o download e a instalação pelo CodeBuild dos arquivos de dependência da compilação em seu ambiente de compilação, informações essas que não são tão importantes pra você. Você pode usar a caixa **Filter events** para reduzir as informações exibidas. Por exemplo, se você inserir `"[INFO]"` em **Filter events (Filtrar eventos)**, apenas os eventos que contêm `[INFO]` serão exibidos. Para obter mais informações, consulte [Sintaxe de filtros e padrões](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) no *Guia do CloudWatch usuário da Amazon*.

Essas partes de um stream de CloudWatch registros de registros pertencem a este tutorial.

```
...
[Container] 2016/04/15 17:49:42 Entering phase PRE_BUILD 
[Container] 2016/04/15 17:49:42 Running command echo Entering pre_build phase...
[Container] 2016/04/15 17:49:42 Entering pre_build phase... 
[Container] 2016/04/15 17:49:42 Phase complete: PRE_BUILD Success: true 
[Container] 2016/04/15 17:49:42 Entering phase BUILD 
[Container] 2016/04/15 17:49:42 Running command echo Entering build phase... 
[Container] 2016/04/15 17:49:42 Entering build phase...
[Container] 2016/04/15 17:49:42 Running command mvn install 
[Container] 2016/04/15 17:49:44 [INFO] Scanning for projects... 
[Container] 2016/04/15 17:49:44 [INFO]
[Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:44 [INFO] Building Message Utility Java Sample App 1.0 
[Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ 
... 
[Container] 2016/04/15 17:49:55 ------------------------------------------------------- 
[Container] 2016/04/15 17:49:55  T E S T S 
[Container] 2016/04/15 17:49:55 ------------------------------------------------------- 
[Container] 2016/04/15 17:49:55 Running TestMessageUtil 
[Container] 2016/04/15 17:49:55 Inside testSalutationMessage() 
[Container] 2016/04/15 17:49:55 Hi!Robert 
[Container] 2016/04/15 17:49:55 Inside testPrintMessage() 
[Container] 2016/04/15 17:49:55 Robert 
[Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec
[Container] 2016/04/15 17:49:55  
[Container] 2016/04/15 17:49:55 Results : 
[Container] 2016/04/15 17:49:55  
[Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 
...
[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:56 [INFO] BUILD SUCCESS 
[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:56 [INFO] Total time: 11.845 s 
[Container] 2016/04/15 17:49:56 [INFO] Finished at: 2016-04-15T17:49:56+00:00 
[Container] 2016/04/15 17:49:56 [INFO] Final Memory: 18M/216M 
[Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ 
[Container] 2016/04/15 17:49:56 Phase complete: BUILD Success: true 
[Container] 2016/04/15 17:49:56 Entering phase POST_BUILD 
[Container] 2016/04/15 17:49:56 Running command echo Entering post_build phase... 
[Container] 2016/04/15 17:49:56 Entering post_build phase... 
[Container] 2016/04/15 17:49:56 Phase complete: POST_BUILD Success: true 
[Container] 2016/04/15 17:49:57 Preparing to copy artifacts 
[Container] 2016/04/15 17:49:57 Assembling file list 
[Container] 2016/04/15 17:49:57 Expanding target/messageUtil-1.0.jar 
[Container] 2016/04/15 17:49:57 Found target/messageUtil-1.0.jar 
[Container] 2016/04/15 17:49:57 Creating zip artifact
```

Neste exemplo, concluiu CodeBuild com êxito as fases de pré-construção, construção e pós-construção. Ele executou os testes da unidade e montou com sucesso o arquivo `messageUtil-1.0.jar`.

### Etapa 9: obter o artefato de saída da compilação
<a name="getting-started-cli-output"></a>

(Etapa anterior: [Etapa 8: visualizar informações detalhadas da compilação](#getting-started-cli-build-log))

Nesta etapa, você obtém o `messageUtil-1.0.jar` arquivo CodeBuild criado e carregado no bucket de saída.

Você pode usar o CodeBuild console ou o console do Amazon S3 para concluir essa etapa.



**Para obter o artefato de saída da compilação (AWS CodeBuild console)**

1. Com o CodeBuild console ainda aberto e a página de detalhes da construção ainda exibida na etapa anterior, escolha a guia **Detalhes da construção** e role para baixo até a seção **Artefatos**. 
**nota**  
Se a página de detalhes da compilação não foi exibida, na barra de navegação, selecione **Histórico de compilação** e escolha o link **Execução da compilação**.

1. O link para a pasta do Amazon S3 está abaixo do **Local de upload de artefatos**. Esse link abre a pasta no Amazon S3 em que você encontra o arquivo de artefato de saída da compilação `messageUtil-1.0.jar`.

**Como obter o artefato de saída da compilação (console do Amazon S3)**

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Abra o `codebuild-region-ID-account-ID-output-bucket`.

1. Abra a pasta `codebuild-demo-project`.

1. Abra a pasta `target`, onde você encontra o arquivo de artefato de saída da compilação `messageUtil-1.0.jar`.

### Etapa 10: Excluir os buckets do S3
<a name="getting-started-cli-clean-up"></a>

(Etapa anterior: [Etapa 9: obter o artefato de saída da compilação](#getting-started-cli-output))

Para evitar cobranças contínuas em sua AWS conta, você pode excluir os intervalos de entrada e saída usados neste tutorial. Para obter instruções, consulte [Deleting or Emptying a Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html) no *Guia do usuário do Amazon Simple Storage Service*.

Se você estiver utilizando o usuário do IAM ou um usuário administrador do IAM para excluir esses buckets, o usuário deverá ter mais permissões de acesso. Adicione a seguinte declaração entre os marcadores (*\$1\$1\$1 BEGIN ADDING STATEMENT HERE \$1\$1\$1*e*\$1\$1\$1 END ADDING STATEMENTS HERE \$1\$1\$1*) a uma política de acesso existente para o usuário. 

As elipses (...) nesta declaração são usadas para fins de brevidade. Não remova as declarações na política de acesso existente. Não insira essas reticências na política.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteBucket",
        "s3:DeleteObject"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Encapsulamento
<a name="getting-started-cli-next-steps"></a>



Neste tutorial, você AWS CodeBuild costumava criar um conjunto de arquivos de classe Java em um arquivo JAR. Em seguida, você exibiu os resultados do build.

Agora você pode tentar usar CodeBuild em seus próprios cenários. Siga as instruções em [Planejar uma compilação](planning.md). Se não se sente pronto ainda, tente montar algumas das amostras. Para obter mais informações, consulte [Exemplos baseados em casos de uso do CodeBuild](use-case-based-samples.md). 