A hospedagem de aplicativos fornece suporte de compilação e implantação sem configuração para aplicativos da Web desenvolvidos nessas estruturas:
Este repo mantém o código para os adaptadores que permitem suporte para essas estruturas. Em um nível alto, esses adaptadores transformam as configurações específicas da estrutura em uma especificação de pacote de saída que a hospedagem de aplicativos pode usar para configurar o suporte a estruturas. Para obter mais informações, consulte a integração da estrutura.
O pacote de saída de hospedagem de aplicativos é uma especificação baseada em arquivo que permite que diferentes estruturas configuram e personalizem sua implantação de hospedagem de aplicativos para obter suporte aprimorado.
Qualquer estrutura que possa gerar uma saída de compilação de acordo com o pacote de saída de hospedagem de aplicativos pode ser implantada na hospedagem de aplicativos.
O pacote de saída consiste principalmente .apphosting um arquivo bundle.yaml . Este pacote.yaml contém todas as maneiras pelas quais as estruturas podem configurar a hospedagem de aplicativos quando os usuários implantam seus aplicativos.
Observação
A hospedagem de aplicativos suporta tecnicamente todos os aplicativos de nó, mas nenhum recurso de estrutura personalizado será ativado sem o pacote de saída.
O pacote de saída está contido em um único arquivo:
.apphosting/bundle.yamlEnquanto esse arquivo existir e seguir o esquema, a hospedagem de aplicativos poderá processar a compilação corretamente.
O esquema também pode ser encontrado na fonte
interface OutputBundle {
version : "v1"
runConfig : RunConfig ;
metadata : Metadata ;
} A version representa qual versão do pacote de saída está sendo usada atualmente. A versão atual é v1.
Os campos runConfig configura o serviço de run em nuvem associado ao back -end de hospedagem de aplicativos.
interface RunConfig {
runCommand : string ;
environmentVariables ?: EnvVarConfig [ ] ;
concurrency ?: number ;
cpu ?: number ;
memoryMiB ?: number ;
minInstances ?: number ;
maxInstances ?: number ;
}| Campo | Tipo | Descrição | Obrigatório? |
|---|---|---|---|
runCommand | string | Comando para iniciar o servidor (por exemplo, node dist/index.js ). Suponha que este comando seja executado a partir da raiz diretora do espaço de trabalho. Esta deve ser a versão productizada do comando de início do servidor. | y |
environmentVariables | EnvVarConfig[] | Variáveis de ambiente presentes no ambiente de execução do servidor. | n |
concurrency | number | O número máximo de solicitações simultâneas que cada instância do servidor pode receber. | n |
cpu | number | O número de CPUs usadas em uma única instância do servidor. | n |
memoryMiB | number | A quantidade de memória disponível para uma instância do servidor. | n |
minInstance | number | O limite para o número mínimo de instâncias de função que podem coexistir em um determinado momento. | n |
MaxInstance | number | O limite para o número máximo de instâncias de função que podem coexistir em um determinado momento. | n |
Muitos desses campos são compartilhados com apphosting.yaml . Consulte a documentação de referência RunConfig para obter um contexto adicional e valores padrão.
interface EnvVarConfig {
variable : string ;
value : string ;
availability : 'RUNTIME'
}| Campo | Tipo | Descrição | Obrigatório? |
|---|---|---|---|
variable | string | Nome da variável do ambiente | y |
value | string | Valor associado à variável ambiente | y |
availability | RUNTIME | Onde a variável estará disponível. Por enquanto, isso sempre será RUNTIME | y |
interface Metadata {
adapterPackageName : string ;
adapterVersion : string ;
framework : string ;
frameworkVersion ?: string ;
}| Campo | Tipo | Descrição | Obrigatório? |
|---|---|---|---|
adapterPackageName | string | Nome do adaptador (este deve ser o nome do pacote NPM) | y |
adapterVersion | string | Versão do adaptador | y |
framework | string | Nome da estrutura que está sendo suportada | y |
frameworkVersion | string | Versão da estrutura que está sendo suportada | n |
Aqui está um bundle.yaml amostra.
> 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
Enquanto você tiver o bundle.yaml neste formato, a hospedagem de aplicativos poderá implantar qualquer estrutura que suporta a renderização do lado do servidor.