你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Static Web Apps CLI 部署静态 Web 应用

Azure 静态Web 应用 CLI(SWA CLI)提供deploy用于将当前项目部署到 Azure 静态Web 应用的命令。

常见部署方案包括:

  • 没有 API 的前端应用
  • 具有 API 的前端应用
  • Blazor 应用

部署令牌

SWA CLI 支持使用部署令牌进行部署,以便在 CI/CD 环境中启用设置。

可以从以下项获取部署令牌:

  • Azure 门户:主→静态 Web 应用→实例→概述→管理部署令牌

  • Azure CLI:使用 secrets list 以下命令:

    az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
    
  • Azure 静态Web 应用 CLI:使用deploy以下命令:

    swa deploy --print-token
    

然后,可以将令牌值与 --deployment-token <TOKEN> 结合使用,也可以创建一个调用 SWA_CLI_DEPLOYMENT_TOKEN 的环境变量并将其设置为部署令牌。

重要

不要将部署令牌存储在公共存储库中。

在没有 API 的情况下部署前端应用

可以将没有 API 的前端应用程序部署到 Azure 静态Web 应用。 如果前端应用程序需要生成步骤,请运行 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

如果有多个配置条目,可以提供条目 ID 来指定要使用的条目 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>:用于对静态Web 应用进行身份验证的机密令牌
  • -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

后续步骤