코드를 수정하고 Serverless Deploy를 시도했을 때 UPDATE_ROLLBACK_FAILED 라는 에러가 나왔다.
son-yeonju@MacBook-Pro-4 datahunt-mail-slack % sls deploy
...
Error:
Stack:arn:aws:cloudformation:ap-northeast-2:... is in UPDATE_ROLLBACK_FAILED state and can not be updated.
해당 문서를 참고하였고, CloudFormation에서 실패된 업데이트 전으로 롤백을 시도했다.
이해한 바로는 우선 롤백을 하면 이전에 그니까 이런 오류가 나지 않았던 상태로 되돌아가야 해서 수정한 코드를 원래대로 돌려놓고 sls deploy
를 진행했고, 업데이트에 성공하였다.
Serverless 배포 상태
1: 초기 배포
...
3: 오류가 발생하지 않았던 update completed된 상태
4: 오류가 발생한 새로 update failed 된 상태 (코드 추가)
에서 4를 지우고 3으로 롤백을 한다면 자동으로 failed가 해결되는 게 아닌,
3에서 deploy 했던 코드 그대로 유지해야 된다는 소리다.
son-yeonju@MacBook-Pro-4 datahunt-mail-slack % sls deploy
Running "serverless" from node_modules
DOTENV: Loading environment variables from .env:
- PORT
- SLACK_API_TOKEN
- CHANNEL_ID
- SENDGRID_KEY
- CERTIFICATE_ARN
Deploying datahunt-mail-slack to stage prod (ap-northeast-2)
SERVERLESS-IGNORE: Loaded .slsignore
- *.log
- .env
- .git/*
- __tests__/*
Compiling with Typescript...
Using local tsconfig.json - tsconfig.json
Typescript compiled.
✔ Service deployed to stack datahunt-mail-slack-prod (80s)
endpoint: POST - https://...
functions:
sendMessageToDatahunt: datahunt-mail-slack-prod-sendMessageToDatahunt (20 MB)
Serverless Domain Manager:
...
----------------------------------------