A função Lambda não é atualizada, mesmo após a execução bem-sucedida do Pipeline CodeBuild

Aug 31 2020

Recentemente, configurei um CodePipeline básico na AWS (seguindo este guia: https://docs.aws.amazon.com/lambda/latest/dg/build-pipeline.html) que é disparado quando há um novo commit no repositório CodeCommit.

Porém, mesmo após a execução bem-sucedida do pipeline, a função lambda não é atualizada.

Meu buildspec.yml:

version: 0.2
phases:
  install:
    runtime-versions:
        nodejs: 12
  build:
    commands:
      - npm install
      - export BUCKET=xx-test
      - aws cloudformation package --template-file template.yaml --s3-bucket $BUCKET --output-template-file outputtemplate.yml
artifacts:
  type: zip
  files:
    - template.yml
    - outputtemplate.yml

Meu template.yaml:

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  helloWorld
  API Gateway connectivity helloWorld
  
Globals:
  Function:
    Timeout: 3

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./
      Handler: app.lambdaHandler
      Runtime: nodejs12.x
      Events:
        HelloWorld:
          Type: Api
          Properties:
            Path: /hello
            Method: get

Existe alguma configuração adicional que precisa ser feita?

Respostas

2 Marcin Aug 31 2020 at 18:17

Pelo que você postou, parece que sua última ação é CHANGE_SET_REPLACE? Nesse caso, isso explicaria por que não há atualizações em sua função lambda. Ou seja, isso apenas cria um changeset, mas não o executa . Em outras palavras, não se aplica.

Você precisa adicionar uma nova ação após a CHANGE_SET_REPLACEação, que é chamada CHANGE_SET_EXECUTE. Esta ação pegará as mudanças criadas pelo CHANGE_SET_REPLACEe realmente as aplicará à sua pilha.

Como adicionar tal ação é descrito em Concluir o estágio de implantação do tutorial que você forneceu:

Os conjuntos de alterações permitem visualizar as alterações feitas antes de fazê-las e adicionar estágios de aprovação. Adicione uma segunda ação que execute o conjunto de mudanças para concluir a implementação .