Хостинг приложения обеспечивает конфигурацию, не содержащую конфигурации и развертывание поддержки для веб-приложений, разработанных в этих фреймворках:
Этот репо содержит код для адаптеров, которые обеспечивают поддержку этих структур. На высоком уровне эти адаптеры преобразуют структуру, специфичные конфигурации в спецификации выходного пакета, которую хостинг приложения может использовать для настройки поддержки Frameworks. Для получения дополнительной информации см. Фреймворк -интеграцию.
Выходной пакет хостинга приложений - это спецификация на основе файлов, которая позволяет различным структурам настраивать и настраивать развертывание хостинга приложения для расширенной поддержки.
Любая структура, которая может генерировать вывод сборки в соответствии с выходом вывода хостинга приложения, может быть развернута на хостинге приложения.
Выходной пакет в основном состоит из файла bundle.yaml , который находится внутри .apphosting . Этот Bundle.yaml содержит все способы, которыми Frameworks может настроить хостинг приложений, когда пользователи развертывают свои приложения.
Примечание
Хостинг приложений технически поддерживает все приложения Node, но никакие функции пользовательских фреймворков не будут включены без выходного пакета.
Выходной пакет содержится в одном файле:
.apphosting/bundle.yamlПока этот файл существует и следует за схемой, хостинг приложений сможет правильно обрабатывать сборку.
Схему также можно найти в источнике
interface OutputBundle {
version : "v1"
runConfig : RunConfig ;
metadata : Metadata ;
} version представляет, какую версию выходного пакета в настоящее время используется. Текущая версия v1.
Поля runConfig настраивают службу Cloud Run, связанную с бэкэнд хостинга приложения.
interface RunConfig {
runCommand : string ;
environmentVariables ?: EnvVarConfig [ ] ;
concurrency ?: number ;
cpu ?: number ;
memoryMiB ?: number ;
minInstances ?: number ;
maxInstances ?: number ;
}| Поле | Тип | Описание | Необходимый? |
|---|---|---|---|
runCommand | string | Команда для запуска сервера (например, node dist/index.js ). Предположим, что эта команда запускается из корневого директора рабочего пространства. Это должна быть производственная версия команды запуска сервера. | у |
environmentVariables | EnvVarConfig[] | Переменные среды, присутствующие в среде выполнения сервера. | не |
concurrency | number | Максимальное количество параллельных запросов, которые может получить каждый экземпляр сервера. | не |
cpu | number | Количество процессоров, используемых в одном экземпляре сервера. | не |
memoryMiB | number | Размер памяти, доступный для экземпляра сервера. | не |
minInstance | number | Предел минимального количества экземпляров функций, которые могут сосуществовать в данный момент. | не |
MaxInstance | number | Предел максимального количества экземпляров функций, которые могут сосуществовать в определенное время. | не |
Многие из этих областей совместно с apphosting.yaml . См. Справочная документация RunConfig для дополнительного контекста и значений по умолчанию.
interface EnvVarConfig {
variable : string ;
value : string ;
availability : 'RUNTIME'
}| Поле | Тип | Описание | Необходимый? |
|---|---|---|---|
variable | string | Имя переменной среды | у |
value | string | Значение, связанное с переменной среды | у |
availability | RUNTIME | Где будет доступна переменная. На данный момент это всегда будет RUNTIME | у |
interface Metadata {
adapterPackageName : string ;
adapterVersion : string ;
framework : string ;
frameworkVersion ?: string ;
}| Поле | Тип | Описание | Необходимый? |
|---|---|---|---|
adapterPackageName | string | Имя адаптера (это должно быть имя пакета NPM) | у |
adapterVersion | string | Версия адаптера | у |
framework | string | Название фреймворка, которая поддерживается | у |
frameworkVersion | string | Версия фреймворка, которая поддерживается | не |
Вот образец файла bundle.yaml соединяющий все это вместе:
> 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
Пока у вас есть bundle.yaml в этом формате, хостинг приложений сможет развернуть любую структуру, которая поддерживает рендеринг на стороне сервера.