Azure Static Web Apps CLI를 사용하여 정적 웹앱 배포
Azure Static Web Apps CLI(SWA CLI)에는 현재 프로젝트를 Azure Static Web Apps에 배포하는 deploy
명령이 있습니다.
일반적인 배포 시나리오는 다음과 같습니다.
- API가 없는 프런트 엔드 앱
- API가 포함된 프런트 엔드 앱
- Blazor 앱
배포 토큰
SWA CLI는 CI/CD 환경에서 설정을 사용하도록 설정하기 위해 배포 토큰을 사용한 배포를 지원합니다.
다음에서 배포 토큰을 가져올 수 있습니다.
Azure Portal: 홈 → Static Web App → 인스턴스 → 개요 → 배포 토큰 관리
Azure CLI:
secrets list
명령 사용:az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
Azure Static Web Apps CLI:
deploy
명령 사용:swa deploy --print-token
그런 다음, --deployment-token <TOKEN>
에 토큰 값을 사용하거나 SWA_CLI_DEPLOYMENT_TOKEN
라는 환경 변수를 만들어 배포 토큰으로 설정할 수 있습니다.
Important
배포 토큰을 퍼블릭 리포지토리 저장하지 마세요.
API 없이 프런트 엔드 앱 배포
API 없이 프런트 엔드 애플리케이션을 Azure Static Web Apps에 배포할 수 있습니다. 프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우 swa build
를 실행하거나 애플리케이션 빌드 지침을 참조하세요.
배포 구성 요구 사항에 가장 적합한 옵션을 선택합니다.
옵션 1: 배포하려는 빌드 폴더에서 deploy 명령을 실행합니다.
cd build/ swa deploy
참고 항목
빌드 폴더에는 배포할 앱의 정적 콘텐츠가 포함되어야 합니다.
옵션 2: 특정 폴더를 배포할 수도 있습니다.
프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우
swa build
를 실행하거나 애플리케이션 빌드 지침을 참조하세요.앱 배포
swa deploy ./my-dist
API를 사용하여 프런트 엔드 앱 배포
다음 단계를 사용하여 API 엔드포인트가 있는 애플리케이션을 배포합니다.
프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우
swa build
를 실행하거나 애플리케이션 빌드 지침을 참조하세요.staticwebapp.config.json 파일에서 API 언어 런타임 버전이 올바르게 설정되었는지 확인하세요. 예는 다음과 같습니다.
{ "platform": { "apiRuntime": "node:16" } }
참고 항목
프로젝트에 staticwebapp.config.json 파일이 없으면
outputLocation
폴더 아래에 파일을 추가합니다.앱 배포
swa deploy ./my-dist --api-location ./api
Blazor 앱 배포
다음 단계를 사용하여 Blazor 앱을 배포할 수 있습니다.
릴리스 모드에서 Blazor 앱을 빌드합니다.
dotnet publish -c Release -o bin/publish
프로젝트의 루트에서 배포 명령을 실행합니다.
swa deploy ./bin/publish/wwwroot --api-location ./Api
구성 파일을 사용하여 배포
참고 항목
outputLocation
에 대한 경로는 appLocation
을 기준으로 해야 합니다.
단일 구성 항목으로 프로젝트에서 swa-cli.config.json
구성 파일을 사용하는 경우 다음 단계를 실행하여 애플리케이션을 배포할 수 있습니다.
참고로 단일 구성 항목의 예는 다음 코드 조각과 같습니다.
{
"configurations": {
"my-app": {
"appLocation": "./",
"apiLocation": "api",
"outputLocation": "frontend",
"start": {
"outputLocation": "frontend"
},
"deploy": {
"outputLocation": "frontend"
}
}
}
}
프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우
swa build
를 실행하거나 애플리케이션 빌드 지침을 참조하세요.앱을 배포합니다.
swa deploy
구성 항목이 여러 개 있는 경우 항목 ID를 제공하여 사용할 항목을 지정할 수 있습니다.
swa deploy my-otherapp
옵션
다음은 swa deploy
와 함께 사용할 수 있는 옵션입니다.
-a, --app-location <path>
: 프런트 엔드 애플리케이션의 소스 코드를 포함하는 폴더입니다.(기본값: “.
”)-i, --api-location <path>
: API 애플리케이션의 소스 코드를 포함하는 폴더입니다.-O, --output-location <path>
: 프런트 엔드 애플리케이션의 기본 제공 소스를 포함하는 폴더입니다. 경로는--app-location
을 기준으로 합니다.(기본값: “.
”)-w, --swa-config-location <swaConfigLocation>
: staticwebapp.config.json 파일이 있는 디렉터리입니다.-d, --deployment-token <secret>
: Static Web Apps 인증에 사용되는 비밀 토큰입니다.-dr, --dry-run
: 실제로 실행하지 않고 배포 프로세스를 시뮬레이션합니다(기본값:false
).-pt, --print-token
: 배포 토큰 인쇄입니다(기본값:false
).--env [environment]
: 프로젝트를 배포할 배포 환경 유형입니다(기본값: “preview
”).-S, --subscription-id <subscriptionId>
: 이 프로젝트에서 사용하는 Azure 구독 ID입니다(기본값:process.env.AZURE_SUBSCRIPTION_ID
).-R, --resource-group <resourceGroupName>
: 이 프로젝트에서 사용하는 Azure 리소스 그룹입니다.-T, --tenant-id <tenantId>
: Azure 테넌트 ID입니다(기본값:process.env.AZURE_TENANT_ID
).-C, --client-id <clientId>
: Azure 클라이언트 ID입니다.-CS, --client-secret <clientSecret>
: Azure 클라이언트 암호입니다.-n, --app-name <appName>
: Azure Static Web App 애플리케이션 이름-cc, --clear-credentials
: 로그인하기 전에 영구 자격 증명을 지웁니다(기본값:false
).-u, --use-keychain
: 영구 자격 증명에 운영 체제 네이티브 키체인을 사용하여 사용 가능하도록 설정합니다(기본값:true
).-nu, --no-use-keychain
: 운영 체제 네이티브 키체인을 사용하지 않도록 설정합니다.-h, --help
: 명령에 대한 도움말을 표시합니다.
사용
배포 토큰을 사용하여 배포합니다.
swa deploy ./dist/ --api-location ./api/ --deployment-token <TOKEN>
환경 변수에서 배포 토큰을 사용하여 배포합니다.
SWA_CLI_DEPLOYMENT_TOKEN=123 swa deploy ./dist/ --api-location ./api/
swa-cli.config.json
을 사용하여 배포합니다.
swa deploy
swa deploy myconfig
배포 토큰을 인쇄합니다.
swa deploy --print-token
특정 환경에 배포합니다.
swa deploy --env production