

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

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

# Tutorial: Fazer upload de artefatos no Amazon S3
<a name="build-deploy"></a>

Neste tutorial, você aprende a fazer upload de artefatos em um bucket do Amazon S3 usando um fluxo de trabalho da CodeCatalyst [Amazon](workflows-concepts.md#workflows-concepts-workflows) que inclui algumas ações [de](workflows-concepts.md#workflows-concepts-actions) criação. Essas ações são executadas em série quando o fluxo de trabalho é iniciado. A primeira ação de criação gera dois arquivos, `Hello.txt` e `Goodbye.txt`, e os agrupa em um artefato de criação. A segunda ação de criação carrega o artefato no Amazon S3. Você configurará o fluxo de trabalho para ser executado sempre que enviar uma confirmação para o repositório de origem.

**Topics**
+ [Pré-requisitos](#build-deploy-tut-prereqs)
+ [Etapa 1: criar uma AWS função](#build-deploy-tut-role)
+ [Etapa 2: criar um bucket do Amazon S3](#build-deploy-tut-artifact)
+ [Etapa 3: criar um repositório de origem](#deploy-tut-lambda-cfn-source)
+ [Etapa 4: criar um fluxo de trabalho](#build-deploy-tut-workflow.title)
+ [Etapa 5: verificar os resultados](#build-deploy.s3.verify)
+ [Limpeza](#deploy-tut-lambda-cfn-clean-up)

## Pré-requisitos
<a name="build-deploy-tut-prereqs"></a>

Antes de começar, você precisará fazer o seguinte:
+ Você precisa de um CodeCatalyst **espaço** com uma AWS conta conectada. Para obter mais informações, consulte [Criar um espaço](spaces-create.md).
+ Em seu espaço, você precisa de um projeto vazio chamado:

  ```
  codecatalyst-artifact-project
  ```

  Use a opção **Começar do zero** para criar esse projeto.

  Para obter mais informações, consulte [Criando um projeto vazio na Amazon CodeCatalyst](projects-create.md#projects-create-empty).
+ Em seu projeto, você precisa de um CodeCatalyst **ambiente** chamado:

  ```
  codecatalyst-artifact-environment
  ```

  Configure esse ambiente da seguinte forma:
  + Escolha qualquer tipo, como **Desenvolvimento**.
  + Conecte sua AWS conta a ela.
  + Para o **Perfil do IAM padrão**, escolha qualquer perfil. Você especificará um perfil diferente posteriormente.

  Para obter mais informações, consulte [Implantação em e Contas da AWS VPCs](deploy-environments.md).

## Etapa 1: criar uma AWS função
<a name="build-deploy-tut-role"></a>

Nesta etapa, você cria uma função AWS do IAM que posteriormente atribuirá à ação de criação em seu fluxo de trabalho. Essa função concede à ação de CodeCatalyst construção permissão para acessar sua AWS conta e gravar no Amazon S3, onde seu artefato será armazenado. O perfil é chamado de **Perfil de criação**.

**nota**  
Se você já tiver um perfil de criação para outro tutorial, também poderá usá-lo para este tutorial. Apenas garanta que ele tenha as permissões e a política de confiança mostradas no procedimento a seguir.

Para obter mais informações sobre as funções do IAM, consulte [Funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) no *Guia AWS AWS Identity and Access Management do usuário*.

**Como criar um perfil de criação**

1. Crie uma política para o perfil da seguinte maneira:

   1. Faça login em AWS.

   1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. No painel de navegação, selecione **Políticas**.

   1. Escolha **Criar política**.

   1. Escolha a guia **JSON**.

   1. Exclua o código existente.

   1. Cole o seguinte código:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:ListBucket"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**nota**  
Na primeira vez em que o perfil for usado para executar ações de fluxo de trabalho, use o caractere curinga na declaração de política de recursos e defina o escopo da política com o nome do recurso depois que ele estiver disponível.  

      ```
      "Resource": "*"
      ```

   1. Escolha **Próximo: tags**.

   1. Selecione **Próximo: revisar**.

   1. Em **Nome**, insira:

      ```
      codecatalyst-s3-build-policy
      ```

   1. Selecione **Criar política**.

      Agora você criou uma política de permissões.

1. Crie o perfil de criação, da seguinte forma:

   1. No painel de navegação, escolha **Perfis** e **Criar perfil**.

   1. Selecione **Política de confiança personalizada**.

   1. Exclua a política de confiança personalizada existente.

   1. Adicione a política de confiança personalizada a seguir:

   1. Escolha **Próximo**.

   1. Em **Políticas de permissões**, procure `codecatalyst-s3-build-policy` e marque a caixa de seleção.

   1. Escolha **Próximo**.

   1. Em **Nome do perfil**, insira:

      ```
      codecatalyst-s3-build-role
      ```

   1. Em **Descrição do perfil**, insira:

      ```
      CodeCatalyst build role
      ```

   1. Selecione **Criar perfil**.

   Agora você criou um perfil de criação com uma política de confiança e uma política de permissões.

## Etapa 2: criar um bucket do Amazon S3
<a name="build-deploy-tut-artifact"></a>

Nesta etapa, você cria um bucket do Amazon S3 no qual os artefatos `Hello.txt` e `Goodbye.txt` serão carregados.

**Como criar um bucket do Amazon S3**

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

1. No painel principal, selecione **Criar bucket**.

1. Em **Nome do bucket**, insira:

   ```
   codecatalyst-artifact-bucket
   ```

1. Na **região da AWS **, escolha uma região. Este tutorial pressupõe que você tenha escolhido o **Oeste dos EUA (Oregon) us-west-2**. Para ter informações sobre regiões com suporte do Amazon S3, consulte [Endpoints e cotas do Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) na *Referência geral da AWS*.

1. Selecione **Criar bucket** na parte inferior da página.

1. Copie o nome do bucket que você acabou de criar, por exemplo:

   ```
   codecatalyst-artifact-bucket
   ```

Agora você criou um bucket chamado **codecatalyst-artifact-bucket** na região Oeste dos EUA (Oregon), us-west-2.

## Etapa 3: criar um repositório de origem
<a name="deploy-tut-lambda-cfn-source"></a>

Nesta etapa, você cria um repositório de origem no CodeCatalyst. Esse repositório é usado para armazenar o arquivo de definição do fluxo de trabalho do tutorial. 

Para ter mais informações sobre repositórios de origem, consulte [Criar um repositório de origem](source-repositories-create.md).

**Como criar um repositório de origem**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navegue até o projeto, `codecatalyst-artifact-project`.

1. No painel de navegação, selecione **Código** e, em seguida, selecione **Repositórios de origem**. 

1. Escolha **Adicionar repositório** e selecione **Criar repositório**.

1. Em **Nome do repositório**, insira:

   ```
   codecatalyst-artifact-source-repository
   ```

1. Escolha **Criar**.

Agora você criou um repositório chamado `codecatalyst-artifact-source-repository`.

## Etapa 4: criar um fluxo de trabalho
<a name="build-deploy-tut-workflow.title"></a>

Nesta etapa, você cria um fluxo de trabalho que consiste nos seguintes componentes que são executados sequencialmente:
+ Um gatilho – Esse gatilho inicia a execução automática do fluxo de trabalho quando você envia uma alteração ao seu repositório de origem. Para ter mais informações sobre gatilhos, consulte [Início da execução automática de um fluxo de trabalho usando gatilhos](workflows-add-trigger.md).
+ Uma ação de criação chamada `GenerateFiles` — No gatilho, a ação `GenerateFiles` cria dois arquivos, `Hello.txt` e `Goodbye.txt`, os empacota em um artefato de saída chamado `codecatalystArtifact`.
+ Outra ação de criação chamada `Upload` — Ao concluir a ação `GenerateFiles`, a ação `Upload` executa o comando da AWS CLI `aws s3 sync` para carregar os arquivos no `codecatalystArtifact` e no repositório de origem para o bucket do Amazon S3. AWS CLI Ele vem pré-instalado e pré-configurado na plataforma de CodeCatalyst computação, então você não precisa instalá-lo ou configurá-lo.

  Para obter mais informações sobre o software pré-empacotado na plataforma de CodeCatalyst computação, consulte. [Especificação de imagens de ambiente de runtime](build-images.md) Para obter mais informações sobre o `aws s3 sync` comando AWS CLI's, consulte [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) na *Referência de AWS CLI Comandos*.

Para ter mais informações sobre a ação de criação, consulte [Criação com fluxos de trabalho](build-workflow-actions.md).

**Como criar um fluxo de trabalho**

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione **Criar fluxo de trabalho**.

1. Exclua o código de amostra YAML.

1. Adicione o seguinte código YAML:
**nota**  
No código YAML a seguir, você pode omitir a seção `Connections:` se quiser. Se você omitir essa seção, deverá garantir que o perfil especificado no campo **Perfil do IAM padrão** em seu ambiente inclua as permissões e as políticas de confiança descritas em [Etapa 1: criar uma AWS função](#build-deploy-tut-role). Para ter mais informações sobre como configurar um ambiente com um perfil do IAM padrão, consulte [Criar um ambiente](deploy-environments-creating-environment.md).

   ```
   Name: codecatalyst-artifact-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: Push
       Branches:
         - main   
   Actions:
     GenerateFiles:
       Identifier: aws/build@v1
       Configuration: 
         Steps:
           # Create the output files.
           - Run: echo "Hello, World!" > "Hello.txt"
           - Run: echo "Goodbye!" > "Goodbye.txt"
       Outputs:
         Artifacts:
           - Name: codecatalystArtifact
             Files:
               - "**/*"
     Upload:
       Identifier: aws/build@v1
       DependsOn: 
         - GenerateFiles
       Environment:
         Name: codecatalyst-artifact-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-s3-build-role
       Inputs:
         Artifacts:
           - codecatalystArtifact
       Configuration: 
         Steps:
           # Upload the output artifact to the S3 bucket.
           - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
   ```

   No código acima, substitua:
   + *codecatalyst-artifact-environment*com o nome do ambiente em que você criou[Pré-requisitos](#build-deploy-tut-prereqs).
   + *codecatalyst-account-connection*com o nome da conexão da conta que você criou[Pré-requisitos](#build-deploy-tut-prereqs).
   + *codecatalyst-s3-build-role* pelo nome do perfil de criação criado em [Etapa 1: criar uma AWS função](#build-deploy-tut-role).
   + *codecatalyst-artifact-bucket*com o nome do Amazon S3 em que você criou. [Etapa 2: criar um bucket do Amazon S3](#build-deploy-tut-artifact)

   Para ter informações sobre as propriedades nesse arquivo, consulte a [Ações de criação e de teste YAML](build-action-ref.md).

1. (Opcional) Selecione **Validar** para garantir que o código YAML seja válido antes de confirmar.

1. Selecione **Confirmar**.

1. Na caixa de diálogo **Confirmar fluxo de trabalho**, insira o seguinte:

   1. Em **Nome do arquivo do fluxo de trabalho**, deixe o padrão, `codecatalyst-artifact-workflow`.

   1. Em **Confirmar mensagem**, insira:

      ```
      add initial workflow file
      ```

   1. Em **Repositório**, selecione **codecatalyst-artifact-source-repository**.

   1. Em **Nome da ramificação**, selecione **principal**.

   1. Selecione **Confirmar**.

   Agora você criou um fluxo de trabalho. A execução de um fluxo de trabalho é iniciada automaticamente devido ao gatilho definido na parte superior do fluxo de trabalho. Especificamente, quando você confirmou (e enviou) o arquivo `codecatalyst-artifact-workflow.yaml` ao repositório de origem, o gatilho iniciou a execução do fluxo de trabalho.

**Para visualizar a execução do fluxo de trabalho em andamento**

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Escolha o fluxo de trabalho que você acabou de criar: `codecatalyst-artifact-workflow`.

1. Escolha **GenerateFiles**ver o progresso da primeira ação de construção.

1. Selecione **Carregar** para ver o progresso da segunda ação de criação.

1. Quando a ação **Carregar** terminar, faça o seguinte:
   + Se a execução do fluxo de trabalho for bem-sucedida, vá para o próximo procedimento.
   + Se a execução do fluxo de trabalho falhar, selecione **Logs** para solucionar o problema.

## Etapa 5: verificar os resultados
<a name="build-deploy.s3.verify"></a>

Depois que o fluxo de trabalho for executado, acesse o serviço Amazon S3 e examine seu *codecatalyst-artifact-bucket* bucket. Agora ele deve incluir os seguintes arquivos e pastas:

```
.
|— .aws/
|— .git/
|Goodbye.txt
|Hello.txt
|REAME.md
```

Os arquivos `Goodbye.txt` e `Hello.txt` foram enviados porque faziam parte do artefato `codecatalystArtifact`. Os arquivos `.aws/`, `.git/` e `README.md` foram enviados porque estavam no repositório de origem.

## Limpeza
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Limpe CodeCatalyst e evite AWS ser cobrado por esses serviços.

**Para limpar CodeCatalyst**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Exclua o repositório de origem `codecatalyst-artifact-source-repository`.

1. Exclua o fluxo de trabalho `codecatalyst-artifact-workflow`.

**Para limpar AWS**

1. Limpe no Amazon S3, da seguinte forma:

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

   1. Exclua os arquivos no bucket `codecatalyst-artifact-bucket`.

   1. Exclua o bucket `codecatalyst-artifact-bucket`.

1. Limpe no IAM, da seguinte forma:

   1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Exclua o `codecatalyst-s3-build-policy`.

   1. Exclua o `codecatalyst-s3-build-role`.