El alojamiento de aplicaciones proporciona soporte de compilación e implementación gratuito para aplicaciones web desarrolladas en estos marcos:
Este repositorio contiene el código para los adaptadores que habilitan el soporte para estos marcos. En un nivel alto, estos adaptadores transforman las configuraciones específicas del marco en una especificación de paquete de salida que el alojamiento de aplicaciones puede usar para configurar el soporte de marcos. Para obtener más información, consulte la integración del marco.
El paquete de salida de alojamiento de aplicaciones es una especificación basada en archivos que permite que diferentes marcos configuren y personalicen su implementación de alojamiento de aplicaciones para un soporte mejorado.
Cualquier marco que pueda generar una salida de compilación de acuerdo con el paquete de salida de alojamiento de aplicaciones se puede implementar en el alojamiento de aplicaciones.
El paquete de salida consiste principalmente en un archivo de bundle.yaml que se encuentra dentro del directorio .apphosting . Este paquete.yaml contiene todas las formas en que los marcos pueden configurar el alojamiento de aplicaciones cuando los usuarios implementan sus aplicaciones.
Nota
El alojamiento de aplicaciones técnicamente admite todas las aplicaciones de nodo, pero no se habilitarán características de marco personalizadas sin el paquete de salida.
El paquete de salida está contenido en un solo archivo:
.apphosting/bundle.yamlMientras este archivo exista y siga el esquema, el alojamiento de aplicaciones podrá procesar la compilación correctamente.
El esquema también se puede encontrar en la fuente
interface OutputBundle {
version : "v1"
runConfig : RunConfig ;
metadata : Metadata ;
} La version representa qué versión de paquete de salida se está utilizando actualmente. La versión actual es V1.
runConfig Fields configura el servicio de ejecución de nubes asociado con el backend de alojamiento de aplicaciones.
interface RunConfig {
runCommand : string ;
environmentVariables ?: EnvVarConfig [ ] ;
concurrency ?: number ;
cpu ?: number ;
memoryMiB ?: number ;
minInstances ?: number ;
maxInstances ?: number ;
}| Campo | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
runCommand | string | Comando para iniciar el servidor (por ejemplo, node dist/index.js ). Suponga que este comando se ejecuta desde el director raíz del espacio de trabajo. Esta debería ser la versión productizada del comando Start Start del servidor. | Y |
environmentVariables | EnvVarConfig[] | Variables de entorno presentes en el entorno de ejecución del servidor. | norte |
concurrency | number | El número máximo de solicitudes concurrentes que cada instancia de servidor puede recibir. | norte |
cpu | number | El número de CPU utilizadas en una sola instancia de servidor. | norte |
memoryMiB | number | La cantidad de memoria disponible para una instancia de servidor. | norte |
minInstance | number | El límite en el número mínimo de instancias de funciones que pueden coexistir en un momento determinado. | norte |
MaxInstance | number | El límite en el número máximo de instancias de función que pueden coexistir en un momento dado. | norte |
Muchos de estos campos se comparten con apphosting.yaml . Consulte la documentación de referencia RunConfig para un contexto adicional y valores predeterminados.
interface EnvVarConfig {
variable : string ;
value : string ;
availability : 'RUNTIME'
}| Campo | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
variable | string | Nombre de la variable de entorno | Y |
value | string | Valor asociado con la variable de entorno | Y |
availability | RUNTIME | Donde la variable estará disponible. Por ahora esto siempre será RUNTIME | Y |
interface Metadata {
adapterPackageName : string ;
adapterVersion : string ;
framework : string ;
frameworkVersion ?: string ;
}| Campo | Tipo | Descripción | ¿Requerido? |
|---|---|---|---|
adapterPackageName | string | Nombre del adaptador (este debería ser el nombre del paquete NPM) | Y |
adapterVersion | string | Versión del adaptador | Y |
framework | string | Nombre del marco que se está compatiendo | Y |
frameworkVersion | string | Versión del marco que se está compatiendo | norte |
Aquí hay un archivo bundle.yaml muestra.yaml que arma todo esto:
> cat .apphosting/bundle.yaml
version: v1
runConfig:
runCommand:
- node
- dist/index.js
environmentVariables:
- variable: VAR
value: 8080
availability: RUNTIME
concurrency: 80
cpu: 2
memoryMiB: 512
minInstances: 0
maxInstances: 14
metadata:
adapterNpmPackageName: npm-name
adapterVersion: 12.0.0
frameworkNpmPackageName: framework-name
adapterVersion: 1.0.0
Siempre que tenga el bundle.yaml en este formato, el alojamiento de aplicaciones podrá implementar cualquier marco que admita la representación del lado del servidor.