次の方法で共有


Azure Static Web Apps CLI リファレンス

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] 詳細出力を有効にします。 レベルの値には、sillyinfolog (既定)、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

オペレーティング システムのネイティブ キーチェーンの使用を無効にします。

Global Parameters

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 です。

Global Parameters

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.jsonmyApp という名前の構成を使用して、フロントエンド アプリケーションをビルドします。

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 です。

Global Parameters

swa start

ディレクトリから Azure Static Web Apps エミュレーターを開始するか、実行中の開発サーバーにバインドします。

フォルダーから提供する

既定では、CLI は現在の作業ディレクトリ ./ から静的コンテンツを開始して提供します。

swa start

静的アプリの成果物フォルダーが別のフォルダー (たとえば ./my-dist) の下にある場合は、CLI を実行して、そのフォルダーを指定します。

swa start ./my-dist

開発サーバーから提供する

フロントエンド アプリをローカル環境で開発するときは、多くの場合、フロントエンド フレームワークの CLI に付属する開発サーバーを使うと便利です。 フレームワーク CLI を使うと、"livereload" や HMR (ホット モジュール置換) などの組み込み機能を使用できます。

ローカル開発サーバーで SWA CLI を使うには、次の 2 つのステップのようにします。

  1. ローカル開発サーバーを通常どおり起動します。 たとえば、Angular を使っている場合: ng serve (または npm start)。

  2. 別のターミナルで、開発サーバーから提供された 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 つのステップのようにします。

  1. Azure Functions Core Tools を使って API を開始する (func host start) か、VS Code でデバッグを始めます。

  2. 別のターミナルで、--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 コマンドに追加の引数を渡します。

Global Parameters

swa deploy

現在のプロジェクトを Azure Static Web Apps にデプロイします。

一般的なユース ケースは次のとおりです。

  1. API なしでフロントエンド アプリをデプロイする

  2. API ありでフロントエンド アプリをデプロイする

  3. 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 にデプロイできます。

  1. フロントエンド アプリケーションでビルド ステップが必要な場合は、swa build を実行するか、お使いのアプリケーションのビルド手順をご覧ください。

オプション 1: デプロイするビルド フォルダーから、deploy コマンドを実行します。

cd build/
swa deploy

Note

build フォルダーには、デプロイするアプリの静的コンテンツが含まれている必要があります。

オプション 2: 特定のフォルダーを展開することもできます。

  1. フロントエンド アプリケーションでビルド ステップが必要な場合は、swa build を実行するか、お使いのアプリケーションのビルド手順をご覧ください。

  2. アプリをデプロイします。

swa deploy ./my-dist

API ありでフロントエンド アプリをデプロイする

フロントエンド アプリと API の両方を Azure Static Web Apps にデプロイするには、次の手順を使います。

  1. フロントエンド アプリケーションでビルド ステップが必要な場合は、swa build を実行するか、お使いのアプリケーションのビルド手順をご覧ください。

  2. staticwebapp.config.json ファイルの API 言語ランタイムのバージョンが正しく設定されていることを確認します。次に例を示します。

{
  "platform": {
    "apiRuntime": "node:16"
  }
}

Note

プロジェクトに staticwebapp.config.json ファイルがない場合は、 outputLocation フォルダーの下に追加します。

  1. アプリをデプロイします。
swa deploy ./my-dist --api-location ./api

Blazor アプリをデプロイする

Blazor アプリとオプションの API を Azure Static Web Apps にデプロイするには、次の手順を使います。

  1. リリース モードで Blazor アプリをビルドします。
dotnet publish -c Release -o bin/publish
  1. プロジェクトのルートから、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"
      }
    }
  }
}

それから、次の手順を実行して、アプリケーションをデプロイできます。

  1. フロントエンド アプリケーションでビルド ステップが必要な場合は、swa build を実行するか、お使いのアプリケーションのビルド手順をご覧ください。

  2. アプリをデプロイします。

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

Global Parameters

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

コマンドのヘルプを表示します。

Global Parameters