Azure Static Web Apps CLI コマンドのリファレンス。
Commands
| Command | Description | タイプ | 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、info、log (既定)、silent が含まれます。 |
| --config, -c [path] | swa-cli.config.json ファイルへのパス。 |
| --config-name, -cn | CLI で使われる構成。 |
| --print-config, -g | 解決されたすべてのオプションを出力します。 既定値は false です。 |
| --help, -h | 状況依存のヘルプを表示します。 |
swa login
Azure にログインします。
swa deploy コマンドを使って Azure Static Web Apps のデプロイ トークンを取得するため、Azure で認証を行います。
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 プロジェクトを構成します。 対話型モードでは、構成名の入力を求めるメッセージが表示され、プロジェクトの設定と使用されているフレームワークが検出されます。 完了すると、新しい静的 Web アプリが作成され、現在のディレクトリに swa-cli.config.json ファイルが生成されます。
swa init を複数回実行して、プロジェクトに異なる構成を作成できます。 単一リポジトリで作業していて、別のプロジェクトを構成したい場合、これが必要になることがあります。
生成された構成ファイルは、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
すべてのプロンプトに対して "yes" と答えます。これにより対話モードが無効になります。 既定値は 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 Core Tools がインストールされ、使用可能かどうかを確認します。 そうでない場合、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-locationフラグとローカル API サーバーの 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: ホーム →静的 Web アプリ → インスタンス →の概要 → デプロイ トークンの管理
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: デプロイするビルド フォルダーから、deploy コマンドを実行します。
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 アプリをデプロイする
Blazor アプリとオプションの API を 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 構成ファイルを使っていて、構成エントリが 1 つある場合は、次のような構成を使います。
{
"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 initを使用して、サンプルの swa-db-connections フォルダーとstaticwebapp.database.config.json構成ファイルを生成します。 Cosmos DB for NoSQL データベースを使用している場合は、スキーマ ファイル 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
コマンドのヘルプを表示します。