앱 호스팅은 이러한 프레임 워크에서 개발 된 웹 앱에 대한 구성이없는 빌드 및 배포 지원을 제공합니다.
이 repo는 이러한 프레임 워크를 지원할 수있는 어댑터의 코드를 보유합니다. 높은 수준에서 이러한 어댑터는 프레임 워크 특정 구성을 앱 호스팅에서 프레임 워크 지원을 구성하는 데 사용할 수있는 출력 번들 사양으로 변환합니다. 자세한 내용은 프레임 워크 통합을 참조하십시오.
앱 호스팅 출력 번들은 다양한 프레임 워크가 향상된 지원을 위해 앱 호스팅 배포를 구성하고 사용자 정의 할 수있는 파일 기반 사양입니다.
앱 호스팅 출력 번들에 따라 빌드 출력을 생성 할 수있는 프레임 워크는 앱 호스팅에서 배포 될 수 있습니다.
출력 번들은 주로 .apphosting 디렉토리 내부에있는 bundle.yaml 파일로 구성됩니다. 이 bundle.yaml에는 사용자가 응용 프로그램을 배포 할 때 프레임 워크가 앱 호스팅을 구성 할 수있는 모든 방법이 포함되어 있습니다.
메모
앱 호스팅은 기술적으로 모든 노드 애플리케이션을 지원하지만 출력 번들 없이는 사용자 정의 프레임 워크 기능이 활성화되지 않습니다.
출력 번들은 단일 파일에 포함되어 있습니다.
.apphosting/bundle.yaml이 파일이 존재하고 스키마를 따르는 한 앱 호스팅은 빌드를 올바르게 처리 할 수 있습니다.
스키마는 소스에서도 찾을 수 있습니다
interface OutputBundle {
version : "v1"
runConfig : RunConfig ;
metadata : Metadata ;
} version 현재 어떤 출력 번들 버전이 사용되고 있는지 나타냅니다. 현재 버전은 v1입니다.
runConfig 필드는 앱 호스팅 백엔드와 관련된 클라우드 실행 서비스를 구성합니다.
interface RunConfig {
runCommand : string ;
environmentVariables ?: EnvVarConfig [ ] ;
concurrency ?: number ;
cpu ?: number ;
memoryMiB ?: number ;
minInstances ?: number ;
maxInstances ?: number ;
}| 필드 | 유형 | 설명 | 필수의? |
|---|---|---|---|
runCommand | string | 서버를 시작하도록 명령 (예 : node dist/index.js ). 이 명령이 작업 공간의 루트에서 실행되었다고 가정하십시오. 서버 시작 명령의 제작 버전이어야합니다. | 와이 |
environmentVariables | EnvVarConfig[] | 서버 실행 환경에 존재하는 환경 변수. | N |
concurrency | number | 각 서버 인스턴스가 수신 할 수있는 최대 동시 요청 수입니다. | N |
cpu | number | 단일 서버 인스턴스에서 사용되는 CPU 수 | N |
memoryMiB | number | 서버 인스턴스에 사용할 수있는 메모리의 양. | N |
minInstance | number | 주어진 시간에 공존 할 수있는 최소 기능 인스턴스의 한계. | N |
MaxInstance | number | 주어진 시간에 공존 할 수있는 최대 기능 인스턴스 수의 한계. | N |
이 필드 중 다수는 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 | 지원되는 프레임 워크의 버전 | N |
다음은 샘플 bundle.yaml 입니다. 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 있는 한 앱 호스팅은 서버 측 렌더링을 지원하는 프레임 워크를 배포 할 수 있습니다.