Tutorial: Implantações de função do Lambda com o CodePipeline
Este tutorial ajuda você a criar uma ação de implantação no CodePipeline que implante o código na função configurada por você no Lambda. Você criará uma função do Lambda de amostra na qual vai criar um alias e uma versão, adicionar a função do Lambda compactada ao local de origem e executar a ação do Lambda no pipeline.
nota
Como parte da criação de um pipeline no console, um bucket de artefatos do S3 será usado pelo CodePipeline para artefatos. (Este bucket não é o mesmo utilizado para uma ação de origem do S3.) Se o bucket de artefatos do S3 estiver em uma conta diferente da conta do pipeline, garanta que o bucket de artefatos do S3 seja de propriedade de Contas da AWS seguras e confiáveis.
nota
A ação de implantação Lambda só está disponível para pipelines do tipo V2.
Pré-requisitos
Para você usar este tutorial para criar seu pipeline de CD, alguns recursos precisam estar em operação. Veja aqui estão os itens que você precisa para começar:
nota
Todos esses recursos devem ser criados na mesma região da AWS.
-
Um repositório do controle de origem, como o GitHub, ou um bucket do S3 de origem (este tutorial usa o S3), onde você armazenará um arquivo
.zipcriado para a função do Lambda. -
Você deve usar um perfil de serviço do CodePipeline existente que foi atualizado com as permissões da ação. Para atualizar o perfil de serviço, consulte Permissões de política do perfil de serviço para a ação de implantação do Lambda.
Assim que você atender a esses pré-requisitos, poderá continuar com o tutorial e criar seu pipeline de CD.
Etapa 1: Criar a função do Lambda de amostra
Nesta etapa, você criar a função do Lambda na qual implantará.
Como criar sua função do Lambda
-
Acesse o console do Lambda e siga as etapas no tutorial a seguir para criar uma função do Lambda de amostra: link.
-
Na navegação superior, escolha Criar e selecione Iniciar do zero na parte superior da página.
-
Em Nome, insira
MyLambdaFunction. -
Publique uma nova versão. Esta será a versão para a qual o alias apontará.
-
Selecione a função.
-
Escolha o menu suspenso Ações.
-
Escolha Publicar nova versão.
-
(Opcional) Adicione à descrição em Descrição.
-
Selecione Publish.
-
-
Crie um alias para a função, como
aliasV1. -
Verifique se o alias está apontando para a versão recém-criada por você (como 1).
nota
Se escolher $LATEST, você não conseguirá usar os atributos de mudança de tráfego porque o Lambda não dá suporte a $LATEST para um alias que aponte para mais de 1 versão.
Etapa 2: Carregar o arquivo de função no repositório
Baixe a função a e salve como um arquivo zip. Carregue o arquivo compactado no bucket do S3 usando as etapas a seguir.
Para adicionar um arquivo .zip ao repositório de origem
-
Abra o bucket do S3.
-
Escolha Carregar.
-
Carregue o arquivo zip que contém o arquivo
sample_lambda_source.zipno bucket de origem.Anote o caminho.
object key
Etapa 3: Criação do pipeline
Use o assistente do CodePipeline para criar os estágios de pipeline e conectar o repositório de origem.
Para criar o pipeline
Abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline/
. -
Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).
-
Na página Etapa 1: Escolher opção de criação, em Opções de criação, selecione a opção Criar pipeline personalizado. Escolha Próximo.
-
Em Etapa 2: Escolher as configurações do pipeline, em Nome do pipeline, insira
MyPipeline. -
O CodePipeline disponibiliza pipelines dos tipos V1 e V2, que apresentam características e custos diferentes. O tipo V2 é o único tipo que você pode escolher no console. Para ter mais informações, consulte Pipeline types. Para obter informações sobre preços do CodePipeline, consulte Preços
. -
Em Perfil de serviço, escolha Usar perfil de serviço existente e o perfil de serviço do CodePipeline que foi atualizado com as permissões necessárias para essa ação. Para configurar o perfil de serviço do CodePipeline dessa ação, consulte Permissões de política do perfil de serviço para a ação de implantação do Lambda.
-
Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).
-
Na página Etapa 3: Adicionar etapa de origem, adicione uma etapa de origem:
-
Em Source provider (Provedor de origem), selecione Amazon S3.
-
Em Chave de objeto, adicione o nome do arquivo .zip, inclusive a extensão do arquivo, como
sample_lambda_source.zip.
Escolha Próximo.
-
-
Na página Etapa 4: Adicionar etapa de compilação, escolha Ignorar.
-
Na página Etapa 5: Adicionar etapa de teste, escolha Ignorar.
-
Na página Etapa 6: Adicionar etapa de implantação, escolha Lambda.
-
Adicione o nome e o alias da função.
-
Escolha a estratégia de implantação.
-
Escolha Próximo.
-
-
Na página Step 7: Review, revise a configuração do pipeline e escolha Create pipeline para criá-lo.
Etapa 4: Testar o pipeline
O pipeline deve ter tudo para realizar uma implantação contínua de ponta a ponta nativa da AWS. Agora, teste a funcionalidade enviando uma alteração de código ao repositório de origem.
Para testar o pipeline
-
Faça uma alteração no código no repositório de origem configurado, confirme e envie a alteração.
Abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline/
. -
Escolha o pipeline na lista.
-
Observe a evolução do pipeline pelos respectivos estágios. O pipeline deve ser concluído, e a ação é implantada na função do Lambda.
Saiba mais
A ação de implantação do Lambda permite dois métodos de implantação. Um método é a mudança de tráfego sozinho, sem um artefato de entrada da ação de origem. O outro método é atualizar o código da função usando um artefato de entrada da ação de origem e, em seguida, publicar uma nova versão com base no código atualizado. Para o segundo método, se o alias for fornecido, o CodePipeline também fará a mudança de tráfego. Este tutorial da ação de implantação do Lambda demonstra como atualizar a função usando um artefato de origem.
Para saber mais sobre a ação, consulte a página de referência da ação emAWS LambdaReferência da ação de implantação do .