Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JavaScript
- 식별자란
- 알고리즘
- input error
- 프로젝트
- CloudFront 무효화
- NVM
- 인풋태그 엔터
- JS
- react portal
- Client-Side Navigation
- 원티트 프리온보딩인턴십 1주차
- 원티드인턴십
- Passed by Value
- git
- 유령 의존성
- Mac OS NVM
- 회고록
- Node
- NextJs
- 향해99
- toast err
- CPU와 GPU의 차이점
- Redux
- Til
- next/link
- jsEvent Loop
- 광고지구
- react
- 원티드프리온보딩
Archives
- Today
- Total
SUIN
Git Action CloudFront Invalidate 무효화 CD 이슈해결 본문
728x90
지난번 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 공식 문서를 참고하여 다시 코드 수정!
- 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 시도
두 번째 시도 결과!
우분투 버전이 문제가 아니었다..
세 번째 시도!
에러 코드를 자세히 살펴본 후 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 |