

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie um pipeline que use CodeBuild (AWS CLI)
<a name="how-to-create-pipeline-cli"></a>

Use o procedimento a seguir para criar um pipeline usado CodeBuild para criar seu código-fonte.

Para usar o AWS CLI para criar um pipeline que implante seu código-fonte construído ou que apenas teste seu código-fonte, você pode adaptar as instruções em [Editar um pipeline (AWS CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-edit-pipelines.html#how-to-edit-pipelines-cli) e a [referência da estrutura do CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) no *Guia do AWS CodePipeline usuário*.

1. Crie ou identifique um projeto de construção em CodeBuild. Para obter mais informações, consulte [Criar um projeto de compilação](create-project.md).
**Importante**  
O projeto de build deve definir as configurações de artefato de saída de build (mesmo que o CodePipeline sobrescreva-as). Para obter mais informações, consulte a descrição de `artifacts` em [Crie um projeto de compilação (AWS CLI)](create-project.md#create-project-cli).

1. Certifique-se de ter configurado o AWS CLI com a chave de AWS acesso e a chave de acesso AWS secreta que correspondem a uma das entidades do IAM descritas neste tópico. Para obter mais informações, consulte [Noções básicas de configuração da AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) no *Guia do usuário da AWS Command Line Interface *.

1. Crie um arquivo formatado JSON que represente a estrutura do pipeline. Nomeie o arquivo como `create-pipeline.json` ou algo similar. Por exemplo, essa estrutura em formato JSON cria um pipeline com uma ação de origem que faz referência a um bucket de entrada do S3 e uma ação de compilação que use o CodeBuild:

   ```
   {
     "pipeline": {
       "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>",
       "stages": [
         {
           "name": "Source",
           "actions": [
             {
               "inputArtifacts": [],
               "name": "Source",
               "actionTypeId": {
                 "category": "Source",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "S3"
               },
               "outputArtifacts": [
                 {
                   "name": "MyApp"
                 }
               ],
               "configuration": {
                 "S3Bucket": "<bucket-name>",
                 "S3ObjectKey": "<source-code-file-name.zip>"
               },
               "runOrder": 1
             }
           ]
         },
         {
           "name": "Build",
           "actions": [
             {
               "inputArtifacts": [
                 {
                   "name": "MyApp"
                 }
               ],
               "name": "Build",
               "actionTypeId": {
                 "category": "Build",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "CodeBuild"
               },
               "outputArtifacts": [
                 {
                   "name": "default"
                 }
               ],
               "configuration": {
                 "ProjectName": "<build-project-name>"
               },
               "runOrder": 1
             }
           ]
         }
       ],
       "artifactStore": {
         "type": "S3",
         "location": "<CodePipeline-internal-bucket-name>"
       },
       "name": "<my-pipeline-name>",
       "version": 1
     }
   }
   ```

   Nesses dados formatados JSON:
   + O valor de `roleArn` deve corresponder ao ARN da função de CodePipeline serviço que você criou ou identificou como parte dos pré-requisitos.
   + Os valores de `S3Bucket` e `S3ObjectKey` na `configuration` presumem que o código-fonte esteja armazenado no bucket do S3. Para configurações de outros tipos de repositório de código-fonte, consulte [Referência da estrutura do pipeline do CodePipeline ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) no *Guia do usuário do AWS CodePipeline *.
   + O valor de `ProjectName` é o nome do projeto de CodeBuild construção que você criou anteriormente neste procedimento.
   + O valor de `location` é o nome do bucket S3 usado por este pipeline. Para obter mais informações, consulte [Criar uma política para bucket do S3 para usar como armazenamento de artefatos do CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/access-permissions.html#how-to-create-bucket-policy) no *Guia do usuário do AWS CodePipeline *.
   + O valor de `name` é o nome deste pipeline. Todos os nomes de pipeline devem ser únicos em sua conta.

   Embora esses dados descrevam somente uma ação de origem e uma ação de construção, você pode adicionar ações para atividades relacionadas a testes, implantação do artefato de saída de compilação, invocação de AWS Lambda funções e muito mais. Para obter mais informações, consulte [Referência da estrutura do pipeline do AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) no *Guia do usuário do AWS CodePipeline *.

1. Alterne para a pasta que contém o arquivo JSON e execute o CodePipeline **[create-pipeline](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/create-pipeline.html)** comando, especificando o nome do arquivo:

   ```
   aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
   ```
**nota**  
Você deve criar o pipeline em uma AWS região com suporte. CodeBuild Para ter mais informações, consulte [AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) no *Referência geral da Amazon Web Services*.

   Os dados formatados em JSON aparecem na saída e CodePipeline criam o pipeline.

1. Para obter informações sobre o status do pipeline, execute o CodePipeline **[get-pipeline-state](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)** comando, especificando o nome do pipeline:

   ```
   aws codepipeline get-pipeline-state --name <my-pipeline-name>
   ```

   Na saída, procure informações que confirme que o build foi executado com sucesso. As elipses (`...`) são usadas para exibir dados que foram omitidos para agilizar.

   ```
   {
     ...
     "stageStates": [
       ...  
       {
         "actionStates": [
           {
             "actionName": "CodeBuild",
             "latestExecution": {
               "status": "SUCCEEDED",
               ...
             },
             ...
           }
         ]
       }
     ]
   }
   ```

   Se você executar esse comando muito cedo, poderá não ver as informações sobre a ação de build. Você pode precisar executar esse comando várias vezes até que o pipeline tenha concluído a execução da ação de build.

1. Depois de um build bem-sucedido, siga estas instruções para obter o artefato de saída de build. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).
**nota**  
Você também pode obter o artefato de saída de compilação selecionando o link **Build artifacts (Criar artefatos)** na página de detalhes da compilação relacionada, no console do CodeBuild. Para exibir essa página, despreze as etapas restantes deste procedimento e consulte [Visualizar detalhes de compilação (console)](view-build-details.md#view-build-details-console).

1. Na lista de bucket, abra o bucket usado pelo pipeline. O nome do bucket deve seguir o formato `codepipeline-<region-ID>-<random-number>`. Você pode obter o nome do bucket do `create-pipeline.json` arquivo ou executar o CodePipeline **get-pipeline** comando para obter o nome do bucket.

   ```
   aws codepipeline get-pipeline --name <pipeline-name>
   ```

    Na saída, o objeto `pipeline` contém um objeto `artifactStore`, que contém um valor `location` com o nome do bucket.

1. Abra a pasta que corresponda ao nome do seu pipeline (por exemplo, `<pipeline-name>`).

1. Naquela pasta, abra a pasta denominada `default`.

1. Extraia o conteúdo do arquivo. Se houver vários arquivos na pasta, extraia o conteúdo do arquivo com o carimbo **Última modificação** mais recente. (Talvez você precise atribuir ao arquivo uma extensão `.zip`, de maneira que possa trabalhar com ele no utilitário ZIP do sistema.) O artefato de saída de compilação está no conteúdo extraído do arquivo.