Azure Static Web Apps CLI 명령의 참조입니다.
Commands
| Command | Description | Type | Status |
|---|---|---|---|
| swa login | Azure에 로그인합니다. | SWA Core | GA |
| swa init | 새 Azure Static Web Apps 프로젝트를 구성합니다. | SWA Core | GA |
| swa build | 애플리케이션을 빌드합니다. Node.js 애플리케이션이 있는 경우 먼저 종속성을 설치합니다. | SWA Core | GA |
| swa start | 디렉터리에서 Azure Static Web Apps 에뮬레이터를 시작하거나 실행 중인 개발 서버에 바인딩합니다. | SWA Core | GA |
| swa deploy | 현재 프로젝트를 Azure Static Web Apps에 배포합니다. | SWA Core | GA |
| swa db | Static Web Apps 데이터베이스 연결 구성을 생성하고 편집합니다. | SWA Core | GA |
Global Parameters
| Parameter | Summary |
|---|---|
| --version, -v | 버전 번호를 표시합니다. |
| --verbose, --V [level] | 자세한 출력을 사용합니다. 수준 값에는 silly, infolog (기본값) 및 silent. |
| --config, -c [path] | swa-cli.config.json 파일의 경로입니다. |
| --config-name, -cn | CLI에서 사용하는 구성입니다. |
| --print-config, -g | 확인된 모든 옵션을 인쇄합니다. 기본값은 false입니다. |
| --help, -h | 상황에 맞는 도움말을 표시합니다. |
swa login
Azure에 로그인합니다.
Azure로 인증하여 swa deploy 명령을 사용해 Azure Static Web Apps에 대한 배포 토큰을 가져옵니다.
Syntax
swa login
[--subscription-id]
[--resource-group]
[--tenant-id]
[--client-id]
[--client-secret]
[--app-name]
[--clear-credentials]
[--use-keychain]
[--no-use-keychain]
Examples
예제 1: Azure에 대화형 로그인
swa login
Parameters
--subscription-id, -S
이 프로젝트에서 사용하는 Azure 구독 ID입니다. 기본값은 process.env.AZURE_SUBSCRIPTION_ID입니다.
--resource-group, -R
리소스 그룹의 이름입니다.
az configure --defaults group=<name>사용하여 기본 그룹을 구성할 수 있습니다.
--tenant-id, -T
Azure 테넌트 ID입니다. 기본값은 process.env.AZURE_TENANT_ID입니다.
--client-id, -C
Azure 클라이언트 ID입니다.
--client-secret, -CS
Azure 클라이언트 암호입니다.
--app-name, -n
Azure Static Web Apps 앱 이름입니다.
--clear-credentials -cc
로그인하기 전에 영구 자격 증명을 지웁니다. 기본값은 false입니다.
--use-keychain, -u
영구 자격 증명에 운영 체제 네이티브 키체인을 사용합니다. 기본값은 true입니다.
--no-use-keychain, -nu
운영 체제 네이티브 키체인을 사용하지 않도록 설정합니다.
swa init
새 Azure Static Web Apps 프로젝트를 구성합니다.
Static Web Apps CLI를 사용하여 새 Azure Static Web Apps 프로젝트를 구성합니다. 대화형 모드는 구성 이름을 묻는 메시지를 표시하고, 프로젝트 설정 및 사용된 프레임워크를 검색합니다. 완료되면 새 정적 웹앱이 만들어지고 swa-cli.config.json 파일이 현재 디렉터리에 생성됩니다.
swa init을(를) 여러 번 실행하여 프로젝트에 대한 다양한 구성을 만들 수 있습니다. monorepo에서 작업 중이고 다른 프로젝트를 구성하려는 경우 이 작업을 수행할 수 있습니다.
생성된 구성 파일은 Static Web Apps CLI를 사용하여 실행하는 모든 명령에 사용됩니다. 명명된 구성이 여러 개 있는 경우 위치 인수 또는 --config-name 옵션을 통해 사용할 구성을 지정할 수 있습니다.
다음은 init 명령에서 생성된 구성의 예입니다.
{
"$schema": "https://aka.ms/azure/static-web-apps-cli/schema",
"configurations": {
"myApp": {
"appLocation": ".",
"apiLocation": "api",
"outputLocation": "dist",
"appBuildCommand": "npm run build",
"apiBuildCommand": "npm run build --if-present",
"run": "npm run dev",
"appDevserverUrl": "http://localhost:8080"
}
}
}
Syntax
swa init
[--yes]
Examples
예제 1: 대화형으로 새 구성을 만듭니다.
swa init
예제 2: 모든 옵션에 대한 기본값을 사용하여 새 구성을 만듭니다.
swa init --yes
예제 3: swa-cli.config.json 파일에서 "myApp"이라는 구성을 사용하여 프로젝트를 초기화합니다.
swa init --config-name myApp
Parameters
--yes, -y
모든 프롬프트에 "예"라고 답변하여 대화형 모드를 사용하지 않도록 설정합니다. 기본값은 false입니다.
swa build
애플리케이션을 빌드합니다. Node.js 애플리케이션이 있는 경우 먼저 종속성을 설치합니다.
일반적인 사용 사례는 다음과 같습니다. 프런트 엔드 앱 및 API에 대한 종속성을 설치하고 둘 다에 대한 빌드 명령을 실행하며, 다른 하나는 빌드 단계가 없는 경우에만 프런트 엔드 또는 API 프로젝트를 빌드합니다.
Syntax
swa build
[--app-location]
[--api-location]
[--output-location]
[--app-build-command]
[--api-build-command]
[--auto]
Examples
예제 1: 앱을 빌드하고 필요에 따라 종속성을 설치합니다.
swa build
예제 2: 종속성을 설치한 후 앱을 빌드하고 빌드 명령을 실행하는 방법을 검색합니다.
swa build --auto
예제 3: 프런트 엔드 애플리케이션에 대한 종속성을 설치합니다.
swa build --app-location ./client
예제 4: swa-cli.config.json 명명된 myApp 구성을 사용하여 프런트 엔드 애플리케이션을 빌드합니다.
swa build myApp
Parameters
--app-location, -a
프런트 엔드 애플리케이션의 소스 코드를 포함하는 폴더입니다. 기본값은 .입니다.
--api-location, -i
API 애플리케이션의 소스 코드를 포함하는 폴더입니다.
--output-location, -O
프런트 엔드 애플리케이션의 기본 제공 소스를 포함하는 폴더입니다. 이 경로는 --app-location을(를) 기준으로 합니다. 기본값은 .입니다.
--app-build-command, -A
프런트 엔드 애플리케이션을 빌드합니다.
--api-build-command, -I
API 애플리케이션을 빌드합니다.
--auto
프런트 엔드 및 API 애플리케이션을 빌드하는 방법을 자동으로 검색합니다. 기본값은 false입니다.
swa start
디렉터리에서 Azure Static Web Apps 에뮬레이터를 시작하거나 실행 중인 개발 서버에 바인딩합니다.
폴더에서 제공
기본적으로 CLI는 현재 작업 디렉터리 ./의 정적 콘텐츠를 시작하고 제공합니다.
swa start
정적 앱의 아티팩트 폴더가 다른 폴더(예: ./my-dist)에 있는 경우 CLI를 실행하고 해당 폴더를 제공합니다.
swa start ./my-dist
개발 서버에서 제공
프런트 엔드 앱을 로컬로 개발할 때 프런트 엔드 프레임워크의 CLI와 함께 제공되는 개발 서버를 사용하는 것이 유용한 경우가 많습니다. 프레임워크 CLI를 사용하면 "livereload" 및 HMR(핫 모듈 교체)과 같은 기본 제공 기능을 사용할 수 있습니다.
로컬 개발 서버에서 SWA CLI를 사용하려면 다음과 같은 2단계를 수행합니다.
평소처럼 로컬 개발 서버를 시작합니다. 예를 들어 Angular
ng serve(또는npm start)을(를) 사용하는 경우입니다.별도의 터미널에서 다음 형식으로 개발 서버가 제공하는 URI를 사용하여
swa start을(를) 실행합니다.
swa start http://<APP_DEV_SERVER_HOST>:<APP_DEV_SERVER_PORT>
다음은 일부 인기 있는 개발 서버에서 사용하는 기본 포트 및 명령 목록입니다.
| Tool | Port | Command |
|---|---|---|
| Angular | 4200 |
swa start http://localhost:4200 |
| Blazor WebAssembly | 5000 |
swa start http://localhost:5000 |
| Gatsby | 8000 |
swa start http://localhost:8000 |
| Hugo | 1313 |
swa start http://localhost:1313 |
| Next.js | 3000 |
swa start http://localhost:3000 |
| React(React 앱 만들기) | 3000 |
swa start http://localhost:3000 |
| Svelte (sirv-cli) | 5000 |
swa start http://localhost:5000 |
| Vue | 3000 |
swa start http://localhost:3000 |
개발 서버를 별도로 시작하는 대신 CLI에 시작 명령을 입력할 수 있습니다.
# npm start script (React)
swa start http://localhost:3000 --run "npm start"
# dotnet watch (Blazor)
swa start http://localhost:5000 --run "dotnet watch run"
# Jekyll
swa start http://localhost:4000 --run "jekyll serve"
# custom script
swa start http://localhost:4200 --run "./startup.sh"
그런 다음 http://localhost:4280에서 에뮬레이트된 서비스를 사용하여 애플리케이션에 액세스합니다.
프런트 엔드 앱과 API 모두 제공
프로젝트에 API 함수가 포함된 경우 CLI는 Azure Functions 핵심 도구가 설치되어 있고 사용할 수 있는지 확인합니다. 그렇지 않은 경우 CLI는 올바른 버전의 Azure Functions Core Tools를 다운로드하고 설치합니다.
자동으로 API 서버 시작
CLI를 실행하고 API 백 엔드(유효한 Azure Functions 앱 프로젝트)가 포함된 폴더를 제공합니다.
# static content plus an API
swa start ./my-dist --api-location ./api
# front-end dev server plus an API
swa start http://localhost:3000 --api-location ./api
수동으로 API 서버 시작
백 엔드를 로컬로 개발할 때 Azure Functions Core Tools를 별도로 실행하여 API를 제공하는 것이 유용한 경우가 있습니다. 이를 통해 디버깅 및 풍부한 편집기 지원과 같은 기본 제공 기능을 사용할 수 있습니다.
로컬 API 백 엔드 개발 서버에서 CLI를 사용하려면 다음과 같은 2단계를 수행합니다.
Azure Functions Core Tools를 사용하여 API를 시작합니다.
func host start명령을 사용하거나 VS Code에서 디버깅을 시작합니다.별도의 터미널에서 다음 형식으로 로컬 API 서버의
--api-location플래그 및 URI를 사용하여 SWA CLI를 실행합니다.
swa start ./my-dist --api-location http://localhost:7071
Database connections
데이터베이스 연결로 애플리케이션을 시작하려면 매개 변수를 --data-api-location 사용하고 staticwebapp.database.config.json 파일이 포함된 폴더를 가리킵니다.
swa start ./src --data-api-location swa-db-connections
Syntax
swa start
Examples
예제 1: 기본값으로 애플리케이션을 시작합니다.
swa start
예제 2: 프런트 엔드 개발 서버로 애플리케이션을 시작합니다.
swa start http://<APP_DEV_SERVER_HOST>:<APP_DEV_SERVER_PORT>
예제 3: 프런트 엔드 및 백 엔드 개발 서버로 애플리케이션을 시작합니다.
swa start http://<APP_DEV_SERVER_HOST>:<APP_DEV_SERVER_PORT> --api-location http://localhost:7071
Parameters
--app-location, -a <PATH>
프런트 엔드 애플리케이션의 소스 코드를 포함하는 폴더입니다. 기본값은 .입니다.
--api-location, -i <PATH>
API 애플리케이션의 소스 코드를 포함하는 폴더입니다.
--output-location, -O <PATH>
프런트 엔드 애플리케이션의 기본 제공 소스를 포함하는 폴더입니다. 경로는 --app-location을(를) 기준으로 합니다. 기본값은 .입니다.
--data-api-location
staticwebapp.database.config.json 파일이 포함된 폴더입니다.
--app-devserver-url, -D <URL>
출력 위치를 사용하는 대신 이 URL에서 앱 개발 서버에 연결합니다.
--api-devserver-url, -is <URL>
출력 위치를 사용하는 대신 이 URL에서 API 서버에 연결합니다.
--api-port, -j <API_PORT>
func start에 전달된 API 서버 포트입니다. 기본값은 7071입니다.
--host, -q <HOST>
CLI 개발 서버에 사용되는 호스트 주소입니다. 기본값은 localhost입니다.
--port, -p <PORT>
CLI 개발 서버에 사용할 포트 값입니다. 기본값 4280.
--ssl, -s
HTTPS를 통해 프런트 엔드 애플리케이션 및 API를 제공합니다. 기본값은 false입니다.
--ssl-cert, -e <SSL_CERT_LOCATION>
HTTPS를 사용하도록 설정할 때 사용되는 SSL 인증서(.crt)입니다.
--ssl-key, -k <SSL_KEY_LOCATION>
HTTPS를 사용하도록 설정할 때 사용되는 SSL 키(.key)입니다.
--run, -r <STARTUP_SCRIPT>
시작할 때 실행할 사용자 지정 셸 명령 또는 스크립트 파일의 위치입니다.
--devserver-timeout, -t <TIME>
프런트 엔드 애플리케이션의 개발 서버 또는 API 서버에 연결할 때 대기할 시간(초)입니다. 기본값은 60입니다.
--swa-config-location, -w <SWA_CONFIG_FILE_LOCATION>
staticwebapp.config.json 파일의 디렉터리 위치입니다.
--open, -o
개발 서버로 브라우저를 엽니다. 기본값은 false입니다.
--func-args, -f <FUNCTION_ARGUMENTS>
func start 명령에 추가 인수를 전달합니다.
swa deploy
현재 프로젝트를 Azure Static Web Apps에 배포합니다.
일반적인 사용 사례는 다음과 같습니다.
API 없이 프런트 엔드 앱 배포
API를 사용하여 프런트 엔드 앱 배포
Blazor 앱 배포
Deployment token
SWA CLI는 배포 토큰을 사용하여 배포를 지원합니다. 이는 CI/CD 환경에서 배포할 때 유용한 경우가 많습니다. 다음 작업 중 하나를 수행하여 배포 토큰을 가져올 수 있습니다.
Azure Portal: Home → Static Web App → 인스턴스 → 개요 → 배포 토큰 관리
Azure CLI를 사용하는 경우 다음 명령을 사용하여 프로젝트의 배포 토큰을 가져올 수 있습니다.
az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
- Azure Static Web Apps CLI를 사용하는 경우 다음 명령을 사용할 수 있습니다.
swa deploy --print-token
그런 다음 --deployment-token <TOKEN>에 해당 값을 사용하거나 SWA_CLI_DEPLOYMENT_TOKEN라는 환경 변수를 만들어 배포 토큰으로 설정할 수 있습니다.
Important
배포 토큰을 공용 리포지토리에 저장하지 마세요. 이 값은 비밀로 유지되어야 합니다.
API 없이 프런트 엔드 앱 배포
다음 단계를 실행하여 API 없이 프런트 엔드 애플리케이션을 Azure Static Web Apps에 배포할 수 있습니다.
- 프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우
swa build을(를) 실행하거나 애플리케이션 빌드 지침을 참조하세요.
옵션 1: 배포하려는 빌드 폴더에서 배포 명령을 실행합니다.
cd build/
swa deploy
Note
폴더에는 build 배포하려는 앱의 정적 콘텐츠가 포함되어야 합니다.
옵션 2: 특정 폴더를 배포할 수도 있습니다.
프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우
swa build을(를) 실행하거나 애플리케이션 빌드 지침을 참조하세요.앱 배포:
swa deploy ./my-dist
API를 사용하여 프런트 엔드 앱 배포
프런트 엔드 앱과 API를 모두 Azure Static Web Apps에 배포하려면 다음 단계를 수행합니다.
프런트 엔드 애플리케이션에 빌드 단계가 필요한 경우
swa build을(를) 실행하거나 애플리케이션 빌드 지침을 참조하세요.staticwebapp.config.json파일의 API 언어 런타임 버전이 올바르게 설정되어 있는지 확인합니다. 예를 들면 다음과 같습니다.
{
"platform": {
"apiRuntime": "node:16"
}
}
Note
프로젝트에 파일이 없는 staticwebapp.config.json 경우 폴더 아래에 파일을 추가합니다 outputLocation .
- 앱 배포:
swa deploy ./my-dist --api-location ./api
Blazor 앱 배포
선택적 API를 사용하여 Blazor 앱을 Azure Static Web Apps에 배포하려면 다음 단계를 수행합니다.
- 릴리스 모드에서 Blazor 앱을 빌드합니다.
dotnet publish -c Release -o bin/publish
- 프로젝트의 루트에서
deploy명령을 실행합니다.
swa deploy ./bin/publish/wwwroot --api-location ./Api
swa-cli.config.json을(를) 사용하여 배포
Note
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
Syntax
swa deploy
[--yes]
Examples
예제 1: 배포 토큰을 사용하여 배포합니다.
swa deploy ./dist/ --api-location ./api/ --deployment-token <TOKEN>
예제 2: 환경 변수에서 배포 토큰을 사용하여 배포
SWA_CLI_DEPLOYMENT_TOKEN=123 swa deploy ./dist/ --api-location ./api/
예제 3: 파일을 사용하여 swa-cli.config.json 배포
swa deploy
swa deploy myconfig
예제 4: 배포 토큰 인쇄
swa deploy --print-token
예제 5: 특정 환경에 배포
swa deploy --env production
swa db
Static Web Apps 데이터베이스 연결 구성을 생성하고 편집합니다.
구성 파일과 함께 샘플 swa-db-connections 폴더를 생성하는 데 staticwebapp.database.config.json 사용합니다swa db init. NoSQL용 Cosmos DB 데이터베이스를 사용하는 경우 샘플 staticwebapp.database.schema.gql 스키마 파일도 생성됩니다.
Syntax
swa db init --database-type <DATABASE_TYPE>
Examples
예제 1: Azure SQL 데이터베이스에 대한 샘플 데이터베이스 연결 구성 폴더를 생성합니다.
swa db init --database-type mssql
Parameters
--database-type, -t <DATABASE_TYPE>
(필수) 연결하려는 데이터베이스의 형식입니다(mssql, postgresql, cosmosdb_nosql, mysql).
--folder-name, -f <FOLDER_NAME>
규칙 데이터베이스 연결 구성 폴더 이름을 재정의하는 폴더 이름입니다(이에 따라 CI/CD 워크플로 파일을 업데이트해야 함). 기본값은 swa-db-connections입니다.
---connection-string, -cs <CONNECTION_STRING>
연결하려는 데이터베이스의 연결 문자열입니다.
--cosmosdb_nosql-database, -nd <COSMOSDB_NOSQL_DATABASE>
연결하려는 Cosmos DB 계정의 데이터베이스입니다(데이터베이스 유형을 사용하는 cosmosdb_nosql 경우에만 필요).
--cosmosdb_nosql-container, -nc <COSMOSDB_NOSQL_CONTAINER>
연결하려는 Cosmos DB 계정의 컨테이너입니다.
--help, -h
명령에 대한 도움말을 표시합니다.