Implantar um aplicativo Web estático com a CLI de Aplicativos Web Estáticos do Azure
Importante
Para aprimorar a segurança das implantações da CLI de Aplicativos Web Estáticos, foi introduzida uma alteração significativa que exige que você atualize para a versão mais recente (2.0.2) da CLI de Aplicativos Web Estáticos até 15 de janeiro de 2025.
A CLI de SWA (CLI dos Aplicativos Web Estáticos) do Azure apresenta o comando deploy
para implantar o projeto atual nos Aplicativos Web Estáticos do Azure.
Os cenários de implantação comuns incluem:
- Um aplicativo de front-end sem uma API
- Um aplicativo de front-end com uma API
- Aplicativo Blazor
Token de implantação
A CLI de SWA dá suporte à implantação usando um token de implantação para habilitar configurações em ambientes de CI/CD.
Você pode obter um token de implantação do:
Portal do Azure: Página inicial→ Aplicativo Web Estático → Sua Instância → Visão Geral → Gerenciar token de implantação
CLI do Azure: usando o comando
secrets list
:az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
CLI de Aplicativos Web Estáticos do Azure: usando o comando
deploy
:swa deploy --print-token
Em seguida, você pode usar o valor do token com o --deployment-token <TOKEN>
ou pode criar uma variável de ambiente chamada SWA_CLI_DEPLOYMENT_TOKEN
e defini-la como o token de implantação.
Importante
Não armazene tokens de implantação em um repositório público.
Implantar um aplicativo de front-end sem uma API
Você pode implantar um aplicativo de front-end sem uma API nos Aplicativos Web Estáticos do Azure. Se o aplicativo de front-end exigir uma etapa de build, execute swa build
ou consulte as instruções de build do aplicativo.
Selecione a opção que melhor atende às suas necessidades para configurar sua implantação
Opção 1: na pasta de build que você deseja implantar, execute o comando de implantação:
cd build/ swa deploy
Observação
A pasta de build precisa conter o conteúdo estático do aplicativo a ser implantado.
Opção 2: Você também pode implantar uma pasta específica:
Se o aplicativo de front-end exigir uma etapa de build, execute
swa build
ou consulte as instruções de build do aplicativo.Implante seu aplicativo:
swa deploy ./my-dist
Implantar um aplicativo de front-end com uma API
Use as etapas a seguir para implantar um aplicativo que tem pontos de extremidade de API.
Se o aplicativo de front-end exigir uma etapa de build, execute
swa build
ou consulte as instruções de build do aplicativo.Verifique se a versão de runtime da linguagem da API no arquivo staticwebapp.config.json está definida corretamente, por exemplo:
{ "platform": { "apiRuntime": "node:16" } }
Observação
Se o projeto não tiver o arquivo staticwebapp.config.json, adicione um em sua pasta
outputLocation
.Implante seu aplicativo:
swa deploy ./my-dist --api-location ./api
Implantar um aplicativo Blazor
Você pode implantar um aplicativo Blazor usando as etapas a seguir.
Crie seu aplicativo Blazor no modo Release:
dotnet publish -c Release -o bin/publish
Na raiz do projeto, execute o comando deploy:
swa deploy ./bin/publish/wwwroot --api-location ./Api
Implantar usando um arquivo de configuração
Observação
O caminho para outputLocation
precisa ser relativo ao appLocation
.
Se você estiver usando um arquivo de configuração swa-cli.config.json
em seu projeto com apenas uma entrada de configuração, poderá implantar seu aplicativo executando as etapas a seguir.
Para referência, um exemplo de apenas uma entrada de configuração se parece com o snippet de código a seguir.
{
"configurations": {
"my-app": {
"appLocation": "./",
"apiLocation": "api",
"outputLocation": "frontend",
"start": {
"outputLocation": "frontend"
},
"deploy": {
"outputLocation": "frontend"
}
}
}
}
Se o aplicativo de front-end exigir uma etapa de build, execute
swa build
ou consulte as instruções de build do aplicativo.Implante seu aplicativo.
swa deploy
Se você tiver várias entradas de configuração, poderá fornecer a ID de entrada para especificar qual delas usar:
swa deploy my-otherapp
Opções
Veja a seguir as opções que você pode usar com swa deploy
:
-a, --app-location <path>
: a pasta que contém o código-fonte do aplicativo de front-end (padrão: ".
")-i, --api-location <path>
: a pasta que contém o código-fonte do aplicativo de API-O, --output-location <path>
: a pasta que contém o código-fonte construído do aplicativo de front-end. O caminho é relativo a--app-location
(padrão: ".
")-w, --swa-config-location <swaConfigLocation>
: o diretório em que o arquivo staticwebapp.config.json está localizado-d, --deployment-token <secret>
: o token do segredo usado para autenticar com os Aplicativos Web Estáticos-dr, --dry-run
: simular um processo de implantação sem realmente executá-lo (padrão:false
)-pt, --print-token
: imprimir o token de implantação (padrão:false
)--env [environment]
: o tipo de ambiente de implantação no qual implantar o projeto (padrão: "preview
")-S, --subscription-id <subscriptionId>
: ID de assinatura do Azure usada por este projeto (padrão:process.env.AZURE_SUBSCRIPTION_ID
)-R, --resource-group <resourceGroupName>
: grupo de recursos do Azure usado por este projeto-T, --tenant-id <tenantId>
: ID do locatário do Azure (padrão:process.env.AZURE_TENANT_ID
)-C, --client-id <clientId>
: ID do cliente do Azure-CS, --client-secret <clientSecret>
: segredo do cliente do Azure-n, --app-name <appName>
: nome do aplicativo Web estático do Azure-cc, --clear-credentials
: limpar as credenciais persistidas antes do logon (padrão:false
)-u, --use-keychain
: habilitar o uso do conjunto de chaves nativo do sistema operacional para credenciais persistentes (padrão:true
)-nu, --no-use-keychain
: desabilite o uso do conjunto de chaves nativo do sistema operacional-h, --help
: exibe a ajuda para o comando
Uso
Implantar usando um token de implantação.
swa deploy ./dist/ --api-location ./api/ --deployment-token <TOKEN>
Implante usando um token de implantação das variáveis de ambiente.
SWA_CLI_DEPLOYMENT_TOKEN=123 swa deploy ./dist/ --api-location ./api/
Implantar usando o arquivo swa-cli.config.json
swa deploy
swa deploy myconfig
Imprima o token de implantação.
swa deploy --print-token
Implante em um ambiente específico.
swa deploy --env production