Tutorial: Crie um pipeline que publique seu aplicativo sem servidor no AWS Serverless Application Repository - 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: Crie um pipeline que publique seu aplicativo sem servidor no AWS Serverless Application Repository

Você pode usar AWS CodePipeline para entregar continuamente seu aplicativo AWS SAM sem servidor ao. AWS Serverless Application Repository

Este tutorial mostra como criar e configurar um pipeline para criar seu aplicativo sem servidor hospedado GitHub e publicá-lo automaticamente. AWS Serverless Application Repository O pipeline é usado GitHub como provedor de origem e CodeBuild como provedor de compilação. Para publicar seu aplicativo sem servidor no AWS Serverless Application Repository, você implanta um aplicativo (do AWS Serverless Application Repository) e associa a função Lambda criada por esse aplicativo como um provedor de ação Invoke em seu pipeline. Em seguida, você pode fornecer continuamente atualizações de aplicativos para o AWS Serverless Application Repository, sem escrever nenhum código.

Importante

Muitas das ações que você adiciona 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 ter mais informações, consulte Adicionar uma ação entre regiões no CodePipeline.

Antes de começar

Neste tutorial, assumimos o seguinte.

Etapa 1: Criar um arquivo buildspec.yml

Crie um buildspec.yml arquivo com o conteúdo a seguir e adicione-o ao repositório do GitHub seu aplicativo sem servidor. Substitua template.yml pelo AWS SAM modelo do seu aplicativo e o nome do bucket pelo bucket do S3 em que o aplicativo empacotado está armazenado.

version: 0.2 phases: install: runtime-versions: python: 3.8 build: commands: - sam package --template-file template.yml --s3-bucket bucketname --output-template-file packaged-template.yml artifacts: files: - packaged-template.yml

Etapa 2: Criar e configurar o pipeline

Siga estas etapas para criar seu pipeline no Região da AWS local em que você deseja publicar seu aplicativo sem servidor.

  1. Faça login no AWS Management Console e abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/.

  2. Se necessário, mude para o Região da AWS local em que você deseja publicar seu aplicativo sem servidor.

  3. Selecione Criar pipeline. Na página Choose pipeline settings (Selecionar configurações do pipeline), em Pipeline name (Nome do pipeline), insira o nome do seu pipeline.

  4. Em Tipo de pipeline, selecione V1 para os fins deste tutorial. Também é possível selecionar V2; no entanto, observe que os tipos de pipeline diferem em características e preços. Para ter mais informações, consulte Tipos de Pipeline.

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

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

  7. Na página Adicionar estágio de origem, em Provedor de origem, escolha GitHub.

  8. Em Conexão, escolha uma conexão existente ou crie uma nova. Para criar ou gerenciar uma conexão para sua ação GitHub de origem, consulteGitHub conexões.

  9. Em Repositório, escolha seu repositório GitHub de origem.

  10. Em Filial, escolha sua GitHub filial.

  11. Deixe os padrões restantes para a ação de origem. Escolha Próximo.

  12. Na página Add build stage (Adicionar estágio de compilação), adicione um estágio de compilação:

    1. Em Build provider (Provedor de compilação), escolha AWS CodeBuild. Em Region (Região), use a região do pipeline.

    2. Escolha Criar projeto.

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

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

    5. Em Runtime (Tempo de execução) e Runtime version (Versão do tempo de execução), escolha o tempo de execução e a versão necessários para o seu aplicativo sem servidor.

    6. Em Service role (Função de serviço), selecione New service role (Nova função de serviço).

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

    8. Escolha Continuar para CodePipeline. Isso abre o CodePipeline console e cria um CodeBuild projeto que usa o buildspec.yml em seu repositório para configuração. O projeto de compilação usa uma função de serviço para gerenciar AWS service (Serviço da AWS) permissões. Essa etapa pode levar alguns minutos.

    9. Escolha Próximo.

  13. Na página Add deploy stage (Adicionar estágio de implantação), escolha Skip deploy stage (Ignorar estágio de implantação) e aceite a mensagem de aviso ao clicar novamente em Skip (Ignorar). Escolha Próximo.

  14. Selecione Criar pipeline. Você deve ver um diagrama que mostra a origem e os estágios de compilação.

  15. Conceda à função CodeBuild de serviço permissão para acessar o bucket do S3 em que seu aplicativo empacotado está armazenado.

    1. No estágio Build (Compilação) de seu novo pipeline, escolha CodeBuild.

    2. Selecione a guia Build details (Detalhes de compilação).

    3. Em Ambiente, escolha a função CodeBuild de serviço para abrir o console do IAM.

    4. Expanda a seleção para CodeBuildBasePolicy e escolha Edit policy (Editar política).

    5. Selecione JSON.

    6. Adicione uma nova declaração de política com o seguinte conteúdo. A instrução permite CodeBuild colocar objetos no bucket do S3 onde seu aplicativo empacotado está armazenado. Substitua bucketname pelo nome do seu bucket do S3.

      { "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucketname/*" ], "Action": [ "s3:PutObject" ] }
    7. Escolha Revisar política.

    8. Escolha Salvar alterações.

Etapa 3: Implantar o aplicativo de publicação

Siga estas etapas para implantar o aplicativo que contém a função Lambda que executa a publicação no. AWS Serverless Application Repository Este aplicativo é aws-serverless-codepipeline-serverlessrepo-publish.

nota

Você deve implantar o aplicativo da Região da AWS mesma forma que seu pipeline.

  1. Vá até a página do aplicativo e escolha Deploy (Implantar).

  2. Selecione I acknowledge that this app creates custom IAM roles (Eu reconheço que este aplicativo cria funções personalizadas do IAM).

  3. Escolha Implantar.

  4. Escolha View AWS CloudFormation Stack para abrir o AWS CloudFormation console.

  5. Expanda a seção Resources (Recursos). Veja ServerlessRepoPublish, o que é do tipo AWS::Lambda::Function. Anote o ID físico desse recurso para a próxima etapa. Esse ID físico será usado ao criar a nova ação de publicação no CodePipeline.

Etapa 4: Criar a ação de publicação

Siga essas etapas para criar a ação de publicação em seu pipeline.

  1. Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/.

  2. Na seção de navegação à esquerda, escolha o pipeline que deseja editar.

  3. Selecione a opção Editar.

  4. Após o último estágio do pipeline atual, escolha + Add stage (+ Adicionar estágio). Em Stage name (Nome do estágio) insira um nome, como Publish, e escolha Add stage (Adicionar estágio).

  5. No novo estágio, escolha + Add action group (+ Adicionar grupo de ação).

  6. Insira um nome de ação. Em Action provider (Provedor de ação), em Invoke (Invocação), escolha AWS Lambda.

  7. Em Artefatos de entrada, escolha BuildArtifact.

  8. Em Nome da função, escolha a ID física da função Lambda que você anotou na etapa anterior.

  9. Escolha Save (Salvar) para a ação.

  10. Escolha Done (Concluído) para o estágio.

  11. No canto superior direito, escolha Save (Salvar).

  12. Para verificar seu pipeline, faça uma alteração em seu aplicativo em GitHub. Por exemplo, altere a descrição do aplicativo na Metadata seção do seu arquivo de AWS SAM modelo. Confirme a alteração e envie-a para sua GitHub filial. Deste modo, a execução de seu pipeline é acionada. Quando o pipeline estiver concluído, verifique se o aplicativo foi atualizado com a alteração no AWS Serverless Application Repository.