你当前正在访问 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: 还可以部署特定文件夹:
如果前端应用程序需要生成步骤,请运行
swa build
或引用应用程序生成说明。部署应用:
swa deploy ./my-dist
使用 API 部署前端应用
使用以下步骤部署具有 API 终结点的应用程序。
如果前端应用程序需要生成步骤,请运行
swa build
或引用应用程序生成说明。确保正确设置staticwebapp.config.json文件中的 API 语言运行时版本,例如:
{ "platform": { "apiRuntime": "node:16" } }
注意
如果项目没有 staticwebapp.config.json 文件,请在文件夹
outputLocation
下添加一个文件。部署应用:
swa deploy ./my-dist --api-location ./api
部署 Blazor 应用
可以使用以下步骤部署 Blazor 应用。
在 发布 模式下生成 Blazor 应用:
dotnet publish -c Release -o bin/publish
在项目的根目录中,运行 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"
}
}
}
}
如果前端应用程序需要生成步骤,请运行
swa build
或引用应用程序生成说明。部署应用。
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