일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- jsEvent Loop
- 알고리즘
- 향해99
- Client-Side Navigation
- 식별자란
- CloudFront 무효화
- Passed by Value
- NVM
- Til
- lgcns camp
- Redux
- NextJs
- next/link
- Node
- 원티트 프리온보딩인턴십 1주차
- react portal
- 광고지구
- git
- CPU와 GPU의 차이점
- lg cns am inspire camp 2기
- 유령 의존성
- 원티드인턴십
- JavaScript
- react
- 원티드프리온보딩
- lg cns am inspire camp
- JS
- 회고록
- 프로젝트
- Mac OS NVM
- Today
- Total
SUIN
Git Action CloudFront Invalidate 무효화 CD 이슈해결 본문
지난번 CD 연결이 성공한 줄 알고 방치시켜놨던 action에서 알고 보니 CloudFront 무효화 처리가 안되고 있었던 것이었다..
기존 코드
- name: Deploy
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
aws s3 cp --recursive --region ap-northeast-2 build s3://${{secrets.S3_BUCKET_NAME}}
- name: Invalidate CloudFront Cache
uses: chetan/invalidate-cloudfront-action@master
env:
AWS_DISTRIBUTION: ${{ secrets.DISTRIBUTION_ID }}
PATHS: '/index.html'
continue-on-error: true
첫번째 시도!
aws 공식 문서를 참고하여 다시 코드 수정!
파일 무효화 - Amazon CloudFront
아직 진행 중인 무효화를 복사하고 무효화 경로의 목록을 업데이트하여 업데이트된 무효화를 실행하는 경우, CloudFront에서는 복사한 무효화를 중단하거나 삭제하지 않습니다. 무효화 경로가 원
docs.aws.amazon.com
- name: Invalidate CloudFront Cache
run: aws cloudfront create-invalidation --distribution-id ${{secrets.DISTRIBUTION_ID}} --paths "/*"
첫 번째 시도 결과
DISTRIBUTION_ID 또한 secrets에 잘 담았는데도 불구하고 255 err 발생
두 번째 시도!
기존에 최신 우분투 버전에서 발생되는 문제일 수 있다는 말과 18.04로 ubuntu version downgrade 시도
<botocore.awsrequest.AWSRequest object at > ##[error]Process completed with exit code 255.
https://github.com/aws/aws-cli/issues/5262멀정히 작동하던 githubaction 을 통한 자동배포에서 에러 발생함알고보니 우분투 버전을 항상 최신버전으로 지정해놓았던 것이 원인이었음yml 파일을 아래처럼 수
velog.io
GitHub Actions AWS error exit code 255
If you’ve got GitHub actions running on ubuntu-latest which have stopped working with a not-so-helpful Error: Process completed with exit code 255 message, you need to add a default region. T…
dotjoeblog.wordpress.com
Ubuntu-latest workflows will use Ubuntu-20.04 · Issue #1816 · actions/runner-images
UPDATE: Migration has been finished and all ubuntu-latest builds are using Ubuntu 20.04 Ubuntu-20.04 is ready to be the default version for the “ubuntu-latest” label in GitHub Actions and Azure Dev...
github.com
두 번째 시도 결과!
우분투 버전이 문제가 아니었다..
세 번째 시도!
에러 코드를 자세히 살펴본 후 awsRequest에 문제가 있는 것 같아서 혹시 IAM 연결에 문제가 없는지 다시 한번 더 되돌아보면서 확인해보니 CloudFront 정책이 빠져있던걸 확인하였다!
추가로 기존에 작성했던 코드는 s3 버킷에 바로 연결, 무효화 2가지 name으로 작성이 되어있었고 aws 연결, s3 업데이트 , 무효화 3가지로 분리하는 방식으로 코드를 수정해주었다
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Upload to S3
env:
BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME}}
run: |
aws s3 sync \
./build s3://$BUCKET_NAME
- name: CloudFront Invalidation
env:
CLOUD_FRONT_ID: ${{ secrets.AWS_CLOUDFRONT_ID}}
run: |
aws cloudfront create-invalidation \
--distribution-id $CLOUD_FRONT_ID --paths /*
세 번째 시도 결과!
성공!!
참고한 글
https://hyeon9mak.github.io/cloudfront-caching-control-with-invalidations/
'TIL' 카테고리의 다른 글
[TIL] input enter key event 엔터키 submit 이벤트 처리 (0) | 2022.10.31 |
---|---|
[TIL] input tag [DOM]Password field is not contained in a form (0) | 2022.10.31 |
[TIL] themoviedb API (0) | 2022.06.14 |
[TIL] emotion first-child console error (0) | 2022.06.09 |
[TIL] 22.03.11 React Mock Service Worker(리액트 목 서비스워커로 모의데이터 사용해보기 ) (0) | 2022.03.11 |