Amplify의 Multi Environment에서 개인적으로하는 일 🚀

2896 단어 amplify
AWS Amplify Advent Calendar 2020
12월 16일을 담당하는 Dyson입니다.
오늘은 내 생일입니다

Amplify의 Multi Environment를 사용하면 같은 코드로 환경을 분리할 수 있습니다.
예를 들어, 상용 환경, 스테이징 환경 및 개발 환경의 분리는 amplify에서 수행할 수 있습니다.
개발을 해 나가는데는 꽤 편리합니다.

참고: Amplify Multi Environment에서 팀 개발을 준비
htps : // v.ぁsss d. jp / rc c / s / a mp ぃ fy - l chen v - t me - v /

multienv는 편리하지만 Git 브랜치 전환시 env 전환
잊어 버리거나 자동으로 다시 쓰는 별도의 env 설정 파일에서 충돌이 일어나기 때문에
개인적으로 하고 있는 일을 소개합니다.

1. Git 브랜치 전환시 env 전환을 잊지 않도록 방지



전환할 스크립트를 만들었습니다.
  • bin/checkout-env.sh
  • #!/bin/sh
    declare -A branches=(
        ["prod"]="master"
        ["staging"]="staging"
        ["dev"]="develop"
    )
    PS3="Select checkout env: "
    select selected in "${!branches[@]}"
    do
      target=$selected
      break
    done
    
    echo "Checkout: $target"
    git checkout ${branches[$target]} && amplify env checkout $target
    
  • 실행 방법
  • $bin/checkkout-env.sh
    1) dev
    2) prod
    3) staging
    Select checkout env: 2
    Checkout: prod
    Switched to branch 'master'
    Your branch is up to date with 'origin/master'.
    ✔ Initialized provider successfully.
    Initialized your environment successfully.
    

    런타임에 env를 숫자로 지정합니다. (이전에는 인수로 env를 지정했지만 선택 표현식으로 변경했습니다.)
    env의 전환을 먼저 실시하면 파일의 재기록에 의해 Git 브랜치를 변경할 수 없기 때문에 먼저 Git 브랜치 전환을 실행하고 있습니다.

    ※env명과 브랜치명은 각자의 환경에 맞추어 스크립트의 변경이 필요하게 됩니다.

    2. 다른 env의 설정 파일로 경합을 회피한다



    Amplify env를 전환하거나 amplify push를 할 때 설정 파일과 CloudFormation
    템플릿이 업데이트됩니다.
    .gitignore에서 파일을 제외하는 방법도 있지만 관리 대상에서 제외하고 싶지 않았기 때문에
    .git/config와 .gitattributes에 충돌시 자체 분기의 파일을 선호하는 설정을 추가했습니다.
  • .git/config
  • [merge "ours"]
        name = "Keep ours merge"
        driver = true
    
  • .gitattributes
  • src/aws-exports.js merge=ours
    amplify/team-provider-info.json merge=ours
    amplify/backend/api/*/build/cloudformation-template.json merge=ours
    amplify/backend/api/*/build/parameters.json merge=ours
    amplify/backend/auth/*/parameters.json merge=ours
    amplify/backend/function/*/*-cloudformation-template.json merge=ours
    

    그 외 이런 궁리를 하고 있다든가 있으면 가르쳐 주세요!
    그럼 Merry Amplify

    좋은 웹페이지 즐겨찾기