Implementación de una aplicación web estática con la CLI de Azure Static Web Apps
Importante
Para mejorar la seguridad de las implementaciones de la CLI de Static Web Apps, se introdujo un cambio importante que requiere que actualice a la versión más reciente (2.0.2) de la CLI de Static Web Apps el 15 de enero de 2025.
La CLI de Azure Static Web Apps (CLI de SWA) incluye el comando deploy
para implementar el proyecto actual en Azure Static Web Apps.
Entre los escenarios de implementación comunes se incluyen:
- Una aplicación front-end sin una API
- Una aplicación front-end con una API
- Aplicaciones Blazor
Token de implementación
La CLI de SWA admite la implementación mediante un token de implementación para habilitar las configuraciones en entornos de CI/CD.
Puede obtener un token de implementación de:
Azure Portal: Inicio → Aplicación web estática → La instancia → Información general → Administración del token de implementación
CLI de Azure: usar el comando
secrets list
:az staticwebapp secrets list --name <APPLICATION_NAME> --query "properties.apiKey"
CLI de Azure Static Web Apps: uso del comando
deploy
:swa deploy --print-token
A continuación, puede usar el valor del token con --deployment-token <TOKEN>
o puede crear una variable de entorno denominada SWA_CLI_DEPLOYMENT_TOKEN
y establecerla en el token de implementación.
Importante
No almacene tokens de implementación en un repositorio público.
Implementación de una aplicación front-end sin una API
Puede implementar una aplicación front-end sin una API en Azure Static Web Apps. Si la aplicación front-end requiere un paso de compilación, ejecute swa build
o consulte las instrucciones de compilación de la aplicación.
Seleccione la opción que mejor se adapte a sus necesidades para configurar la implementación
Opción 1: Desde la carpeta de compilación que desea implementar, ejecute el comando implementar:
cd build/ swa deploy
Nota:
La carpeta de compilación debe contener el contenido estático de la aplicación que se va a implementar.
Opción 2: También puede implementar una carpeta específica:
Si la aplicación front-end requiere un paso de compilación, ejecute
swa build
o consulte las instrucciones de compilación de la aplicación.Implementación de la aplicación
swa deploy ./my-dist
Implementación de una aplicación front-end con una API
Siga estos pasos para implementar una aplicación que tenga puntos de conexión de API.
Si la aplicación front-end requiere un paso de compilación, ejecute
swa build
o consulte las instrucciones de compilación de la aplicación.Asegúrese de que la versión de runtime de lenguaje de API del archivo staticwebapp.config.json esté establecida correctamente, por ejemplo:
{ "platform": { "apiRuntime": "node:16" } }
Nota:
Si el proyecto no tiene el archivo staticwebapp.config.json, agregue uno en la carpeta
outputLocation
.Implementación de la aplicación
swa deploy ./my-dist --api-location ./api
Implementación de una aplicación Blazor
Puede implementar una aplicación Blazor mediante los pasos siguientes.
Compile la aplicación Blazor en modo Liberar:
dotnet publish -c Release -o bin/publish
En la raíz del proyecto, ejecute el comando deploy:
swa deploy ./bin/publish/wwwroot --api-location ./Api
Implementar mediante un archivo de configuración
Nota:
La ruta de acceso de outputLocation
debe ser relativa a appLocation
.
Si usa un archivo de configuración swa-cli.config.json
en el proyecto con una sola entrada de configuración, puede implementar la aplicación ejecutando los pasos siguientes.
Como referencia, un ejemplo de una única entrada de configuración es similar al siguiente fragmento de código.
{
"configurations": {
"my-app": {
"appLocation": "./",
"apiLocation": "api",
"outputLocation": "frontend",
"start": {
"outputLocation": "frontend"
},
"deploy": {
"outputLocation": "frontend"
}
}
}
}
Si la aplicación front-end requiere un paso de compilación, ejecute
swa build
o consulte las instrucciones de compilación de la aplicación.Implementar la aplicación.
swa deploy
Si tiene varias entradas de configuración, puede proporcionar el identificador de entrada para especificar cuál usar:
swa deploy my-otherapp
Opciones
A continuación se muestran las opciones que puede usar con swa deploy
:
-a, --app-location <path>
: la carpeta que contiene el código fuente de la aplicación front-end (valor predeterminado: ".
")-i, --api-location <path>
: la carpeta que contiene el código fuente de la aplicación de API-O, --output-location <path>
: la carpeta que contiene el origen compilado de la aplicación front-end. La ruta de acceso es relativa a--app-location
(valor predeterminado: ".
")-w, --swa-config-location <swaConfigLocation>
: el directorio donde se encuentra el archivo staticwebapp.config.json-d, --deployment-token <secret>
: el token secreto usado para autenticarse con Static Web Apps-dr, --dry-run
: simula un proceso de implementación sin ejecutarlo realmente (valor predeterminado:false
)-pt, --print-token
: imprimir el token de implementación (valor predeterminado:false
)--env [environment]
: el tipo de entorno de implementación en el que se va a implementar el proyecto (valor predeterminado: "preview
")-S, --subscription-id <subscriptionId>
: id. de suscripción de Azure usado por este proyecto (valor predeterminado:process.env.AZURE_SUBSCRIPTION_ID
)-R, --resource-group <resourceGroupName>
: grupo de recursos de Azure usado por este proyecto-T, --tenant-id <tenantId>
: id. de inquilino de Azure (valor predeterminado:process.env.AZURE_TENANT_ID
)-C, --client-id <clientId>
: id. de cliente de Azure-CS, --client-secret <clientSecret>
: secreto de cliente de Azure-n, --app-name <appName>
: nombre de aplicación Azure Static Web Apps-cc, --clear-credentials
: borrar las credenciales persistentes antes de iniciar sesión (valor predeterminado:false
)-u, --use-keychain
: habilitar el uso de la cadena de claves nativa del sistema operativo para las credenciales persistentes (valor predeterminado:true
)-nu, --no-use-keychain
: deshabilitar el uso de la cadena de claves nativa del sistema operativo-h, --help
: mostrar ayuda para el comando
Uso
Implementar mediante un token de implementación.
swa deploy ./dist/ --api-location ./api/ --deployment-token <TOKEN>
Implementar mediante un token de implementación desde las variables de entorno.
SWA_CLI_DEPLOYMENT_TOKEN=123 swa deploy ./dist/ --api-location ./api/
Implementar mediante el archivo swa-cli.config.json
swa deploy
swa deploy myconfig
Imprimir el token de implementación.
swa deploy --print-token
Implementar en un entorno específico.
swa deploy --env production