A função Lambda não é atualizada, mesmo após a execução bem-sucedida do Pipeline CodeBuild
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
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 .