다음을 통해 공유


Azure Static Web Apps에 웹앱 배포

이 문서에서는 선택한 프레임워크를 사용하여 새 웹앱을 만들고 로컬로 실행한 다음 Azure Static Web Apps에 배포합니다.

필수 조건

이 자습서를 완전히 학습하려면 다음이 필요합니다.

리소스 설명
Azure 구독 계정이 없는 경우 체험 계정을 만들 수 있습니다.
Node.JS 버전 20.0 이상을 설치합니다.
Azure CLI 버전 2.6x 이상을 설치합니다.

텍스트 편집기도 필요합니다. Azure를 사용하려면 Visual Studio Code가 권장됩니다.

Linux, macOS, Windows 또는 Linux용 Windows 하위 시스템을 포함하여 선택한 플랫폼에서 이 문서에서 만든 앱을 실행할 수 있습니다.

웹앱 만들기

  1. 터미널 창을 엽니다.
  1. 코드에 적절한 디렉터리를 선택한 후 다음 명령을 실행합니다.

    npm create vite@latest swa-vanilla-demo -- --template=vanilla
    cd swa-vanilla-demo
    npm install
    npm run dev
    

    이 명령을 실행하면 개발 서버가 웹 사이트의 URL을 인쇄합니다. 링크를 선택하여 기본 브라우저에서 엽니다.

    생성된 Vanilla 웹 애플리케이션의 스크린샷.

  1. 코드에 적절한 디렉터리를 선택한 후 다음 명령을 실행합니다.

    npx --package @angular/cli@latest ng new swa-angular-demo --ssr=false --defaults
    cd swa-angular-demo
    npm start
    

    이 명령을 실행하면 개발 서버가 웹 사이트의 URL을 인쇄합니다. 링크를 선택하여 기본 브라우저에서 엽니다.

    생성된 각도 웹 애플리케이션의 스크린샷.

  1. 코드에 적절한 디렉터리를 선택한 후 다음 명령을 실행합니다.

    npm create vite@latest swa-react-demo -- --template react
    cd swa-react-demo
    npm install
    npm run dev
    

    이 명령을 실행하면 개발 서버가 웹 사이트의 URL을 인쇄합니다. 링크를 선택하여 기본 브라우저에서 엽니다.

    생성된 React 웹 애플리케이션의 스크린샷.

  1. 코드에 적절한 디렉터리를 선택한 후 다음 명령을 실행합니다.

    npm create vite@latest swa-vue-demo -- --template vue
    cd swa-vue-demo
    npm install
    npm run dev
    

    이 명령을 실행하면 개발 서버가 웹 사이트의 URL을 인쇄합니다. 링크를 선택하여 기본 브라우저에서 엽니다.

    생성된 Vue 웹 애플리케이션의 스크린샷.

  1. 개발 서버를 중지하려면 Cmd/Ctrl+C를 선택합니다.

Azure에서 정적 웹앱 만들기

Azure Portal, Azure CLI, Azure PowerShell 또는 Visual Studio Code(Azure Static Web Apps 확장 포함)를 사용하여 정적 웹앱을 만들 수 있습니다. 이 자습서에서는 Azure CLI를 사용합니다.

  1. Azure CLI에 로그인:

    az login
    

    기본적으로 이 명령은 프로세스를 완료하기 위해 브라우저를 엽니다. Azure CLI는 사용자 환경에서 이 방법이 작동하지 않는 경우 다양한 로그인 방법을 지원합니다.

  2. 구독이 여러 개인 경우 구독을 선택해야 할 수도 있습니다. 다음 명령을 사용하여 현재 구독을 볼 수 있습니다.

    az account show
    

    구독을 선택하려면 az account set 명령을 실행하면 됩니다.

    az account set --subscription "<SUBSCRIPTION_NAME_OR_ID>"
    
  3. 리소스 그룹을 만듭니다.

    리소스 그룹은 Azure 리소스를 함께 그룹화하는 데 사용됩니다.

    az group create -n swa-tutorial -l centralus --query "properties.provisioningState"
    

    -n 매개 변수는 사이트 이름을 나타내고, -l 매개 변수는 Azure 위치 이름입니다. 명령은 --query "properties.provisioningState"로 끝나므로 명령은 성공 또는 오류 메시지만 반환합니다.

  4. 새로 만든 리소스 그룹에 정적 웹앱을 만듭니다.

    az staticwebapp create -n swa-demo-site -g swa-tutorial --query "defaultHostname"
    

    -n 매개 변수는 사이트 이름을 나타내고, -g 매개 변수는 Azure 리소스 그룹의 이름을 나타냅니다. 이전 단계와 동일한 리소스 그룹 이름을 지정해야 합니다. 정적 웹앱은 전역적으로 배포되므로 앱 배포 방법에 위치는 중요하지 않습니다.

    이 명령은 웹앱의 URL을 반환하도록 구성되었습니다. 터미널 창에서 브라우저로 값을 복사하여 배포된 웹앱을 볼 수 있습니다.

배포 구성

  1. 다음 콘텐츠로 애플리케이션 코드에 staticwebapp.config.json 파일을 추가합니다.

    {
        "navigationFallback": {
            "rewrite": "/index.html"
        }
    }
    

    대체 경로를 정의하면 사이트에서 도메인에 대한 모든 요청에 ​​대해 index.html 파일을 제공할 수 있습니다.

    사용 중인 경우 이 파일을 소스 코드 제어 시스템(예: git)에 체크 인합니다.

  2. 프로젝트에 Azure SWA(Static Web Apps) CLI를 설치합니다.

    npm install -D @azure/static-web-apps-cli
    

    SWA CLI는 사이트를 클라우드에 배포하기 전에 로컬에서 개발하고 테스트하는 데 도움이 됩니다.

  3. 프로젝트에 대한 새 파일을 만들고 이름을 swa-cli.config.json으로 지정합니다.

    swa-cli.config.json 파일은 사이트를 빌드하고 배포하는 방법을 설명합니다.

    이 파일이 만들어지면 npx swa init 명령을 사용하여 해당 콘텐츠를 생성할 수 있습니다.

    npx swa init --yes
    
  4. 배포용 애플리케이션을 빌드합니다.

    npx swa build
    
  5. SWA CLI를 사용하여 Azure에 로그인합니다.

    npx swa login --resource-group swa-tutorial --app-name swa-demo-site
    

    이전 섹션에서 만든 것과 동일한 리소스 그룹 이름과 정적 웹앱 이름을 사용합니다. 로그인을 시도하면 필요한 경우 프로세스를 완료하기 위해 브라우저가 열립니다.

Warning

Angular v17 이상에서는 선택할 수 있는 출력 경로의 하위 디렉터리에 배포 가능한 파일을 배치합니다. SWA CLI는 디렉터리의 특정 위치를 알지 못합니다. 다음 단계에서는 이 경로를 올바르게 설정하는 방법을 보여 줍니다.

프로젝트의 dist/swa-angular-demo/browser 폴더에서 생성된 index.html 파일을 찾습니다.

  1. SWA_CLI_OUTPUT_LOCATION 환경 변수를 index.html 파일이 포함된 디렉터리로 설정합니다.

    export SWA_CLI_OUTPUT_LOCATION="dist/swa-angular-demo/browser"
    

Azure에 사이트 배포

정적 웹앱에 코드를 배포합니다.

npx swa deploy --env production

애플리케이션을 배포하는 데 몇 분 정도 걸릴 수 있습니다. 완료되면 사이트의 URL이 표시됩니다.

배포 명령의 스크린샷.

대부분의 시스템에서는 사이트의 URL을 선택하여 기본 브라우저에서 열 수 있습니다.

리소스 정리(선택 사항)

다른 자습서를 계속하지 않는 경우 Azure 리소스 그룹 및 리소스를 제거합니다.

az group delete -n swa-tutorial

리소스 그룹을 제거하면 포함된 모든 리소스가 삭제됩니다. 이 작업은 취소할 수 없습니다.

다음 단계