Share via


使用 Azure Static Web Apps CLI 部署靜態 Web 應用程式

Azure Static Web Apps CLI (SWA CLI) 具有 deploy 將目前專案部署至 Azure Static Web Apps 的命令。

常見的部署案例包括:

  • 沒有 API 的前端應用程式
  • 具有 API 的前端應用程式
  • Blazor 應用程式

部署令牌

SWA CLI 支援使用部署令牌進行部署,以在 CI/CD 環境中啟用設定。

您可以從取得部署權杖:

  • Azure 入口網站:主→靜態 Web 應用程式→您的實例→概觀→管理部署令牌

  • 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 的環境變數,並將其設定為部署令牌。

重要

請勿將部署令牌儲存在公用存放庫中。

部署沒有 API 的前端應用程式

您可以將沒有 API 的前端應用程式部署至 Azure Static Web Apps。 如果您的前端應用程式需要建置步驟,請執行 swa build 或參考應用程式建置指示。

選取最符合您設定部署需求的選項

  • 選項 1: 從您想要部署的組建資料夾中,執行 deploy 命令:

    cd build/
    swa deploy
    

    注意

    組建資料夾必須包含要部署之應用程式的靜態內容。

  • 選項 2: 您也可以部署特定資料夾:

    1. 如果您的前端應用程式需要建置步驟,請執行 swa build 或參考應用程式建置指示。

    2. 部署您的應用程式:

    swa deploy ./my-dist
    

使用 API 部署前端應用程式

使用下列步驟來部署具有 API 端點的應用程式。

  1. 如果您的前端應用程式需要建置步驟,請執行 swa build 或參考應用程式建置指示。

  2. 請確定已正確設定staticwebapp.config.json檔案中的 API 語言執行平臺版本,例如:

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

    注意

    如果您的項目沒有 staticwebapp.config.json 檔案,請在資料夾 outputLocation 下新增一個檔案。

  3. 部署您的應用程式:

    swa deploy ./my-dist --api-location ./api
    

部署 Blazor 應用程式

您可以使用下列步驟來部署 Blazor 應用程式。

  1. 發行 模式建置您的 Blazor 應用程式:

    dotnet publish -c Release -o bin/publish
    
  2. 從專案的根目錄中,執行 deploy 命令:

    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"
      }
    }
  }
}
  1. 如果您的前端應用程式需要建置步驟,請執行 swa build 或參考應用程式建置指示。

  2. 部署應用程式。

swa deploy

如果您有多個組態專案,您可以提供專案識別碼來指定要使用的項目識別碼:

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>:用來向靜態 Web Apps 進行驗證的秘密令牌
  • -dr, --dry-run:模擬部署程式而不實際執行它 (預設值: false
  • -pt, --print-token:列印部署令牌 (預設值: false
  • --env [environment]:部署環境的類型,其中要部署專案(預設值:“preview”)
  • -S, --subscription-id <subscriptionId>:此專案所使用的 Azure 訂用帳戶識別碼(預設值: process.env.AZURE_SUBSCRIPTION_ID
  • -R, --resource-group <resourceGroupName>:此專案所使用的 Azure 資源群組
  • -T, --tenant-id <tenantId>:Azure 租使用者識別碼(預設值: process.env.AZURE_TENANT_ID
  • -C, --client-id <clientId>:Azure 用戶端標識碼
  • -CS, --client-secret <clientSecret>:Azure 客戶端密碼
  • -n, --app-name <appName>:Azure 靜態 Web 應用程式應用程式名稱
  • -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

下一步