Tutorial: Criar um pipeline que usa o Amazon S3 como um provedor de implantação - AWS CodePipeline

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: Criar um pipeline que usa o Amazon S3 como um provedor de implantação

Nesse tutorial, você configurará um pipeline que fornece continuamente arquivos usando o Amazon S3 como o provedor de ação de implantação no estágio de implantação. O pipeline concluído detecta alterações quando você faz uma alteração nos arquivos de origem em seu repositório de origem. O pipeline usa o Amazon S3 para implantar os arquivos no bucket. Sempre que você modifica ou adiciona os arquivos do site no local de origem, a implantação cria o site com os arquivos mais recentes.

Importante

Como parte da criação de um pipeline, um bucket de artefatos S3 fornecido pelo cliente será usado CodePipeline por for artefacts. (Isso é diferente do bucket usado para uma ação de origem do S3.) Se o bucket de artefatos do S3 estiver em uma conta diferente da conta do seu pipeline, certifique-se de que o bucket de artefatos do S3 Contas da AWS seja de propriedade de quem é seguro e confiável.

nota

Mesmo que você exclua arquivos do repositório de origem, a ação de implantação do S3 não exclui objetos do S3 correspondentes aos arquivos excluídos.

Esse tutorial fornece duas opções:

Importante

Muitas das ações adicionadas ao pipeline nesse procedimento envolvem AWS recursos que você precisa criar antes de criar o pipeline. AWS os recursos para suas ações de origem sempre devem ser criados na mesma AWS região em que você cria seu pipeline. Por exemplo, se você criar seu pipeline na região Leste dos EUA (Ohio), seu CodeCommit repositório deverá estar na região Leste dos EUA (Ohio).

Você pode adicionar ações entre regiões ao criar seu pipeline. AWS os recursos para ações entre regiões devem estar na mesma AWS região em que você planeja executar a ação. Para obter mais informações, consulte Adicionar uma ação entre regiões em CodePipeline.

Opção 1: Implantar arquivos estáticos de sites no Amazon S3

Neste exemplo, você baixa o arquivo de modelo de site estático de amostra, carrega os arquivos no seu AWS CodeCommit repositório, cria seu bucket e o configura para hospedagem. Em seguida, você usa o AWS CodePipeline console para criar seu pipeline e especificar uma configuração de implantação do Amazon S3.

Pré-requisitos

Você já deve ter o seguinte:

  • Um CodeCommit repositório. Você pode usar o AWS CodeCommit repositório em Tutorial: criar um pipeline simples (CodeCommitrepositório) que você criou.

  • Os arquivos de origem para o site estático. Use este link para fazer download de um exemplo de site estático. O download do sample-website.zip apresenta os seguintes arquivos:

    • Um arquivo index.html;

    • Um arquivo main.css

    • Um arquivo graphic.jpg

  • Um bucket do S3 configurado para hospedagem de site. Consulte Hospedagem de um site estático no Amazon S3. Crie o bucket na mesma região do pipeline.

    nota

    Para hospedar um site, seu bucket deve ter acesso público de leitura, o que dá acesso de leitura a todos. Com exceção da hospedagem de sites, é necessário manter as configurações de acesso padrão que bloqueiam o acesso público aos buckets do S3.

Etapa 1: Envie os arquivos de origem para o seu CodeCommit repositório

Nessa seção, envie seus arquivos de origem para o repositório que o pipeline usa para o estágio de origem.

Para enviar arquivos para o seu CodeCommit repositório
  1. Extraia os exemplos de arquivos obtidos por download. Não faça upload do ZIP arquivo para o seu repositório.

  2. Envie ou envie os arquivos para o seu CodeCommit repositório. Esses arquivos são o artefato de origem criado pelo assistente Create Pipeline para sua ação de implantação em CodePipeline. Os arquivos devem ter a seguinte aparência em seu diretório local:

    index.html main.css graphic.jpg
  3. Você pode usar o Git ou o CodeCommit console para carregar seus arquivos:

    1. Para usar a linha de comando Git a partir de um repositório clonado no computador local:

      1. Execute o seguinte comando para organizar todos os seus arquivos de uma só vez:

        git add -A
      2. Execute o seguinte comando para confirmar os arquivos com uma mensagem de confirmação:

        git commit -m "Added static website files"
      3. Execute o comando a seguir para enviar os arquivos do seu repositório local para o seu CodeCommit repositório:

        git push
    2. Para usar o CodeCommit console para carregar seus arquivos:

      1. Abra o CodeCommit console e escolha seu repositório na lista Repositórios.

      2. Selecione Add file (Adicionar arquivo) e clique em Upload file (Carregar arquivo).

      3. Selecione Choose file (Escolher arquivo) e procure o arquivo. Informe seu nome de usuário e endereço de e-mail para confirmar a alteração. Escolha Commit changes (Confirmar alterações).

      4. Repita essa etapa para cada arquivo que deseja carregar.

Etapa 2: Criar o pipeline

Nesta seção, você criará um pipeline com as seguintes ações:

  • Um estágio de origem com uma CodeCommit ação em que os artefatos de origem são os arquivos do seu site.

  • Um estágio de implantação com uma ação de implantação do Amazon S3.

Criar um pipeline com o assistente
  1. Faça login no AWS Management Console e abra o CodePipeline console em http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).

  3. Em Step 1: Choose pipeline settings (Etapa 1: selecionar as configurações do pipeline), em Pipeline name (Nome do pipeline), insira MyS3DeployPipeline.

  4. Em Tipo de pipeline, escolha V2. Para obter mais informações, consulte Tipos de pipeline. Escolha Próximo.

  5. Em Função de serviço, escolha Nova função de serviço para permitir CodePipeline a criação de uma função de serviço emIAM.

  6. Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).

  7. Em Step 2: Add source stage (Etapa 2: Adicionar estágio de origem), em Source provider (Fornecedor de origem), escolha AWS CodeCommit. Em Nome do repositório, escolha o nome do CodeCommit repositório em que você criou. Etapa 1: criar um CodeCommit repositório Em Nome do ramo, selecione o nome do ramo que contém a última atualização do código. A não ser que você tenha criado outro ramo, apenas main esta disponível.

    Depois de selecionar o nome do repositório e a filial, a regra Amazon CloudWatch Events a ser criada para esse pipeline é exibida.

    Escolha Próximo.

  8. Em Step 3: Add build stage (Etapa 3: Adicionar estágio de construção), selecione Skip build stage (Pular estágio de compilação) e aceite a mensagem de aviso ao clicar novamente em Skip (Pular).

    Escolha Próximo.

  9. Em Step 4: Add deploy stage (Etapa 4: Adicionar estágio de implantação):

    1. Em Deploy provider (Provedor de implantação), escolha Amazon S3.

    2. Em Bucket, insira o nome do seu bucket público.

    3. Selecione Extract file before deploy (Extrair arquivo antes de implantar).

      nota

      A implantação falhará se você não selecionar Extrair arquivo antes da implantação. Isso ocorre porque a AWS CodeCommit ação em seu pipeline compacta os artefatos de origem e seu arquivo é um ZIP arquivo.

      Quando Extract file before deploy (Extrair arquivo antes de implantar) for selecionado, o Deployment path (Caminho de implantação) será exibido. Insira no nome do caminho que você deseja usar. Isso cria uma estrutura de pastas no Amazon S3 para a qual os arquivos são extraídos. Para esse tutorial, deixe esse campo em branco.

      Etapa 4: página de implantação para uma ação de implantação do S3 com uma fonte AWS CodeCommit
    4. (Opcional) Em Predefinido ACL, você pode aplicar um conjunto de concessões predefinidas, conhecido como enlatado ACL, aos artefatos enviados.

    5. (Opcional) Em Cache control (Controle de cache), insira os parâmetros de armazenamento em cache. Você pode definir isso para controlar o comportamento do armazenamento em cache para solicitações/respostas. Para valores válidos, consulte o campo de Cache-Controlcabeçalho para HTTP operações.

    6. Escolha Próximo.

  10. Em Etapa 5: Revisar, revise as informações e, então selecione Criar pipeline.

  11. Depois que o pipeline for executado com êxito, abra o console do Amazon S3 e verifique se os arquivos aparecem no bucket público, conforme mostrado:

    index.html main.css graphic.jpg
  12. Acesse o endpoint para testar o site. O endpoint segue este formato: http://bucket-name.s3-website-region.amazonaws.com/.

    Exemplo do endpoint: http://my-bucket.s3-website-us-west-2.amazonaws.com/.

    A página da web a seguir é exibida.

Etapa 3: Realizar uma alteração em qualquer arquivo de origem e verificar a implantação

Inclua uma alteração nos arquivos de origem e envie-a ao repositório. Deste modo, a execução de seu pipeline é acionada. Verifique se o site está atualizado.

Opção 2: Implantar arquivos de arquivamento compilados no Amazon S3 a partir de um bucket de origem do S3

Nessa opção, os comandos de compilação em seu estágio de compilação compilam o TypeScript código em JavaScript código e implantam a saída no bucket de destino do S3 em uma pasta separada com carimbo de data e hora. Primeiro, você cria o TypeScript código e um arquivo buildspec.yml. Depois de combinar os arquivos de origem em um ZIP arquivo, você carrega o ZIP arquivo de origem no bucket de origem do S3 e usa um CodeBuild estágio para implantar um ZIP arquivo de aplicativo criado no bucket de destino do S3. O código compilado é mantido como um arquivo no bucket de destino.

Pré-requisitos

Você já deve ter o seguinte:

  • Um bucket de origem do S3. Você pode usar o bucket que criou em Tutorial: Criar um pipeline simples (bucket do S3).

  • Um bucket de destino do S3. Consulte Hospedagem de um site estático no Amazon S3. Certifique-se de criar seu bucket da Região da AWS mesma forma que o pipeline que você deseja criar.

    nota

    Este exemplo demonstra a implantação de arquivos em um bucket privado. Não ative o bucket de destino para hospedagem de sites nem anexe políticas que tornem o bucket público.

Etapa 1: Criar e fazer upload de arquivos de origem para o bucket de origem do S3

Nessa seção, você cria e faz upload dos arquivos de origem para o bucket que o pipeline usa para seu estágio de origem. Essa seção fornece instruções para criar os seguintes arquivos de origem:

  • Um buildspec.yml arquivo usado para CodeBuild criar projetos.

  • Um arquivo index.ts.

criar um arquivo buildspec.yml
  • Crie um arquivo denominado buildspec.yml com o seguinte conteúdo: Esses comandos de compilação instalam TypeScript e usam o TypeScript compilador para reescrever o código no index.ts código. JavaScript

    version: 0.2 phases: install: commands: - npm install -g typescript build: commands: - tsc index.ts artifacts: files: - index.js
Criar um arquivo index.ts
  • Crie um arquivo denominado index.ts com o seguinte conteúdo:

    interface Greeting { message: string; } class HelloGreeting implements Greeting { message = "Hello!"; } function greet(greeting: Greeting) { console.log(greeting.message); } let greeting = new HelloGreeting(); greet(greeting);
Como fazer upload de arquivos para o bucket de origem do S3
  1. Os arquivos devem ter a seguinte aparência em seu diretório local:

    buildspec.yml index.ts

    Compacte os arquivos e nomeie o arquivo source.zip.

  2. No console do Amazon S3, para o bucket de origem, selecione Carregar. Escolha Adicionar arquivos e, em seguida, procure o ZIP arquivo que você criou.

  3. Escolha Carregar. Esses arquivos são o artefato de origem criado pelo assistente Create Pipeline para sua ação de implantação em CodePipeline. O arquivo deve ter a seguinte aparência no bucket:

    source.zip

Etapa 2: Criar o pipeline

Nesta seção, você criará um pipeline com as seguintes ações:

  • Um estágio de origem com uma ação do Amazon S3 em que os artefatos de origem são os arquivos da aplicação para download.

  • Um estágio de implantação com uma ação de implantação do Amazon S3.

Criar um pipeline com o assistente
  1. Faça login no AWS Management Console e abra o CodePipeline console em http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).

  3. Em Step 1: Choose pipeline settings (Etapa 1: selecionar as configurações do pipeline), em Pipeline name (Nome do pipeline), insira MyS3DeployPipeline.

  4. Em Função de serviço, escolha Nova função de serviço para permitir CodePipeline a criação de uma função de serviço emIAM.

  5. Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).

  6. Em Step 2: Add source stage (Etapa 2: adicionar estágio de origem), em Source provider (Provedor de origem), escolha Amazon S3. Em Bucket, escolha o nome do bucket de origem. Em Chave de objeto do S3, insira o nome do seu ZIP arquivo de origem. Certifique-se de incluir a extensão de arquivo .zip.

    Escolha Próximo.

  7. Na Step 3: Add build stage (Etapa 3: adicionar estágio de compilação):

    1. Em Build provider (Provedor de compilação), escolha CodeBuild.

    2. Selecione Create build project (Criar projeto de compilação). Na página Create project (Criar projeto):

    3. Em Project name (Nome do projeto), insira um nome para esse projeto de compilação.

    4. Em Environment (Ambiente), escolha Managed image (Imagem gerenciada). Para Operating system, selecione Ubuntu.

    5. Em Runtime (Tempo de execução), selecione Standard (Padrão). Em Runtime version (Versão do tempo de execução), escolha aws/codebuild/standard:1.0.

    6. Na Image version (Versão da imagem), escolha Always use the latest image for this runtime version (Sempre usar a imagem mais recente para esta versão de tempo de execução).

    7. Em Função de serviço, escolha sua função de CodeBuild serviço ou crie uma.

    8. Para Build specifications (Especificações da compilação), escolha Use a buildspec file (Usar um arquivo buildspec).

    9. Escolha Continuar para CodePipeline. Uma mensagem será exibida se o projeto foi criado com sucesso.

    10. Escolha Próximo.

  8. Em Step 4: Add deploy stage (Etapa 4: Adicionar estágio de implantação):

    1. Em Deploy provider (Provedor de implantação), escolha Amazon S3.

    2. Em Bucket, insira o nome do bucket de destino do S3.

    3. Certifique-se de que Extract file before deploy (Extrair arquivo antes de implantar) esteja desmarcada.

      Quando Extract file before deploy (Extrair arquivo antes de implantar) estiver desmarcado, a S3 object key (chave de objeto do S3) será exibida. Insira no nome do caminho que você deseja usar: js-application/{datetime}.zip.

      Isso cria uma pasta js-application no Amazon S3 para a qual os arquivos são extraídos. Nessa pasta, a variável {datetime} cria um timestamp em cada arquivo de saída quando o pipeline é executado.

      A página Etapa 4: Implantar de uma ação de implantação do Amazon S3 com uma origem do Amazon S3
    4. (Opcional) Em Predefinido ACL, você pode aplicar um conjunto de concessões predefinidas, conhecido como enlatado ACL, aos artefatos enviados.

    5. (Opcional) Em Cache control (Controle de cache), insira os parâmetros de armazenamento em cache. Você pode definir isso para controlar o comportamento do armazenamento em cache para solicitações/respostas. Para valores válidos, consulte o campo de Cache-Controlcabeçalho para HTTP operações.

    6. Escolha Próximo.

  9. Em Etapa 5: Revisar, revise as informações e, então selecione Criar pipeline.

  10. Depois que o pipeline for executado com êxito, visualize o bucket no console do Amazon S3. Verifique se o ZIP arquivo implantado é exibido no bucket de destino, abaixo da js-application pasta. O JavaScript arquivo contido no ZIP arquivo deve serindex.js. O arquivo index.js contém a seguinte saída:

    var HelloGreeting = /** @class */ (function () { function HelloGreeting() { this.message = "Hello!"; } return HelloGreeting; }()); function greet(greeting) { console.log(greeting.message); } var greeting = new HelloGreeting(); greet(greeting);

Etapa 3: Realizar uma alteração em qualquer arquivo de origem e verificar a implantação

Faça uma alteração nos seus arquivos de origem e faça upload deles para o bucket de origem. Deste modo, a execução de seu pipeline é acionada. Visualize seu bucket de destino e verifique se os arquivos de saída implantados estão disponíveis na pasta js-application, conforme mostrado:

ZIPDownload de amostra