Tutorial: Faça upload de artefatos para o Amazon S3 - Amazon CodeCatalyst

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: Faça upload de artefatos para o Amazon S3

Neste tutorial, você aprende a fazer upload de artefatos em um bucket do Amazon S3 usando um fluxo de trabalho da CodeCatalyst Amazon que inclui algumas ações de criação. Essas ações são executadas em série quando o fluxo de trabalho é iniciado. A primeira ação de construção gera dois arquivos Hello.txt e Goodbye.txt os agrupa em um artefato de construção. A segunda ação de construção carrega o artefato para o Amazon S3. Você configurará o fluxo de trabalho para ser executado sempre que enviar um commit para seu repositório de origem.

Pré-requisitos

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 Criando um espaço.

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

  • 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 a IAMfunção padrão, escolha qualquer função. Você especificará uma função diferente posteriormente.

    Para obter mais informações, consulte Implantação em e Contas da AWS VPCs.

Etapa 1: criar uma AWS função

Nesta etapa, você cria uma AWS IAM função 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. A função é chamada de função Build.

nota

Se você já tem uma função de criação criada para outro tutorial, você também pode usá-la neste tutorial. Apenas certifique-se de que ele tenha as permissões e a política de confiança mostradas no procedimento a seguir.

Para obter mais informações sobre IAM funções, consulte IAMfunções no Guia AWS AWS Identity and Access Management do usuário.

Para criar uma função de criação
  1. Crie uma política para a função, da seguinte forma:

    1. Faça login em AWS.

    2. Abra o IAM console em https://console.aws.amazon.com/iam/.

    3. No painel de navegação, escolha Policies.

    4. Escolha Criar política.

    5. Escolha a JSONguia.

    6. Exclua o código existente.

    7. Cole o seguinte código:

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

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

      "Resource": "*"
    8. Escolha Próximo: etiquetas.

    9. Selecione Next: Review (Próximo: revisar).

    10. Em Nome, insira:

      codecatalyst-s3-build-policy
    11. Escolha Criar política.

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

  2. Crie a função de criação, da seguinte forma:

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

    2. Escolha a política de confiança personalizada.

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

    4. Adicione a seguinte política de confiança personalizada:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. Escolha Próximo.

    6. Em Políticas de permissões, pesquise codecatalyst-s3-build-policy e marque sua caixa de seleção.

    7. Escolha Próximo.

    8. Em Nome da função, digite:

      codecatalyst-s3-build-role
    9. Em Descrição da função, insira:

      CodeCatalyst build role
    10. Selecione Criar função.

    Agora você criou uma função 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

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

Como criar um bucket do Amazon S3
  1. Abra o console do Amazon S3 em. https://console.aws.amazon.com/s3/

  2. No painel principal, escolha Criar bucket.

  3. Em Nome do bucket, insira:

    codecatalyst-artifact-bucket
  4. Em AWS Region (Região da AWS ), escolha uma região. Este tutorial pressupõe que você escolheu US West (Oregon) us-west-2. Para obter informações sobre regiões suportadas pelo Amazon S3, consulte endpoints e cotas do Amazon Simple Storage Service no. Referência geral da AWS

  5. Na parte inferior da página, escolha Criar bucket.

  6. 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 us-west-2 do Oeste dos EUA (Oregon).

Etapa 3: criar um repositório de origem

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 obter mais informações sobre repositórios de origem, consulteCriação de um repositório de origem.

Como criar um repositório de origem
  1. Abra o CodeCatalyst console em https://codecatalyst.aws/.

  2. Navegue até seu projeto,codecatalyst-artifact-project.

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

  4. Escolha Adicionar repositório e selecione Criar repositório.

  5. Em Nome do repositório, digite:

    codecatalyst-artifact-source-repository
  6. Escolha Criar.

Agora você criou um repositório chamadocodecatalyst-artifact-source-repository.

Etapa 4: criar um fluxo de trabalho

Nesta etapa, você cria um fluxo de trabalho que consiste nos seguintes blocos de construção 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 obter mais informações sobre gatilhos, consulte. Iniciando um fluxo de trabalho executado automaticamente usando gatilhos

  • Uma ação de construção chamada GenerateFiles — No gatilho, a GenerateFiles ação cria dois arquivos Hello.txt e Goodbye.txt os empacota em um artefato de saída chamadocodecatalystArtifact.

  • Outra ação de criação chamada Upload — Ao concluir a GenerateFiles ação, a Upload ação executa o AWS CLI comando aws s3 sync para carregar os arquivos no codecatalystArtifact e no seu 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, para que você não precise 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 do ambiente de execução Para obter mais informações sobre o aws s3 sync comando AWS CLI's, consulte sync na Referência de AWS CLI Comandos.

Para obter mais informações sobre a ação de criação, consulteConstruindo com fluxos de trabalho.

Para criar um fluxo de trabalho
  1. No painel de navegação, escolha CI/CD e, em seguida, escolha Fluxos de trabalho.

  2. Escolha Criar fluxo de trabalho.

  3. Exclua o código de YAML amostra.

  4. Adicione o YAML código a seguir:

    nota

    No YAML código a seguir, você pode omitir a Connections: seção se quiser. Se você omitir essa seção, deverá garantir que a função especificada no campo Função padrão IAM em seu ambiente inclua as permissões e as políticas de confiança descritas emEtapa 1: criar uma AWS função. Para obter mais informações sobre como configurar um ambiente com uma IAM função padrão, consulteCriar um ambiente.

    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:

    Para obter informações sobre as propriedades desse arquivo, consulte Crie e teste ações YAML o.

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

  6. Escolha Commit (Confirmar).

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

    2. Em Confirmar mensagem, digite:

      add initial workflow file
    3. Para Repositório, escolha codecatalyst-artifact-source-repository.

    4. Em Nome da filial, escolha principal.

    5. Escolha Commit (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 codecatalyst-artifact-workflow.yaml arquivo ao seu 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, em seguida, escolha Fluxos de trabalho.

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

  3. Escolha GenerateFilesver o progresso da primeira ação de construção.

  4. Escolha Carregar para ver o progresso da segunda ação de compilação.

  5. Quando a ação de upload 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, escolha Logs para solucionar o problema.

Etapa 5: verificar os resultados

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

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

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

Limpeza

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

Para limpar CodeCatalyst
  1. Abra o CodeCatalyst console em https://codecatalyst.aws/.

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

  3. Exclua o codecatalyst-artifact-workflow fluxo de trabalho.

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/

    2. Exclua os arquivos no codecatalyst-artifact-bucket bucket.

    3. Exclua o codecatalyst-artifact-bucket bucket.

  2. Limpe da IAM seguinte forma:

    1. Abra o IAM console em https://console.aws.amazon.com/iam/.

    2. Exclua o codecatalyst-s3-build-policy.

    3. Exclua o codecatalyst-s3-build-role.